diff --git a/.bazelrc b/.bazelrc index d622cdfe057ed..a27e9186cefa6 100644 --- a/.bazelrc +++ b/.bazelrc @@ -12,7 +12,6 @@ build:release --config=ci build --incompatible_strict_action_env --incompatible_enable_cc_toolchain_resolution build:ci --remote_cache=http://172.16.4.21:8080/tidb --remote_timeout="10s" test:ci --verbose_failures -test:ci --test_timeout=180 test:ci --test_env=GO_TEST_WRAP_TESTV=1 --test_verbose_timeout_warnings test:ci --remote_cache=http://172.16.4.21:8080/tidb --remote_timeout="10s" test:ci --test_env=TZ=Asia/Shanghai --test_output=errors --experimental_ui_max_stdouterr_bytes=104857600 diff --git a/.golangci.yml b/.golangci.yml index f82bace0fbd8c..91ca980280857 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -3,7 +3,6 @@ run: linters: disable-all: true enable: - - misspell - ineffassign - typecheck - varcheck @@ -20,7 +19,6 @@ linters: - bodyclose - exportloopref - rowserrcheck - - unconvert - makezero - durationcheck - prealloc diff --git a/DEPS.bzl b/DEPS.bzl index 909a95484d13c..3b5fc5727dc89 100644 --- a/DEPS.bzl +++ b/DEPS.bzl @@ -173,8 +173,8 @@ def go_deps(): name = "com_github_aws_aws_sdk_go", build_file_proto_mode = "disable_global", importpath = "github.com/aws/aws-sdk-go", - sum = "h1:r0puXncSaAfRt7Btml2swUo74Kao+vKhO3VLjwDjK54=", - version = "v1.35.3", + sum = "h1:hAwyfe7eZa7sM+S5mIJZFiNFwJMia9Whz6CYblioLoU=", + version = "v1.36.30", ) go_repository( name = "com_github_aymerick_raymond", @@ -183,6 +183,14 @@ def go_deps(): sum = "h1:Ppm0npCCsmuR9oQaBtRuZcmILVE74aXE+AmrJj8L2ns=", version = "v2.0.3-0.20180322193309-b565731e1464+incompatible", ) + go_repository( + name = "com_github_azure_azure_sdk_for_go", + build_file_proto_mode = "disable", + importpath = "github.com/Azure/azure-sdk-for-go", + sum = "h1:bch1RS060vGpHpY3zvQDV4rOiRw25J1zmR/B9a76aSA=", + version = "v23.2.0+incompatible", + ) + go_repository( name = "com_github_azure_azure_sdk_for_go_sdk_azcore", build_file_proto_mode = "disable_global", @@ -211,6 +219,14 @@ def go_deps(): sum = "h1:62Ew5xXg5UCGIXDOM7+y4IL5/6mQJq1nenhBCJAeGX8=", version = "v0.2.0", ) + go_repository( + name = "com_github_azure_go_autorest", + build_file_proto_mode = "disable", + importpath = "github.com/Azure/go-autorest", + sum = "h1:Q2feRPMlcfVcqz3pF87PJzkm5lZrL+x6BDtzhODzNJM=", + version = "v11.2.8+incompatible", + ) + go_repository( name = "com_github_benbjohnson_clock", build_file_proto_mode = "disable_global", @@ -232,6 +248,14 @@ def go_deps(): sum = "h1:ByYyxL9InA1OWqxJqqp2A5pYHUrCiAL6K3J+LKSsQkY=", version = "v0.1.0", ) + go_repository( + name = "com_github_biogo_store", + build_file_proto_mode = "disable", + importpath = "github.com/biogo/store", + sum = "h1:tYoz1OeRpx3dJZlh9T4dQt4kAndcmpl+VNdzbSgFC/0=", + version = "v0.0.0-20160505134755-913427a1d5e8", + ) + go_repository( name = "com_github_bketelsen_crypt", build_file_proto_mode = "disable_global", @@ -312,6 +336,14 @@ def go_deps(): sum = "h1:/c4uK3ie786Z7caXLcIMvePNSSiH3bQVGDvmGLMme60=", version = "v0.21.0", ) + go_repository( + name = "com_github_cenk_backoff", + build_file_proto_mode = "disable", + importpath = "github.com/cenk/backoff", + sum = "h1:7vXVw3g7XE+Vnj0A9TmFGtMeP4oZQ5ZzpPvKhLFa80E=", + version = "v2.0.0+incompatible", + ) + go_repository( name = "com_github_census_instrumentation_opencensus_proto", build_file_proto_mode = "disable_global", @@ -425,6 +457,35 @@ def go_deps(): sum = "h1:zH8ljVhhq7yC0MIeUL/IviMtY8hx2mK8cN9wEYb8ggw=", version = "v0.0.0-20211011173535-cb28da3451f1", ) + go_repository( + name = "com_github_cockroachdb_apd", + build_file_proto_mode = "disable", + importpath = "github.com/cockroachdb/apd", + sum = "h1:3LFP3629v+1aKXU5Q37mxmRxX/pIu1nijXydLShEq5I=", + version = "v1.1.0", + ) + go_repository( + name = "com_github_cockroachdb_cmux", + build_file_proto_mode = "disable", + importpath = "github.com/cockroachdb/cmux", + sum = "h1:dzj1/xcivGjNPwwifh/dWTczkwcuqsXXFHY1X/TZMtw=", + version = "v0.0.0-20170110192607-30d10be49292", + ) + go_repository( + name = "com_github_cockroachdb_cockroach", + build_file_proto_mode = "disable", + importpath = "github.com/cockroachdb/cockroach", + sum = "h1:0FHGBrsIyDci8tF7zujQkHdMTJdCTSIV9esrni2fKQI=", + version = "v0.0.0-20170608034007-84bc9597164f", + ) + go_repository( + name = "com_github_cockroachdb_cockroach_go", + build_file_proto_mode = "disable", + importpath = "github.com/cockroachdb/cockroach-go", + sum = "h1:2zRrJWIt/f9c9HhNHAgrRgq0San5gRRUJTBXLkchal0=", + version = "v0.0.0-20181001143604-e0a95dfd547c", + ) + go_repository( name = "com_github_cockroachdb_datadriven", build_file_proto_mode = "disable_global", @@ -737,6 +798,21 @@ def go_deps(): sum = "h1:clC1lXBpe2kTj2VHdaIu9ajZQe4kcEY9j0NsnDDBZ3o=", version = "v0.0.0-20171010120322-cdade1c07385", ) + go_repository( + name = "com_github_elastic_gosigar", + build_file_proto_mode = "disable", + importpath = "github.com/elastic/gosigar", + sum = "h1:ehdJWCzrtTHhYDmUAO6Zpu+uez4UB/dhH0oJSQ/o1Pk=", + version = "v0.9.0", + ) + go_repository( + name = "com_github_elazarl_go_bindata_assetfs", + build_file_proto_mode = "disable", + importpath = "github.com/elazarl/go-bindata-assetfs", + sum = "h1:G/bYguwHIzWq9ZoyUQqrjTmJbbYn3j3CKKpKinvZLFk=", + version = "v1.0.0", + ) + go_repository( name = "com_github_envoyproxy_go_control_plane", build_file_proto_mode = "disable_global", @@ -780,6 +856,20 @@ def go_deps(): sum = "h1:htFueZyVeE1XNnMEfbqp5r67qAN/4r6ya1ysq8Q+Zcw=", version = "v0.1.1", ) + go_repository( + name = "com_github_evanphx_json_patch", + build_file_proto_mode = "disable", + importpath = "github.com/evanphx/json-patch", + sum = "h1:K1MDoo4AZ4wU0GIU/fPmtZg7VpzLjCxu+UwBD1FvwOc=", + version = "v4.1.0+incompatible", + ) + go_repository( + name = "com_github_facebookgo_clock", + build_file_proto_mode = "disable", + importpath = "github.com/facebookgo/clock", + sum = "h1:yDWHCSQ40h88yih2JAcL6Ls/kVkSE8GFACTGVnMPruw=", + version = "v0.0.0-20150410010913-600d898af40a", + ) go_repository( name = "com_github_fasthttp_contrib_websocket", @@ -967,6 +1057,14 @@ def go_deps(): sum = "h1:WtGNWLvXpe6ZudgnXrq0barxBImvnnJoMEhXAzcbM0I=", version = "v0.0.0-20200222043503-6f7a984d4dc4", ) + go_repository( + name = "com_github_go_ini_ini", + build_file_proto_mode = "disable", + importpath = "github.com/go-ini/ini", + sum = "h1:Mujh4R/dH6YL8bxuISne3xX2+qcQ9p0IxKAP6ExWoUo=", + version = "v1.25.4", + ) + go_repository( name = "com_github_go_kit_kit", build_file_proto_mode = "disable_global", @@ -1298,8 +1396,8 @@ def go_deps(): name = "com_github_google_btree", build_file_proto_mode = "disable_global", importpath = "github.com/google/btree", - sum = "h1:gK4Kx5IaGY9CD5sPJ36FHiBJ6ZXl0kilRiiCj+jdYp4=", - version = "v1.0.1", + sum = "h1:xf4v41cLI2Z6FxbKm+8Bu+m8ifhj15JuZ9sa0jZCMUU=", + version = "v1.1.2", ) go_repository( name = "com_github_google_go_cmp", @@ -1354,16 +1452,31 @@ def go_deps(): name = "com_github_google_uuid", build_file_proto_mode = "disable_global", importpath = "github.com/google/uuid", - sum = "h1:EVhdT+1Kseyi1/pUmXKaFxYsDNy9RQYkMWRH68J/W7Y=", - version = "v1.1.2", + sum = "h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I=", + version = "v1.3.0", ) go_repository( name = "com_github_googleapis_gax_go_v2", build_file_proto_mode = "disable_global", importpath = "github.com/googleapis/gax-go/v2", - sum = "h1:dp3bWCh+PPO1zjRRiCSczJav13sBvG4UhNyVTa1KqdU=", - version = "v2.1.1", + sum = "h1:s7jOdKSaksJVOxE0Y/S32otcfiP+UQ0cL8/GTKaONwE=", + version = "v2.2.0", + ) + go_repository( + name = "com_github_googleapis_gnostic", + build_file_proto_mode = "disable", + importpath = "github.com/googleapis/gnostic", + sum = "h1:l6N3VoaVzTncYYW+9yOz2LJJammFZGBO13sqgEhpy9g=", + version = "v0.2.0", ) + go_repository( + name = "com_github_gophercloud_gophercloud", + build_file_proto_mode = "disable", + importpath = "github.com/gophercloud/gophercloud", + sum = "h1:hQpY0g0UGsLKLDs8UJ6xpA2gNCkEdEbvxSPqLItXCpI=", + version = "v0.0.0-20190301152420-fca40860790e", + ) + go_repository( name = "com_github_gopherjs_gopherjs", build_file_proto_mode = "disable_global", @@ -1378,6 +1491,13 @@ def go_deps(): sum = "h1:PVRE9d4AQKmbelZ7emNig1+NT27DUmKZn5qXxfio54U=", version = "v0.0.0-20210914165742-4cc7213b9bc8", ) + go_repository( + name = "com_github_gorilla_context", + build_file_proto_mode = "disable", + importpath = "github.com/gorilla/context", + sum = "h1:AWwleXJkX/nhcU9bZSnZoi3h/qGYqQAGhq6zZe/aQW8=", + version = "v1.1.1", + ) go_repository( name = "com_github_gorilla_handlers", @@ -1469,6 +1589,14 @@ def go_deps(): sum = "h1:gmcG1KaJ57LophUzW0Hy8NmPhnMZb4M0+kPpLofRdBo=", version = "v1.16.0", ) + go_repository( + name = "com_github_grpc_ecosystem_grpc_opentracing", + build_file_proto_mode = "disable", + importpath = "github.com/grpc-ecosystem/grpc-opentracing", + sum = "h1:MJG/KsmcqMwFAkh8mTnAwhyKoB+sTAnY4CACC110tbU=", + version = "v0.0.0-20180507213350-8e809c8a8645", + ) + go_repository( name = "com_github_hashicorp_consul_api", build_file_proto_mode = "disable_global", @@ -1508,8 +1636,8 @@ def go_deps(): name = "com_github_hashicorp_go_msgpack", build_file_proto_mode = "disable_global", importpath = "github.com/hashicorp/go-msgpack", - sum = "h1:zKjpN5BK/P5lMYrLmBHdBULWbJ0XpYR+7NGzqkZzoD4=", - version = "v0.5.3", + sum = "h1:SFT72YqIkOcLdWJUYcriVX7hbrZpwc/f7h8aW2NUqrA=", + version = "v0.5.4", ) go_repository( name = "com_github_hashicorp_go_multierror", @@ -1536,8 +1664,8 @@ def go_deps(): name = "com_github_hashicorp_go_sockaddr", build_file_proto_mode = "disable_global", importpath = "github.com/hashicorp/go-sockaddr", - sum = "h1:GeH6tui99pF4NJgfnhp+L6+FfobzVW3Ah46sLo0ICXs=", - version = "v1.0.0", + sum = "h1:ztczhD1jLxIRjVejw8gFomI1BQZOe2WoVOu0SyteCQc=", + version = "v1.0.2", ) go_repository( name = "com_github_hashicorp_go_syslog", @@ -1659,6 +1787,14 @@ def go_deps(): sum = "h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM=", version = "v1.0.0", ) + go_repository( + name = "com_github_influxdata_influxdb", + build_file_proto_mode = "disable", + importpath = "github.com/influxdata/influxdb", + sum = "h1:O08dwjOwv9CYlJJEUZKAazSoQDKlsN34Bq3dnhqhyVI=", + version = "v0.0.0-20170331210902-15e594fc09f1", + ) + go_repository( name = "com_github_iris_contrib_blackfriday", build_file_proto_mode = "disable_global", @@ -1687,6 +1823,21 @@ def go_deps(): sum = "h1:10g/WnoRR+U+XXHWKBHeNy/+tZmM2kcAVGLOsz+yaDA=", version = "v0.0.1", ) + go_repository( + name = "com_github_jackc_fake", + build_file_proto_mode = "disable", + importpath = "github.com/jackc/fake", + sum = "h1:vr3AYkKovP8uR8AvSGGUK1IDqRa5lAAvEkZG1LKaCRc=", + version = "v0.0.0-20150926172116-812a484cc733", + ) + go_repository( + name = "com_github_jackc_pgx", + build_file_proto_mode = "disable", + importpath = "github.com/jackc/pgx", + sum = "h1:0Vihzu20St42/UDsvZGdNE6jak7oi/UOeMzwMPHkgFY=", + version = "v3.2.0+incompatible", + ) + go_repository( name = "com_github_jcmturner_aescts_v2", build_file_proto_mode = "disable_global", @@ -1945,6 +2096,14 @@ def go_deps(): sum = "h1:5JNjFYYQrZeKRJ0734q51WCEEn2huer72Dc7K+R/b6s=", version = "v1.3.1", ) + go_repository( + name = "com_github_knz_strtime", + build_file_proto_mode = "disable", + importpath = "github.com/knz/strtime", + sum = "h1:45aLE1GlZRKxNfTMkok85BUKAJNLdHr5GAm3h8Fqoww=", + version = "v0.0.0-20181018220328-af2256ee352c", + ) + go_repository( name = "com_github_konsorten_go_windows_terminal_sequences", build_file_proto_mode = "disable_global", @@ -2038,6 +2197,21 @@ def go_deps(): sum = "h1:tC2y/ygPbMFSBOs3DcyaEMKnnwH7eYKzohOtRrf0SAg=", version = "v1.1.0", ) + go_repository( + name = "com_github_lib_pq", + build_file_proto_mode = "disable", + importpath = "github.com/lib/pq", + sum = "h1:X5PMW56eZitiTeO7tKzZxFCSpbFZJtkMMooicw2us9A=", + version = "v1.0.0", + ) + go_repository( + name = "com_github_lightstep_lightstep_tracer_go", + build_file_proto_mode = "disable", + importpath = "github.com/lightstep/lightstep-tracer-go", + sum = "h1:D0GGa7afJ7GcQvu5as6ssLEEKYXvRgKI5d5cevtz8r4=", + version = "v0.15.6", + ) + go_repository( name = "com_github_lufeee_execinquery", build_file_proto_mode = "disable", @@ -2139,6 +2313,14 @@ def go_deps(): sum = "h1:oacPXPKHJg0hcngVVrdtTnfGJiS+PtwoQwTBZGFlV4k=", version = "v3.3.0", ) + go_repository( + name = "com_github_mgechev_dots", + build_file_proto_mode = "disable", + importpath = "github.com/mgechev/dots", + sum = "h1:zpIH83+oKzcpryru8ceC6BxnoG8TBrhgAvRg8obzup0=", + version = "v0.0.0-20210922191527-e955255bf517", + ) + go_repository( name = "com_github_mgechev_revive", build_file_proto_mode = "disable", @@ -2158,8 +2340,8 @@ def go_deps(): name = "com_github_miekg_dns", build_file_proto_mode = "disable_global", importpath = "github.com/miekg/dns", - sum = "h1:9jZdLNd/P4+SfEJ0TNyxYpsK8N4GtfylBLqtbYN1sbA=", - version = "v1.0.14", + sum = "h1:oN9gL93BkuPrer2rehDbDx86k4zbYJEnMP6Krh82nh0=", + version = "v1.1.10", ) go_repository( name = "com_github_mitchellh_cli", @@ -2190,6 +2372,14 @@ def go_deps(): sum = "h1:fzU/JVNcaqHQEcVFAKeR41fkiLdIPrefOvVG1VZ96U0=", version = "v1.0.0", ) + go_repository( + name = "com_github_mitchellh_go_wordwrap", + build_file_proto_mode = "disable", + importpath = "github.com/mitchellh/go-wordwrap", + sum = "h1:6GlHJ/LTGMrIJbwgdqdl2eEH8o+Exx/0m8ir9Gns0u4=", + version = "v1.0.0", + ) + go_repository( name = "com_github_mitchellh_gox", build_file_proto_mode = "disable_global", @@ -2211,6 +2401,14 @@ def go_deps(): sum = "h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY=", version = "v1.5.0", ) + go_repository( + name = "com_github_mitchellh_reflectwalk", + build_file_proto_mode = "disable", + importpath = "github.com/mitchellh/reflectwalk", + sum = "h1:FVzMWA5RllMAKIdUSC8mdWo3XtwoecrH79BY70sEEpE=", + version = "v1.0.1", + ) + go_repository( name = "com_github_modern_go_concurrent", build_file_proto_mode = "disable_global", @@ -2232,6 +2430,14 @@ def go_deps(): sum = "h1:8Q0qkMVC/MmWkpIdlvZgcv2o2jrlF6zqVOh7W5YHdMA=", version = "v0.0.0-20171022184752-b58185e213c5", ) + go_repository( + name = "com_github_montanaflynn_stats", + build_file_proto_mode = "disable", + importpath = "github.com/montanaflynn/stats", + sum = "h1:pmpDGKLw4n82EtrNiLqB+xSz/JQwFOaZuMALYUHwX5s=", + version = "v0.0.0-20180911141734-db72e6cae808", + ) + go_repository( name = "com_github_moricho_tparallel", build_file_proto_mode = "disable", @@ -2339,9 +2545,17 @@ def go_deps(): name = "com_github_nxadm_tail", build_file_proto_mode = "disable_global", importpath = "github.com/nxadm/tail", - sum = "h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE=", - version = "v1.4.8", + sum = "h1:DQuhQpB1tVlglWS2hLQ5OV6B5r8aGxSrPc5Qo6uTN78=", + version = "v1.4.4", + ) + go_repository( + name = "com_github_oklog_run", + build_file_proto_mode = "disable", + importpath = "github.com/oklog/run", + sum = "h1:Ru7dDtJNOyC66gQ5dQmaCa0qIsAUFY3sFpK1Xk8igrw=", + version = "v1.0.0", ) + go_repository( name = "com_github_oklog_ulid", build_file_proto_mode = "disable_global", @@ -2360,8 +2574,8 @@ def go_deps(): name = "com_github_oneofone_xxhash", build_file_proto_mode = "disable_global", importpath = "github.com/OneOfOne/xxhash", - sum = "h1:KMrpdQIwFcEqXDklaen+P1axHaj9BSKzvpUUfnHldSE=", - version = "v1.2.2", + sum = "h1:zl/OfRA6nftbBK9qTohYBJ5xvw6C/oNKizR7cZGl3cI=", + version = "v1.2.5", ) go_repository( name = "com_github_onsi_ginkgo", @@ -2399,6 +2613,14 @@ def go_deps(): sum = "h1:YyUAhaEfjoWXclZVJ9sGoNct7j4TVk7lZWlQw5UXuoo=", version = "v1.0.0", ) + go_repository( + name = "com_github_opentracing_contrib_go_stdlib", + build_file_proto_mode = "disable", + importpath = "github.com/opentracing-contrib/go-stdlib", + sum = "h1:8KbikWulLUcMM96hBxjgoo6gTmCkG6HYSDohv/WygYU=", + version = "v0.0.0-20170113013457-1de4cc2120e7", + ) + go_repository( name = "com_github_opentracing_opentracing_go", build_file_proto_mode = "disable_global", @@ -2406,6 +2628,14 @@ def go_deps(): sum = "h1:uEJPy/1a5RIPAJ0Ov+OIO8OxWu77jEv+1B0VhjKrZUs=", version = "v1.2.0", ) + go_repository( + name = "com_github_openzipkin_zipkin_go", + build_file_proto_mode = "disable", + importpath = "github.com/openzipkin/zipkin-go", + sum = "h1:yXiysv1CSK7Q5yjGy1710zZGnsbMUIjluWBxtLXHPBo=", + version = "v0.1.6", + ) + go_repository( name = "com_github_pascaldekloe_goe", build_file_proto_mode = "disable_global", @@ -2434,6 +2664,21 @@ def go_deps(): sum = "h1:P7Bq0SaI8nsexyay5UAyDo+ICWy5MQPgEZ5+l8JQTKo=", version = "v2.0.0", ) + go_repository( + name = "com_github_peterbourgon_g2s", + build_file_proto_mode = "disable", + importpath = "github.com/peterbourgon/g2s", + sum = "h1:sKwxy1H95npauwu8vtF95vG/syrL0p8fSZo/XlDg5gk=", + version = "v0.0.0-20170223122336-d4e7ad98afea", + ) + go_repository( + name = "com_github_petermattis_goid", + build_file_proto_mode = "disable", + importpath = "github.com/petermattis/goid", + sum = "h1:rUMC+oZ89Om6l9wvUNjzI0ZrKrSnXzV+opsgAohYUNc=", + version = "v0.0.0-20170504144140-0ded85884ba5", + ) + go_repository( name = "com_github_phayes_checkstyle", build_file_proto_mode = "disable", @@ -2502,8 +2747,8 @@ def go_deps(): name = "com_github_pingcap_kvproto", build_file_proto_mode = "disable_global", importpath = "github.com/pingcap/kvproto", - sum = "h1:nP2wmyw9JTRsk5rm+tZtfAso6c/1FvuaFNbXTaYz3FE=", - version = "v0.0.0-20220705053936-aa9c2d20cd2a", + sum = "h1:PAXtUVMJnyQQS8t9GzihIFmh6FBXu0JziWbIVknLniA=", + version = "v0.0.0-20220711062932-08b02befd813", ) go_repository( name = "com_github_pingcap_log", @@ -2523,8 +2768,8 @@ def go_deps(): name = "com_github_pingcap_tipb", build_file_proto_mode = "disable_global", importpath = "github.com/pingcap/tipb", - sum = "h1:XaTE4ZhQbQtQZtAVzlZh/Pf6SjFfMSTe1ia2nGcl36Y=", - version = "v0.0.0-20220706024432-7be3cc83a7d5", + sum = "h1:FBaTXU8C3xgt/drM58VHxojHo/QoG1oPsgWTGvaSpO4=", + version = "v0.0.0-20220718022156-3e2483c20a9e", ) go_repository( name = "com_github_pkg_browser", @@ -2604,12 +2849,20 @@ def go_deps(): sum = "h1:4jVXhlkAyzOScmCkXBTOLRLTz8EeU+eyjrwB/EPq0VU=", version = "v0.7.3", ) + go_repository( + name = "com_github_prometheus_prometheus", + build_file_proto_mode = "disable", + importpath = "github.com/prometheus/prometheus", + sum = "h1:3DyLm+sTAJkfLyR/1pJ3L+fU2lFufWbpcgMFlGtqeyA=", + version = "v0.0.0-20190525122359-d20e84d0fb64", + ) + go_repository( name = "com_github_prometheus_tsdb", build_file_proto_mode = "disable_global", importpath = "github.com/prometheus/tsdb", - sum = "h1:YZcsG11NqnK4czYLrWd9mpEuAJIHVQLwdrleYfszMAA=", - version = "v0.7.1", + sum = "h1:w1tAGxsBMLkuGrFMhqgcCeBkM5d1YI24udArs+aASuQ=", + version = "v0.8.0", ) go_repository( name = "com_github_quasilyte_go_ruleguard", @@ -2668,6 +2921,14 @@ def go_deps(): sum = "h1:S1pD9weZBuJdFmowNwbpi7BJ8TNftyUImj/0WQi72jY=", version = "v0.2.0", ) + go_repository( + name = "com_github_rlmcpherson_s3gof3r", + build_file_proto_mode = "disable", + importpath = "github.com/rlmcpherson/s3gof3r", + sum = "h1:1izOJpTiohSibfOHuNyEA/yQnAirh05enzEdmhez43k=", + version = "v0.5.0", + ) + go_repository( name = "com_github_rogpeppe_fastuuid", build_file_proto_mode = "disable_global", @@ -2682,6 +2943,14 @@ def go_deps(): sum = "h1:/FiVV8dS/e+YqF2JvO3yXRFbBLTIuSDkuC7aBOAvL+k=", version = "v1.6.1", ) + go_repository( + name = "com_github_rubyist_circuitbreaker", + build_file_proto_mode = "disable", + importpath = "github.com/rubyist/circuitbreaker", + sum = "h1:KUKd/pV8Geg77+8LNDwdow6rVCAYOp8+kHUyFvL6Mhk=", + version = "v2.2.1+incompatible", + ) + go_repository( name = "com_github_russross_blackfriday", build_file_proto_mode = "disable_global", @@ -2718,6 +2987,14 @@ def go_deps(): sum = "h1:j1Wcmh8OrK4Q7GXY+V7SVSY8nUWQxHW5TkBe7YUl+2s=", version = "v2.1.0+incompatible", ) + go_repository( + name = "com_github_samuel_go_zookeeper", + build_file_proto_mode = "disable", + importpath = "github.com/samuel/go-zookeeper", + sum = "h1:4AQBn5RJY4WH8t8TLEMZUsWeXHAUcoao42TCAfpEJJE=", + version = "v0.0.0-20161028232340-1d7be4effb13", + ) + go_repository( name = "com_github_sanposhiho_wastedassign_v2", build_file_proto_mode = "disable", @@ -2725,6 +3002,20 @@ def go_deps(): sum = "h1:+6/hQIHKNJAUixEj6EmOngGIisyeI+T3335lYTyxRoA=", version = "v2.0.6", ) + go_repository( + name = "com_github_sasha_s_go_deadlock", + build_file_proto_mode = "disable", + importpath = "github.com/sasha-s/go-deadlock", + sum = "h1:yVBZEAirqhDYAc7xftf/swe8eHcg63jqfwdqN8KSoR8=", + version = "v0.0.0-20161201235124-341000892f3d", + ) + go_repository( + name = "com_github_satori_go_uuid", + build_file_proto_mode = "disable", + importpath = "github.com/satori/go.uuid", + sum = "h1:0uYX9dsZ2yD7q2RtLRtPSdGDWzjeM3TbMJP9utgA0ww=", + version = "v1.2.0", + ) go_repository( name = "com_github_sclevine_agouti", @@ -2791,6 +3082,14 @@ def go_deps(): sum = "h1:TKdv8HiTLgE5wdJuEML90aBgNWsokNbMijUGhmcoBJc=", version = "v2.1.4+incompatible", ) + go_repository( + name = "com_github_shopspring_decimal", + build_file_proto_mode = "disable", + importpath = "github.com/shopspring/decimal", + sum = "h1:pntxY8Ary0t43dCZ5dqY4YTJCObLY1kIXl0uzMv+7DE=", + version = "v0.0.0-20180709203117-cd690d0c9e24", + ) + go_repository( name = "com_github_shurcool_httpfs", build_file_proto_mode = "disable_global", @@ -2933,6 +3232,13 @@ def go_deps(): sum = "h1:X4XDI7jstt3ySqGU86YGAURbxw3oTDPK9sPEi6YEwQ0=", version = "v2.2.1", ) + go_repository( + name = "com_github_stackexchange_wmi", + build_file_proto_mode = "disable", + importpath = "github.com/StackExchange/wmi", + sum = "h1:5ZfJxyXo8KyX8DgGXC5B7ILL8y51fci/qYz2B4j8iLY=", + version = "v0.0.0-20180725035823-b12b22c5341f", + ) go_repository( name = "com_github_stathat_consistent", @@ -3004,8 +3310,8 @@ def go_deps(): name = "com_github_tikv_client_go_v2", build_file_proto_mode = "disable_global", importpath = "github.com/tikv/client-go/v2", - sum = "h1:VAyYcN1Nw7RupQszUYqOkueEVapWSxKFU7uBaYY5Dv8=", - version = "v2.0.1-0.20220627063500-947d923945fd", + sum = "h1:fCAWVzUJYee1pDqYTBt5j2G1WuUfOL7A2mZoONoaHgs=", + version = "v2.0.1-0.20220721031657-e38d2b07de3f", ) go_repository( name = "com_github_tikv_pd_client", @@ -3320,8 +3626,8 @@ def go_deps(): name = "com_google_cloud_go_compute", build_file_proto_mode = "disable_global", importpath = "cloud.google.com/go/compute", - sum = "h1:EKki8sSdvDU0OO9mAXGwPXOTOgPz2l08R0/IutDH11I=", - version = "v1.2.0", + sum = "h1:b1zWmYuuHz7gO9kDcM/EpHGr06UgsYNRpNJzI2kFiLM=", + version = "v1.5.0", ) go_repository( name = "com_google_cloud_go_datastore", @@ -3408,6 +3714,14 @@ def go_deps(): sum = "h1:0vLT13EuvQ0hNvakwLuFZ/jYrLp5F3kcWHXdRggjCE8=", version = "v2.1.0", ) + go_repository( + name = "in_gopkg_fsnotify_fsnotify_v1", + build_file_proto_mode = "disable", + importpath = "gopkg.in/fsnotify/fsnotify.v1", + sum = "h1:2fkCHbPQZNYRAyRyIV9VX0bpRkxIorlQDiYRmufHnhA=", + version = "v1.3.1", + ) + go_repository( name = "in_gopkg_fsnotify_v1", build_file_proto_mode = "disable_global", @@ -3429,6 +3743,14 @@ def go_deps(): sum = "h1:lFB4DoMU6B626w8ny76MV7VX6W2VHct2GVOI3xgiMrQ=", version = "v8.18.2", ) + go_repository( + name = "in_gopkg_inf_v0", + build_file_proto_mode = "disable", + importpath = "gopkg.in/inf.v0", + sum = "h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc=", + version = "v0.9.1", + ) + go_repository( name = "in_gopkg_ini_v1", build_file_proto_mode = "disable_global", @@ -3591,6 +3913,42 @@ def go_deps(): sum = "h1:uk7/uMGVebpBDl+roivowHt6gJ5Fnqwik3syDkoSKdo=", version = "v3.5.2", ) + go_repository( + name = "io_k8s_api", + build_file_proto_mode = "disable", + importpath = "k8s.io/api", + sum = "h1:aBGgKJUM9Hk/3AE8WaZIApnTxG35kbuQba2w+SXqezo=", + version = "v0.0.0-20190409021203-6e4e0e4f393b", + ) + go_repository( + name = "io_k8s_apimachinery", + build_file_proto_mode = "disable", + importpath = "k8s.io/apimachinery", + sum = "h1:Jmdtdt1ZnoGfWWIIik61Z7nKYgO3J+swQJtPYsP9wHA=", + version = "v0.0.0-20190404173353-6a84e37a896d", + ) + go_repository( + name = "io_k8s_client_go", + build_file_proto_mode = "disable", + importpath = "k8s.io/client-go", + sum = "h1:U5Bt+dab9K8qaUmXINrkXO135kA11/i5Kg1RUydgaMQ=", + version = "v11.0.1-0.20190409021438-1a26190bd76a+incompatible", + ) + go_repository( + name = "io_k8s_klog", + build_file_proto_mode = "disable", + importpath = "k8s.io/klog", + sum = "h1:0VPpR+sizsiivjIfIAQH/rl8tan6jvWkS7lU+0di3lE=", + version = "v0.3.0", + ) + go_repository( + name = "io_k8s_kube_openapi", + build_file_proto_mode = "disable", + importpath = "k8s.io/kube-openapi", + sum = "h1:tHgpQvrWaYfrnC8G4N0Oszw5HHCsZxKilDi2R7HuCSM=", + version = "v0.0.0-20180629012420-d83b052f768a", + ) + go_repository( name = "io_k8s_sigs_yaml", build_file_proto_mode = "disable_global", @@ -3598,6 +3956,14 @@ def go_deps(): sum = "h1:kr/MCeFWJWTwyaHoR9c8EjH9OumOmoF9YGiZd7lFm/Q=", version = "v1.2.0", ) + go_repository( + name = "io_k8s_utils", + build_file_proto_mode = "disable", + importpath = "k8s.io/utils", + sum = "h1:8r+l4bNWjRlsFYlQJnKJ2p7s1YQPj4XyXiJVqDHRx7c=", + version = "v0.0.0-20190308190857-21c4ce38f2a7", + ) + go_repository( name = "io_opencensus_go", build_file_proto_mode = "disable_global", @@ -3605,6 +3971,14 @@ def go_deps(): sum = "h1:gqCw0LfLxScz8irSi8exQc7fyQ0fKQU/qnC/X8+V/1M=", version = "v0.23.0", ) + go_repository( + name = "io_opencensus_go_contrib_exporter_ocagent", + build_file_proto_mode = "disable", + importpath = "contrib.go.opencensus.io/exporter/ocagent", + sum = "h1:jGFvw3l57ViIVEPKKEUXPcLYIXJmQxLUh6ey1eJhwyc=", + version = "v0.4.12", + ) + go_repository( name = "io_opentelemetry_go_contrib", build_file_proto_mode = "disable_global", @@ -3714,8 +4088,8 @@ def go_deps(): name = "org_golang_google_api", build_file_proto_mode = "disable_global", importpath = "google.golang.org/api", - sum = "h1:yHW5s2SFyDapr/43kYtIQmoaaFVW4baLMLwqV4auj2A=", - version = "v0.69.0", + sum = "h1:ExR2D+5TYIrMphWgs5JCgwRhEDlPDXXrLwHHMgPHTXE=", + version = "v0.74.0", ) go_repository( name = "org_golang_google_appengine", @@ -3728,15 +4102,15 @@ def go_deps(): name = "org_golang_google_genproto", build_file_proto_mode = "disable_global", importpath = "google.golang.org/genproto", - sum = "h1:divpuJZKgX3Qt7MFDE5v62yu0yQcQbTCD9VJp9leX58=", - version = "v0.0.0-20220216160803-4663080d8bc8", + sum = "h1:0m9wktIpOxGw+SSKmydXWB3Z3GTfcPP6+q75HCQa6HI=", + version = "v0.0.0-20220324131243-acbaeb5b85eb", ) go_repository( name = "org_golang_google_grpc", build_file_proto_mode = "disable_global", importpath = "google.golang.org/grpc", - sum = "h1:weqSxi/TMs1SqFRMHCtBgXRs8k3X39QIDEZ0pRcttUg=", - version = "v1.44.0", + sum = "h1:NEpgUqV3Z+ZjkqMsxMg11IaDrXY4RY6CQukSGK0uI1M=", + version = "v1.45.0", ) go_repository( name = "org_golang_google_grpc_cmd_protoc_gen_go_grpc", @@ -3756,8 +4130,8 @@ def go_deps(): name = "org_golang_x_crypto", build_file_proto_mode = "disable_global", importpath = "golang.org/x/crypto", - sum = "h1:f+lwQ+GtmgoY+A2YaQxlSOnDjXcQ7ZRLWOHbC6HtRqE=", - version = "v0.0.0-20220214200702-86341886e292", + sum = "h1:7I4JAnoQBe7ZtJcBaYHi5UtiO8tQHbUSXxL+pnGRANg=", + version = "v0.0.0-20210921155107-089bfa567519", ) go_repository( name = "org_golang_x_exp", @@ -3806,15 +4180,15 @@ def go_deps(): name = "org_golang_x_net", build_file_proto_mode = "disable_global", importpath = "golang.org/x/net", - sum = "h1:O7DYs+zxREGLKzKoMQrtrEacpb0ZVXA5rIwylE2Xchk=", - version = "v0.0.0-20220127200216-cd36cc0744dd", + sum = "h1:bRb386wvrE+oBNdF1d/Xh9mQrfQ4ecYhW5qJ5GvTGT4=", + version = "v0.0.0-20220412020605-290c469a71a5", ) go_repository( name = "org_golang_x_oauth2", build_file_proto_mode = "disable_global", importpath = "golang.org/x/oauth2", - sum = "h1:RerP+noqYHUQ8CMRcPlC2nvTa4dcBIjegkuWdcUDuqg=", - version = "v0.0.0-20211104180415-d3ed0bb246c8", + sum = "h1:OSnWWcOd/CtWQC2cYSBgbTSJv3ciqd8r54ySIW2y3RE=", + version = "v0.0.0-20220411215720-9780585627b5", ) go_repository( name = "org_golang_x_sync", diff --git a/Makefile b/Makefile index c670d81f0b2f5..c8a1d29ea761b 100644 --- a/Makefile +++ b/Makefile @@ -31,7 +31,7 @@ dev: checklist check explaintest gogenerate br_unit_test test_part_parser_dev ut # Install the check tools. check-setup:tools/bin/revive tools/bin/goword -check: fmt check-parallel unconvert lint tidy testSuite check-static vet errdoc +check: check-parallel lint tidy testSuite check-static errdoc fmt: @echo "gofmt (simplify)" @@ -435,7 +435,10 @@ bazel_test: failpoint-enable bazel_ci_prepare bazel_coverage_test: failpoint-enable bazel_ci_prepare - bazel --output_user_root=/home/jenkins/.tidb/tmp coverage --config=ci --@io_bazel_rules_go//go/config:cover_format=go_cover \ + bazel --output_user_root=/home/jenkins/.tidb/tmp coverage --config=ci --build_event_json_file=bazel_1.json --@io_bazel_rules_go//go/config:cover_format=go_cover \ + -- //... -//cmd/... -//tests/graceshutdown/... \ + -//tests/globalkilltest/... -//tests/readonlytest/... -//br/pkg/task:task_test + bazel --output_user_root=/home/jenkins/.tidb/tmp coverage --config=ci --build_event_json_file=bazel_2.json --@io_bazel_rules_go//go/config:cover_format=go_cover --define gotags=featuretag \ -- //... -//cmd/... -//tests/graceshutdown/... \ -//tests/globalkilltest/... -//tests/readonlytest/... -//br/pkg/task:task_test diff --git a/SECURITY.md b/SECURITY.md index 5d255ecc936bb..ff0e7844edeef 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -26,7 +26,7 @@ The asterisk (*) indicates the required field. The TiDB security team will confirm the vulnerabilities and contact you within 2 working days after your submission. -We will publicly thank you after fixing the security vulnerability. To avoid negative impact, please keep the vulnerability confidential until we fix it. We would appreciate it if you could obey the following code of conduct: +We will publicly thank you once the security vulnerability has been fixed. To avoid negative impact, please keep the vulnerability confidential until we fix it. We would appreciate it if you could obey the following code of conduct: The vulnerability will not be disclosed until TiDB releases a patch for it. diff --git a/WORKSPACE b/WORKSPACE index 818097c85455f..736c69a061442 100644 --- a/WORKSPACE +++ b/WORKSPACE @@ -33,7 +33,7 @@ go_rules_dependencies() go_register_toolchains( nogo = "@//build:tidb_nogo", - version = "1.18.3", + version = "1.18.4", ) gazelle_dependencies() diff --git a/bindinfo/BUILD.bazel b/bindinfo/BUILD.bazel index 299bcc1c6cbee..37339a990cf13 100644 --- a/bindinfo/BUILD.bazel +++ b/bindinfo/BUILD.bazel @@ -55,6 +55,7 @@ go_test( "temptable_test.go", ], embed = [":bindinfo"], + flaky = True, deps = [ "//config", "//domain", diff --git a/bindinfo/bind_test.go b/bindinfo/bind_test.go index 6e9d6384cab4f..6f5a446cdb92d 100644 --- a/bindinfo/bind_test.go +++ b/bindinfo/bind_test.go @@ -331,6 +331,49 @@ func TestExplain(t *testing.T) { tk.MustExec("drop global binding for SELECT * from t1 union SELECT * from t1") } +func TestBindSemiJoinRewrite(t *testing.T) { + store, clean := testkit.CreateMockStore(t) + defer clean() + + tk := testkit.NewTestKit(t, store) + tk.MustExec("use test") + tk.MustExec("drop table if exists t1") + tk.MustExec("drop table if exists t2") + tk.MustExec("create table t1(id int)") + tk.MustExec("create table t2(id int)") + require.True(t, tk.HasKeywordInOperatorInfo("select * from t1 where exists(select 1 from t2 where t1.id=t2.id)", "semi join")) + require.True(t, tk.NotHasKeywordInOperatorInfo("select * from t1 where exists(select /*+ SEMI_JOIN_REWRITE() */ 1 from t2 where t1.id=t2.id)", "semi join")) + + tk.MustExec(` +create global binding for + select * from t1 where exists(select 1 from t2 where t1.id=t2.id) +using + select * from t1 where exists(select /*+ SEMI_JOIN_REWRITE() */ 1 from t2 where t1.id=t2.id) +`) + + require.True(t, tk.NotHasKeywordInOperatorInfo("select * from t1 where exists(select 1 from t2 where t1.id=t2.id)", "semi join")) +} + +func TestBindCTEMerge(t *testing.T) { + store, clean := testkit.CreateMockStore(t) + defer clean() + + tk := testkit.NewTestKit(t, store) + tk.MustExec("use test") + tk.MustExec("drop table if exists t1") + tk.MustExec("create table t1(id int)") + require.True(t, tk.HasPlan("with cte as (select * from t1) select * from cte", "CTEFullScan")) + require.False(t, tk.HasPlan("with cte as (select /*+ MERGE() */ * from t1) select * from cte", "CTEFullScan")) + tk.MustExec(` +create global binding for + with cte as (select * from t1) select * from cte +using + with cte as (select /*+ MERGE() */ * from t1) select * from cte +`) + + require.False(t, tk.HasPlan("with cte as (select * from t1) select * from cte", "CTEFullScan")) +} + // TestBindingSymbolList tests sql with "?, ?, ?, ?", fixes #13871 func TestBindingSymbolList(t *testing.T) { store, dom, clean := testkit.CreateMockStoreAndDomain(t) diff --git a/bindinfo/capture_test.go b/bindinfo/capture_test.go index 7ebb419a8adaf..0836196d86852 100644 --- a/bindinfo/capture_test.go +++ b/bindinfo/capture_test.go @@ -441,7 +441,7 @@ func TestUpdateSubqueryCapture(t *testing.T) { tk.MustExec("admin capture bindings") rows := tk.MustQuery("show global bindings").Rows() require.Len(t, rows, 1) - bindSQL := "UPDATE /*+ use_index(@`upd_1` `test`.`t1` `idx_b`), use_index(@`sel_1` `test`.`t2` ), hash_join(@`upd_1` `test`.`t1`), use_index(@`sel_2` `test`.`t2` )*/ `test`.`t1` SET `b`=1 WHERE `b` = 2 AND (`a` IN (SELECT `a` FROM `test`.`t2` WHERE `b` = 1) OR `c` IN (SELECT `a` FROM `test`.`t2` WHERE `b` = 1))" + bindSQL := "UPDATE /*+ hash_join(@`upd_1` `test`.`t1`), use_index(@`upd_1` `test`.`t1` `idx_b`), use_index(@`sel_1` `test`.`t2` ), use_index(@`sel_2` `test`.`t2` )*/ `test`.`t1` SET `b`=1 WHERE `b` = 2 AND (`a` IN (SELECT `a` FROM `test`.`t2` WHERE `b` = 1) OR `c` IN (SELECT `a` FROM `test`.`t2` WHERE `b` = 1))" require.Equal(t, bindSQL, rows[0][1]) tk.MustExec(bindSQL) require.Len(t, tk.Session().GetSessionVars().StmtCtx.GetWarnings(), 0) @@ -566,7 +566,7 @@ func TestIssue25505(t *testing.T) { spmMap := map[string]string{} spmMap["with recursive `cte` ( `a` ) as ( select ? union select `a` + ? from `test` . `t1` where `a` < ? ) select * from `cte`"] = - "WITH RECURSIVE `cte` (`a`) AS (SELECT 2 UNION SELECT `a` + 1 FROM `test`.`t1` WHERE `a` < 5) SELECT /*+ use_index(@`sel_3` `test`.`t1` `idx_ab`), hash_agg(@`sel_1`)*/ * FROM `cte`" + "WITH RECURSIVE `cte` (`a`) AS (SELECT 2 UNION SELECT `a` + 1 FROM `test`.`t1` WHERE `a` < 5) SELECT /*+ hash_agg(@`sel_1`), use_index(@`sel_3` `test`.`t1` `idx_ab`)*/ * FROM `cte`" spmMap["with recursive `cte1` ( `a` , `b` ) as ( select * from `test` . `t` where `b` = ? union select `a` + ? , `b` + ? from `cte1` where `a` < ? ) select * from `test` . `t`"] = "WITH RECURSIVE `cte1` (`a`, `b`) AS (SELECT * FROM `test`.`t` WHERE `b` = 1 UNION SELECT `a` + 1,`b` + 1 FROM `cte1` WHERE `a` < 2) SELECT /*+ use_index(@`sel_1` `test`.`t` )*/ * FROM `test`.`t`" spmMap["with `cte1` as ( select * from `test` . `t` ) , `cte2` as ( select ? ) select * from `test` . `t`"] = @@ -574,11 +574,11 @@ func TestIssue25505(t *testing.T) { spmMap["with `cte` as ( select * from `test` . `t` where `b` = ? ) select * from `test` . `t`"] = "WITH `cte` AS (SELECT * FROM `test`.`t` WHERE `b` = 6) SELECT /*+ use_index(@`sel_1` `test`.`t` )*/ * FROM `test`.`t`" spmMap["with recursive `cte` ( `a` ) as ( select ? union select `a` + ? from `test` . `t1` where `a` > ? ) select * from `cte`"] = - "WITH RECURSIVE `cte` (`a`) AS (SELECT 2 UNION SELECT `a` + 1 FROM `test`.`t1` WHERE `a` > 5) SELECT /*+ use_index(@`sel_3` `test`.`t1` `idx_b`), hash_agg(@`sel_1`)*/ * FROM `cte`" + "WITH RECURSIVE `cte` (`a`) AS (SELECT 2 UNION SELECT `a` + 1 FROM `test`.`t1` WHERE `a` > 5) SELECT /*+ hash_agg(@`sel_1`), use_index(@`sel_3` `test`.`t1` `idx_b`)*/ * FROM `cte`" spmMap["with `cte` as ( with `cte1` as ( select * from `test` . `t2` where `a` > ? and `b` > ? ) select * from `cte1` ) select * from `cte` join `test` . `t1` on `t1` . `a` = `cte` . `a`"] = - "WITH `cte` AS (WITH `cte1` AS (SELECT * FROM `test`.`t2` WHERE `a` > 1 AND `b` > 1) SELECT * FROM `cte1`) SELECT /*+ use_index(@`sel_3` `test`.`t2` `idx_ab`), use_index(@`sel_1` `test`.`t1` `idx_ab`), inl_join(@`sel_1` `test`.`t1`)*/ * FROM `cte` JOIN `test`.`t1` ON `t1`.`a` = `cte`.`a`" + "WITH `cte` AS (WITH `cte1` AS (SELECT * FROM `test`.`t2` WHERE `a` > 1 AND `b` > 1) SELECT * FROM `cte1`) SELECT /*+ inl_join(@`sel_1` `test`.`t1`), use_index(@`sel_1` `test`.`t1` `idx_ab`), use_index(@`sel_3` `test`.`t2` `idx_ab`)*/ * FROM `cte` JOIN `test`.`t1` ON `t1`.`a` = `cte`.`a`" spmMap["with `cte` as ( with `cte1` as ( select * from `test` . `t2` where `a` = ? and `b` = ? ) select * from `cte1` ) select * from `cte` join `test` . `t1` on `t1` . `a` = `cte` . `a`"] = - "WITH `cte` AS (WITH `cte1` AS (SELECT * FROM `test`.`t2` WHERE `a` = 1 AND `b` = 1) SELECT * FROM `cte1`) SELECT /*+ use_index(@`sel_3` `test`.`t2` `idx_a`), use_index(@`sel_1` `test`.`t1` `idx_a`), inl_join(@`sel_1` `test`.`t1`)*/ * FROM `cte` JOIN `test`.`t1` ON `t1`.`a` = `cte`.`a`" + "WITH `cte` AS (WITH `cte1` AS (SELECT * FROM `test`.`t2` WHERE `a` = 1 AND `b` = 1) SELECT * FROM `cte1`) SELECT /*+ inl_join(@`sel_1` `test`.`t1`), use_index(@`sel_1` `test`.`t1` `idx_a`), use_index(@`sel_3` `test`.`t2` `idx_a`)*/ * FROM `cte` JOIN `test`.`t1` ON `t1`.`a` = `cte`.`a`" tk.MustExec("with cte as (with cte1 as (select /*+use_index(t2 idx_a)*/ * from t2 where a = 1 and b = 1) select * from cte1) select /*+use_index(t1 idx_a)*/ * from cte join t1 on t1.a=cte.a;") tk.MustExec("with cte as (with cte1 as (select /*+use_index(t2 idx_a)*/ * from t2 where a = 1 and b = 1) select * from cte1) select /*+use_index(t1 idx_a)*/ * from cte join t1 on t1.a=cte.a;") diff --git a/br/cmd/br/BUILD.bazel b/br/cmd/br/BUILD.bazel index 278044d0e6db5..7254e0b4c3fdb 100644 --- a/br/cmd/br/BUILD.bazel +++ b/br/cmd/br/BUILD.bazel @@ -13,6 +13,7 @@ go_library( importpath = "github.com/pingcap/tidb/br/cmd/br", visibility = ["//visibility:private"], deps = [ + "//br/pkg/conn", "//br/pkg/errors", "//br/pkg/gluetidb", "//br/pkg/gluetikv", @@ -55,4 +56,5 @@ go_test( name = "br_test", srcs = ["main_test.go"], embed = [":br_lib"], + flaky = True, ) diff --git a/br/cmd/br/cmd.go b/br/cmd/br/cmd.go index 3c5bf674da430..f3aeb3393df52 100644 --- a/br/cmd/br/cmd.go +++ b/br/cmd/br/cmd.go @@ -36,6 +36,14 @@ var ( "*.*", fmt.Sprintf("!%s.*", utils.TemporaryDBName("*")), "!mysql.*", + "mysql.user", + "mysql.db", + "mysql.tables_priv", + "mysql.columns_priv", + "mysql.global_priv", + "mysql.global_grants", + "mysql.default_roles", + "mysql.role_edges", "!sys.*", "!INFORMATION_SCHEMA.*", "!PERFORMANCE_SCHEMA.*", diff --git a/br/cmd/br/debug.go b/br/cmd/br/debug.go index 81f9543d1c349..c62dd677f9a66 100644 --- a/br/cmd/br/debug.go +++ b/br/cmd/br/debug.go @@ -16,6 +16,7 @@ import ( backuppb "github.com/pingcap/kvproto/pkg/brpb" "github.com/pingcap/kvproto/pkg/import_sstpb" "github.com/pingcap/log" + "github.com/pingcap/tidb/br/pkg/conn" berrors "github.com/pingcap/tidb/br/pkg/errors" "github.com/pingcap/tidb/br/pkg/logutil" "github.com/pingcap/tidb/br/pkg/metautil" @@ -53,6 +54,7 @@ func NewDebugCommand() *cobra.Command { meta.AddCommand(decodeBackupMetaCommand()) meta.AddCommand(encodeBackupMetaCommand()) meta.AddCommand(setPDConfigCommand()) + meta.AddCommand(searchStreamBackupCommand()) meta.Hidden = true return meta @@ -383,7 +385,7 @@ func setPDConfigCommand() *cobra.Command { return errors.Trace(err) } - mgr, err := task.NewMgr(ctx, tidbGlue, cfg.PD, cfg.TLS, task.GetKeepalive(&cfg), cfg.CheckRequirements, false) + mgr, err := task.NewMgr(ctx, tidbGlue, cfg.PD, cfg.TLS, task.GetKeepalive(&cfg), cfg.CheckRequirements, false, conn.NormalVersionChecker) if err != nil { return errors.Trace(err) } @@ -398,3 +400,71 @@ func setPDConfigCommand() *cobra.Command { } return pdConfigCmd } + +func searchStreamBackupCommand() *cobra.Command { + searchBackupCMD := &cobra.Command{ + Use: "search-log-backup", + Short: "search log backup by key", + Args: cobra.NoArgs, + RunE: func(cmd *cobra.Command, args []string) error { + ctx, cancel := context.WithCancel(GetDefaultContext()) + defer cancel() + + searchKey, err := cmd.Flags().GetString("search-key") + if err != nil { + return errors.Trace(err) + } + if searchKey == "" { + return errors.New("key param can't be empty") + } + keyBytes, err := hex.DecodeString(searchKey) + if err != nil { + return errors.Trace(err) + } + + startTs, err := cmd.Flags().GetUint64("start-ts") + if err != nil { + return errors.Trace(err) + } + endTs, err := cmd.Flags().GetUint64("end-ts") + if err != nil { + return errors.Trace(err) + } + + var cfg task.Config + if err = cfg.ParseFromFlags(cmd.Flags()); err != nil { + return errors.Trace(err) + } + _, s, err := task.GetStorage(ctx, cfg.Storage, &cfg) + if err != nil { + return errors.Trace(err) + } + comparator := restore.NewStartWithComparator() + bs := restore.NewStreamBackupSearch(s, comparator, keyBytes) + bs.SetStartTS(startTs) + bs.SetEndTs(endTs) + + kvs, err := bs.Search(ctx) + if err != nil { + return errors.Trace(err) + } + + kvsBytes, err := json.MarshalIndent(kvs, "", " ") + if err != nil { + return errors.Trace(err) + } + + cmd.Println("search result") + cmd.Println(string(kvsBytes)) + + return nil + }, + } + + flags := searchBackupCMD.Flags() + flags.String("search-key", "", "hex encoded key") + flags.Uint64("start-ts", 0, "search from start TSO, default is no start TSO limit") + flags.Uint64("end-ts", 0, "search to end TSO, default is no end TSO limit") + + return searchBackupCMD +} diff --git a/br/cmd/br/restore.go b/br/cmd/br/restore.go index a228605fb51b7..b5a692c0dc03d 100644 --- a/br/cmd/br/restore.go +++ b/br/cmd/br/restore.go @@ -3,8 +3,11 @@ package main import ( + "fmt" + "github.com/pingcap/errors" "github.com/pingcap/log" + berrors "github.com/pingcap/tidb/br/pkg/errors" "github.com/pingcap/tidb/br/pkg/gluetikv" "github.com/pingcap/tidb/br/pkg/summary" "github.com/pingcap/tidb/br/pkg/task" @@ -38,11 +41,31 @@ func runRestoreCommand(command *cobra.Command, cmdName string) error { } if err := task.RunRestore(GetDefaultContext(), tidbGlue, cmdName, &cfg); err != nil { log.Error("failed to restore", zap.Error(err)) + printWorkaroundOnFullRestoreError(command, err) return errors.Trace(err) } return nil } +// print workaround when we met not fresh or incompatible cluster error on full cluster restore +func printWorkaroundOnFullRestoreError(command *cobra.Command, err error) { + if !errors.ErrorEqual(err, berrors.ErrRestoreNotFreshCluster) && + !errors.ErrorEqual(err, berrors.ErrRestoreIncompatibleSys) { + return + } + fmt.Println("#######################################################################") + switch { + case errors.ErrorEqual(err, berrors.ErrRestoreNotFreshCluster): + fmt.Println("# the target cluster is not fresh, br cannot restore system tables.") + case errors.ErrorEqual(err, berrors.ErrRestoreIncompatibleSys): + fmt.Println("# the target cluster is not compatible with the backup data,") + fmt.Println("# br cannot restore system tables.") + } + fmt.Println("# you can use the following command to skip restoring system tables:") + fmt.Printf("# br restore %s --filter '*.*' --filter '!mysql.*' \n", command.Use) + fmt.Println("#######################################################################") +} + func runRestoreRawCommand(command *cobra.Command, cmdName string) error { cfg := task.RestoreRawConfig{ RawKvConfig: task.RawKvConfig{Config: task.Config{LogProgress: HasLogFile()}}, diff --git a/br/cmd/tidb-lightning-ctl/BUILD.bazel b/br/cmd/tidb-lightning-ctl/BUILD.bazel index 33aa0bdfa37e0..32fc01fbefbbd 100644 --- a/br/cmd/tidb-lightning-ctl/BUILD.bazel +++ b/br/cmd/tidb-lightning-ctl/BUILD.bazel @@ -28,4 +28,5 @@ go_test( name = "tidb-lightning-ctl_test", srcs = ["main_test.go"], embed = [":tidb-lightning-ctl_lib"], + flaky = True, ) diff --git a/br/cmd/tidb-lightning/BUILD.bazel b/br/cmd/tidb-lightning/BUILD.bazel index 6098f1db43f84..cf4d53c6626bb 100644 --- a/br/cmd/tidb-lightning/BUILD.bazel +++ b/br/cmd/tidb-lightning/BUILD.bazel @@ -25,4 +25,5 @@ go_test( name = "tidb-lightning_test", srcs = ["main_test.go"], embed = [":tidb-lightning_lib"], + flaky = True, ) diff --git a/br/docker/Dockerfile b/br/docker/Dockerfile index 38e67e34b805e..154e2f607c19e 100644 --- a/br/docker/Dockerfile +++ b/br/docker/Dockerfile @@ -1,6 +1,15 @@ # For loading data to TiDB -FROM golang:1.18-buster as go-ycsb-builder +FROM golang:1.18.1-alpine as go-ycsb-builder WORKDIR /go/src/github.com/pingcap/ + +RUN apk add --no-cache \ + wget \ + make \ + git \ + binutils-gold \ + gcc \ + musl-dev + RUN git clone https://github.com/pingcap/go-ycsb.git --depth=1 && \ cd go-ycsb && \ make @@ -8,15 +17,7 @@ RUN git clone https://github.com/pingcap/go-ycsb.git --depth=1 && \ # For operating minio S3 compatible storage FROM minio/mc as mc-builder -FROM golang:1.18-buster - -RUN apt-get update && apt-get install -y --no-install-recommends \ - git \ - curl \ - vim \ - less \ - default-mysql-client \ - && rm -rf /var/lib/apt/lists/* +FROM golang:1.18.1-alpine WORKDIR /go/src/github.com/pingcap/br COPY . . diff --git a/br/pkg/backup/BUILD.bazel b/br/pkg/backup/BUILD.bazel index 14f4d1a87c6f9..89ac1aec73288 100644 --- a/br/pkg/backup/BUILD.bazel +++ b/br/pkg/backup/BUILD.bazel @@ -29,6 +29,7 @@ go_library( "//meta", "//meta/autoid", "//parser/model", + "//sessionctx", "//statistics/handle", "//util", "//util/codec", @@ -63,6 +64,7 @@ go_test( "schema_test.go", ], embed = [":backup"], + flaky = True, deps = [ "//br/pkg/conn", "//br/pkg/metautil", diff --git a/br/pkg/backup/client.go b/br/pkg/backup/client.go index d6548daecbdfa..598f9d50c3006 100644 --- a/br/pkg/backup/client.go +++ b/br/pkg/backup/client.go @@ -36,6 +36,7 @@ import ( "github.com/pingcap/tidb/meta" "github.com/pingcap/tidb/meta/autoid" "github.com/pingcap/tidb/parser/model" + "github.com/pingcap/tidb/sessionctx" "github.com/pingcap/tidb/util" "github.com/pingcap/tidb/util/codec" "github.com/pingcap/tidb/util/ranger" @@ -472,21 +473,31 @@ func skipUnsupportedDDLJob(job *model.Job) bool { } // WriteBackupDDLJobs sends the ddl jobs are done in (lastBackupTS, backupTS] to metaWriter. -func WriteBackupDDLJobs(metaWriter *metautil.MetaWriter, store kv.Storage, lastBackupTS, backupTS uint64) error { +func WriteBackupDDLJobs(metaWriter *metautil.MetaWriter, se sessionctx.Context, store kv.Storage, lastBackupTS, backupTS uint64) error { snapshot := store.GetSnapshot(kv.NewVersion(backupTS)) snapMeta := meta.NewSnapshotMeta(snapshot) lastSnapshot := store.GetSnapshot(kv.NewVersion(lastBackupTS)) lastSnapMeta := meta.NewSnapshotMeta(lastSnapshot) - lastSchemaVersion, err := lastSnapMeta.GetSchemaVersion() + lastSchemaVersion, err := lastSnapMeta.GetSchemaVersionWithNonEmptyDiff() if err != nil { return errors.Trace(err) } - allJobs, err := ddl.GetAllDDLJobs(snapMeta) + backupSchemaVersion, err := snapMeta.GetSchemaVersionWithNonEmptyDiff() + if err != nil { + return errors.Trace(err) + } + + version, err := store.CurrentVersion(kv.GlobalTxnScope) + if err != nil { + return errors.Trace(err) + } + newestMeta := meta.NewSnapshotMeta(store.GetSnapshot(kv.NewVersion(version.Ver))) + allJobs, err := ddl.GetAllDDLJobs(se, newestMeta) if err != nil { return errors.Trace(err) } log.Debug("get all jobs", zap.Int("jobs", len(allJobs))) - historyJobs, err := ddl.GetAllHistoryDDLJobs(snapMeta) + historyJobs, err := ddl.GetAllHistoryDDLJobs(newestMeta) if err != nil { return errors.Trace(err) } @@ -500,7 +511,7 @@ func WriteBackupDDLJobs(metaWriter *metautil.MetaWriter, store kv.Storage, lastB } if (job.State == model.JobStateDone || job.State == model.JobStateSynced) && - (job.BinlogInfo != nil && job.BinlogInfo.SchemaVersion > lastSchemaVersion) { + (job.BinlogInfo != nil && job.BinlogInfo.SchemaVersion > lastSchemaVersion && job.BinlogInfo.SchemaVersion <= backupSchemaVersion) { if job.BinlogInfo.DBInfo != nil { // ignore all placement policy info during incremental backup for now. job.BinlogInfo.DBInfo.PlacementPolicyRef = nil diff --git a/br/pkg/backup/client_test.go b/br/pkg/backup/client_test.go index d2a53c9934d4c..60cf42f94998a 100644 --- a/br/pkg/backup/client_test.go +++ b/br/pkg/backup/client_test.go @@ -280,7 +280,7 @@ func TestSkipUnsupportedDDLJob(t *testing.T) { metaWriter := metautil.NewMetaWriter(s.storage, metautil.MetaFileSize, false, "", &cipher) ctx := context.Background() metaWriter.StartWriteMetasAsync(ctx, metautil.AppendDDL) - err = backup.WriteBackupDDLJobs(metaWriter, s.cluster.Storage, lastTS, ts) + err = backup.WriteBackupDDLJobs(metaWriter, tk.Session(), s.cluster.Storage, lastTS, ts) require.NoErrorf(t, err, "Error get ddl jobs: %s", err) err = metaWriter.FinishWriteMetas(ctx, metautil.AppendDDL) require.NoError(t, err, "Flush failed", err) diff --git a/br/pkg/checksum/BUILD.bazel b/br/pkg/checksum/BUILD.bazel index db1bf73ea87bd..3b668877113ad 100644 --- a/br/pkg/checksum/BUILD.bazel +++ b/br/pkg/checksum/BUILD.bazel @@ -35,6 +35,7 @@ go_test( "main_test.go", ], embed = [":checksum"], + flaky = True, deps = [ "//br/pkg/backup", "//br/pkg/metautil", diff --git a/br/pkg/conn/BUILD.bazel b/br/pkg/conn/BUILD.bazel index ad1bcacaaac8d..c1deb8e6c489f 100644 --- a/br/pkg/conn/BUILD.bazel +++ b/br/pkg/conn/BUILD.bazel @@ -14,6 +14,7 @@ go_library( "//br/pkg/version", "//domain", "//kv", + "//util/engine", "@com_github_docker_go_units//:go-units", "@com_github_opentracing_opentracing_go//:opentracing-go", "@com_github_pingcap_errors//:errors", @@ -41,6 +42,7 @@ go_test( "main_test.go", ], embed = [":conn"], + flaky = True, deps = [ "//br/pkg/pdutil", "//br/pkg/utils", diff --git a/br/pkg/conn/conn.go b/br/pkg/conn/conn.go index f90743e1bd3d5..cd96e8f68a992 100755 --- a/br/pkg/conn/conn.go +++ b/br/pkg/conn/conn.go @@ -27,6 +27,7 @@ import ( "github.com/pingcap/tidb/br/pkg/version" "github.com/pingcap/tidb/domain" "github.com/pingcap/tidb/kv" + "github.com/pingcap/tidb/util/engine" "github.com/tikv/client-go/v2/oracle" "github.com/tikv/client-go/v2/tikv" "github.com/tikv/client-go/v2/txnkv/txnlock" @@ -47,6 +48,15 @@ const ( DefaultMergeRegionKeyCount uint64 = 960000 ) +type VersionCheckerType int + +const ( + // default version checker + NormalVersionChecker VersionCheckerType = iota + // version checker for PiTR + StreamVersionChecker +) + // Mgr manages connections to a TiDB cluster. type Mgr struct { *pdutil.PdController @@ -91,7 +101,7 @@ func GetAllTiKVStores( j := 0 for _, store := range stores { isTiFlash := false - if version.IsTiFlash(store) { + if engine.IsTiFlash(store) { if storeBehavior == SkipTiFlash { continue } else if storeBehavior == ErrorOnTiFlash { @@ -177,6 +187,7 @@ func NewMgr( storeBehavior StoreBehavior, checkRequirements bool, needDomain bool, + versionCheckerType VersionCheckerType, ) (*Mgr, error) { if span := opentracing.SpanFromContext(ctx); span != nil && span.Tracer() != nil { span1 := span.Tracer().StartSpan("conn.NewMgr", opentracing.ChildOf(span.Context())) @@ -192,7 +203,16 @@ func NewMgr( return nil, errors.Trace(err) } if checkRequirements { - err = version.CheckClusterVersion(ctx, controller.GetPDClient(), version.CheckVersionForBR) + var checker version.VerChecker + switch versionCheckerType { + case NormalVersionChecker: + checker = version.CheckVersionForBR + case StreamVersionChecker: + checker = version.CheckVersionForBRPiTR + default: + return nil, errors.Errorf("unknown command type, comman code is %d", versionCheckerType) + } + err = version.CheckClusterVersion(ctx, controller.GetPDClient(), checker) if err != nil { return nil, errors.Annotate(err, "running BR in incompatible version of cluster, "+ "if you believe it's OK, use --check-requirements=false to skip.") diff --git a/br/pkg/errors/BUILD.bazel b/br/pkg/errors/BUILD.bazel index fd6f45603d35c..7b3cc9043a507 100644 --- a/br/pkg/errors/BUILD.bazel +++ b/br/pkg/errors/BUILD.bazel @@ -11,6 +11,7 @@ go_library( go_test( name = "errors_test", srcs = ["errors_test.go"], + flaky = True, deps = [ ":errors", "@com_github_pingcap_errors//:errors", diff --git a/br/pkg/errors/errors.go b/br/pkg/errors/errors.go index f95be8e68ead5..355b7bad3668f 100644 --- a/br/pkg/errors/errors.go +++ b/br/pkg/errors/errors.go @@ -62,6 +62,8 @@ var ( ErrRestoreInvalidRange = errors.Normalize("invalid restore range", errors.RFCCodeText("BR:Restore:ErrRestoreInvalidRange")) ErrRestoreWriteAndIngest = errors.Normalize("failed to write and ingest", errors.RFCCodeText("BR:Restore:ErrRestoreWriteAndIngest")) ErrRestoreSchemaNotExists = errors.Normalize("schema not exists", errors.RFCCodeText("BR:Restore:ErrRestoreSchemaNotExists")) + ErrRestoreNotFreshCluster = errors.Normalize("cluster is not fresh", errors.RFCCodeText("BR:Restore:ErrRestoreNotFreshCluster")) + ErrRestoreIncompatibleSys = errors.Normalize("incompatible system table", errors.RFCCodeText("BR:Restore:ErrRestoreIncompatibleSys")) ErrUnsupportedSystemTable = errors.Normalize("the system table isn't supported for restoring yet", errors.RFCCodeText("BR:Restore:ErrUnsupportedSysTable")) ErrDatabasesAlreadyExisted = errors.Normalize("databases already existed in restored cluster", errors.RFCCodeText("BR:Restore:ErrDatabasesAlreadyExisted")) diff --git a/br/pkg/glue/BUILD.bazel b/br/pkg/glue/BUILD.bazel index 812b2b2c8b6a7..05955a4ca5e22 100644 --- a/br/pkg/glue/BUILD.bazel +++ b/br/pkg/glue/BUILD.bazel @@ -13,6 +13,7 @@ go_library( "//domain", "//kv", "//parser/model", + "//sessionctx", "@com_github_fatih_color//:color", "@com_github_pingcap_log//:log", "@com_github_tikv_pd_client//:client", @@ -24,6 +25,7 @@ go_library( go_test( name = "glue_test", srcs = ["console_glue_test.go"], + flaky = True, deps = [ ":glue", "@com_github_fatih_color//:color", diff --git a/br/pkg/glue/console_glue.go b/br/pkg/glue/console_glue.go index 5f00cb3a63e2e..3b64faa14b56f 100644 --- a/br/pkg/glue/console_glue.go +++ b/br/pkg/glue/console_glue.go @@ -23,12 +23,40 @@ type ConsoleOperations struct { ConsoleGlue } -// StartTask prints a task start information, and mark as finished when the returned function called. -func (ops ConsoleOperations) StartTask(message string) func() { +// An extra field appending to the task. +// return type is a {key: string, value: string} tuple. +type ExtraField func() [2]string + +// NOTE: +// Perhaps we'd better move these modifiers and terminal function to another package +// like `glue/termutil?` + +// WithTimeCost adds the task information of time costing for `ShowTask`. +func WithTimeCost() ExtraField { start := time.Now() + return func() [2]string { + return [2]string{"take", time.Since(start).String()} + } +} + +// WithConstExtraField adds an extra field with constant values. +func WithConstExtraField(key string, value interface{}) ExtraField { + return func() [2]string { + return [2]string{key, fmt.Sprint(value)} + } +} + +// ShowTask prints a task start information, and mark as finished when the returned function called. +// This is for TUI presenting. +func (ops ConsoleOperations) ShowTask(message string, extraFields ...ExtraField) func() { ops.Print(message) return func() { - ops.Printf("%s; take = %s\n", color.HiGreenString("DONE"), time.Since(start)) + fields := make([]string, 0, len(extraFields)) + for _, fieldFunc := range extraFields { + field := fieldFunc() + fields = append(fields, fmt.Sprintf("%s = %s", field[0], color.New(color.Bold).Sprint(field[1]))) + } + ops.Printf("%s; %s\n", color.HiGreenString("DONE"), strings.Join(fields, ", ")) } } diff --git a/br/pkg/glue/glue.go b/br/pkg/glue/glue.go index 24b0852d31290..4c3f18714f9a3 100644 --- a/br/pkg/glue/glue.go +++ b/br/pkg/glue/glue.go @@ -8,6 +8,7 @@ import ( "github.com/pingcap/tidb/domain" "github.com/pingcap/tidb/kv" "github.com/pingcap/tidb/parser/model" + "github.com/pingcap/tidb/sessionctx" pd "github.com/tikv/pd/client" ) @@ -39,6 +40,7 @@ type Session interface { CreatePlacementPolicy(ctx context.Context, policy *model.PolicyInfo) error Close() GetGlobalVariable(name string) (string, error) + GetSessionCtx() sessionctx.Context } // BatchCreateTableSession is an interface to batch create table parallelly diff --git a/br/pkg/gluetidb/glue.go b/br/pkg/gluetidb/glue.go index 48d5b05b56a63..d07594f1f842d 100644 --- a/br/pkg/gluetidb/glue.go +++ b/br/pkg/gluetidb/glue.go @@ -114,6 +114,11 @@ func (g Glue) GetVersion() string { return g.tikvGlue.GetVersion() } +// GetSessionCtx implements glue.Glue +func (gs *tidbSession) GetSessionCtx() sessionctx.Context { + return gs.se +} + // Execute implements glue.Session. func (gs *tidbSession) Execute(ctx context.Context, sql string) error { return gs.ExecuteInternal(ctx, sql) diff --git a/br/pkg/gluetikv/BUILD.bazel b/br/pkg/gluetikv/BUILD.bazel index 7d8c6118604e4..884514ee86255 100644 --- a/br/pkg/gluetikv/BUILD.bazel +++ b/br/pkg/gluetikv/BUILD.bazel @@ -22,5 +22,6 @@ go_test( name = "gluetikv_test", srcs = ["glue_test.go"], embed = [":gluetikv"], + flaky = True, deps = ["@com_github_stretchr_testify//require"], ) diff --git a/br/pkg/lightning/BUILD.bazel b/br/pkg/lightning/BUILD.bazel index 99d534762fc69..6da0f6c1b8bea 100644 --- a/br/pkg/lightning/BUILD.bazel +++ b/br/pkg/lightning/BUILD.bazel @@ -48,6 +48,7 @@ go_test( "main_test.go", ], embed = [":lightning"], + flaky = True, deps = [ "//br/pkg/lightning/checkpoints", "//br/pkg/lightning/config", diff --git a/br/pkg/lightning/backend/BUILD.bazel b/br/pkg/lightning/backend/BUILD.bazel index 225c39df4c10b..c0d1e511880fa 100644 --- a/br/pkg/lightning/backend/BUILD.bazel +++ b/br/pkg/lightning/backend/BUILD.bazel @@ -26,6 +26,7 @@ go_library( go_test( name = "backend_test", srcs = ["backend_test.go"], + flaky = True, deps = [ ":backend", "//br/pkg/lightning/backend/kv", diff --git a/br/pkg/lightning/backend/backend.go b/br/pkg/lightning/backend/backend.go index f8b3e79132aa9..a08ba27146eb0 100644 --- a/br/pkg/lightning/backend/backend.go +++ b/br/pkg/lightning/backend/backend.go @@ -125,16 +125,43 @@ type CheckCtx struct { DBMetas []*mydump.MDDatabaseMeta } +// TargetInfoGetter defines the interfaces to get target information. +type TargetInfoGetter interface { + // FetchRemoteTableModels obtains the models of all tables given the schema + // name. The returned table info does not need to be precise if the encoder, + // is not requiring them, but must at least fill in the following fields for + // TablesFromMeta to succeed: + // - Name + // - State (must be model.StatePublic) + // - ID + // - Columns + // * Name + // * State (must be model.StatePublic) + // * Offset (must be 0, 1, 2, ...) + // - PKIsHandle (true = do not generate _tidb_rowid) + FetchRemoteTableModels(ctx context.Context, schemaName string) ([]*model.TableInfo, error) + + // CheckRequirements performs the check whether the backend satisfies the version requirements + CheckRequirements(ctx context.Context, checkCtx *CheckCtx) error +} + +// EncodingBuilder consists of operations to handle encoding backend row data formats from source. +type EncodingBuilder interface { + // NewEncoder creates an encoder of a TiDB table. + NewEncoder(ctx context.Context, tbl table.Table, options *kv.SessionOptions) (kv.Encoder, error) + // MakeEmptyRows creates an empty collection of encoded rows. + MakeEmptyRows() kv.Rows +} + // AbstractBackend is the abstract interface behind Backend. // Implementations of this interface must be goroutine safe: you can share an // instance and execute any method anywhere. type AbstractBackend interface { + EncodingBuilder + TargetInfoGetter // Close the connection to the backend. Close() - // MakeEmptyRows creates an empty collection of encoded rows. - MakeEmptyRows() kv.Rows - // RetryImportDelay returns the duration to sleep when retrying an import RetryImportDelay() time.Duration @@ -142,9 +169,6 @@ type AbstractBackend interface { // performed for this backend. Post-processing includes checksum and analyze. ShouldPostProcess() bool - // NewEncoder creates an encoder of a TiDB table. - NewEncoder(ctx context.Context, tbl table.Table, options *kv.SessionOptions) (kv.Encoder, error) - OpenEngine(ctx context.Context, config *EngineConfig, engineUUID uuid.UUID) error CloseEngine(ctx context.Context, config *EngineConfig, engineUUID uuid.UUID) error @@ -156,24 +180,6 @@ type AbstractBackend interface { CleanupEngine(ctx context.Context, engineUUID uuid.UUID) error - // CheckRequirements performs the check whether the backend satisfies the - // version requirements - CheckRequirements(ctx context.Context, checkCtx *CheckCtx) error - - // FetchRemoteTableModels obtains the models of all tables given the schema - // name. The returned table info does not need to be precise if the encoder, - // is not requiring them, but must at least fill in the following fields for - // TablesFromMeta to succeed: - // - Name - // - State (must be model.StatePublic) - // - ID - // - Columns - // * Name - // * State (must be model.StatePublic) - // * Offset (must be 0, 1, 2, ...) - // - PKIsHandle (true = do not generate _tidb_rowid) - FetchRemoteTableModels(ctx context.Context, schemaName string) ([]*model.TableInfo, error) - // FlushEngine ensures all KV pairs written to an open engine has been // synchronized, such that kill-9'ing Lightning afterwards and resuming from // checkpoint can recover the exact same content. diff --git a/br/pkg/lightning/backend/kv/BUILD.bazel b/br/pkg/lightning/backend/kv/BUILD.bazel index f0b8c5545c330..977b0a71ef583 100644 --- a/br/pkg/lightning/backend/kv/BUILD.bazel +++ b/br/pkg/lightning/backend/kv/BUILD.bazel @@ -50,6 +50,7 @@ go_test( "sql2kv_test.go", ], embed = [":kv"], + flaky = True, deps = [ "//br/pkg/lightning/common", "//br/pkg/lightning/log", diff --git a/br/pkg/lightning/backend/local/BUILD.bazel b/br/pkg/lightning/backend/local/BUILD.bazel index 02358eb492d32..34824a6f6b10d 100644 --- a/br/pkg/lightning/backend/local/BUILD.bazel +++ b/br/pkg/lightning/backend/local/BUILD.bazel @@ -43,6 +43,7 @@ go_library( "//table", "//tablecodec", "//util/codec", + "//util/engine", "//util/hack", "//util/mathutil", "//util/ranger", @@ -88,6 +89,7 @@ go_test( "localhelper_test.go", ], embed = [":local"], + flaky = True, deps = [ "//br/pkg/lightning/backend", "//br/pkg/lightning/backend/kv", @@ -100,7 +102,6 @@ go_test( "//br/pkg/pdutil", "//br/pkg/restore", "//br/pkg/utils", - "//br/pkg/version", "//kv", "//parser/mysql", "//sessionctx/stmtctx", @@ -108,6 +109,7 @@ go_test( "//tablecodec", "//types", "//util/codec", + "//util/engine", "//util/hack", "@com_github_cockroachdb_pebble//:pebble", "@com_github_cockroachdb_pebble//sstable", diff --git a/br/pkg/lightning/backend/local/local.go b/br/pkg/lightning/backend/local/local.go index d5d9e9bea7b5c..b0a807f2d7b76 100644 --- a/br/pkg/lightning/backend/local/local.go +++ b/br/pkg/lightning/backend/local/local.go @@ -58,6 +58,7 @@ import ( "github.com/pingcap/tidb/table" "github.com/pingcap/tidb/tablecodec" "github.com/pingcap/tidb/util/codec" + "github.com/pingcap/tidb/util/engine" "github.com/pingcap/tidb/util/mathutil" tikverror "github.com/tikv/client-go/v2/error" "github.com/tikv/client-go/v2/oracle" @@ -201,6 +202,139 @@ type Range struct { end []byte } +type encodingBuilder struct { + metrics *metric.Metrics +} + +// NewEncodingBuilder creates an KVEncodingBuilder with local backend implementation. +func NewEncodingBuilder(ctx context.Context) backend.EncodingBuilder { + result := new(encodingBuilder) + if m, ok := metric.FromContext(ctx); ok { + result.metrics = m + } + return result +} + +// NewEncoder creates a KV encoder. +// It implements the `backend.EncodingBuilder` interface. +func (b *encodingBuilder) NewEncoder(ctx context.Context, tbl table.Table, options *kv.SessionOptions) (kv.Encoder, error) { + return kv.NewTableKVEncoder(tbl, options, b.metrics, log.FromContext(ctx)) +} + +// MakeEmptyRows creates an empty KV rows. +// It implements the `backend.EncodingBuilder` interface. +func (b *encodingBuilder) MakeEmptyRows() kv.Rows { + return kv.MakeRowsFromKvPairs(nil) +} + +type targetInfoGetter struct { + tls *common.TLS + targetDBGlue glue.Glue + pdAddr string +} + +// NewTargetInfoGetter creates an TargetInfoGetter with local backend implementation. +func NewTargetInfoGetter(tls *common.TLS, g glue.Glue, pdAddr string) backend.TargetInfoGetter { + return &targetInfoGetter{ + tls: tls, + targetDBGlue: g, + pdAddr: pdAddr, + } +} + +// FetchRemoteTableModels obtains the models of all tables given the schema name. +// It implements the `TargetInfoGetter` interface. +func (g *targetInfoGetter) FetchRemoteTableModels(ctx context.Context, schemaName string) ([]*model.TableInfo, error) { + return tikv.FetchRemoteTableModelsFromTLS(ctx, g.tls, schemaName) +} + +// CheckRequirements performs the check whether the backend satisfies the version requirements. +// It implements the `TargetInfoGetter` interface. +func (g *targetInfoGetter) CheckRequirements(ctx context.Context, checkCtx *backend.CheckCtx) error { + // TODO: support lightning via SQL + db, _ := g.targetDBGlue.GetDB() + versionStr, err := version.FetchVersion(ctx, db) + if err != nil { + return errors.Trace(err) + } + if err := checkTiDBVersion(ctx, versionStr, localMinTiDBVersion, localMaxTiDBVersion); err != nil { + return err + } + if err := tikv.CheckPDVersion(ctx, g.tls, g.pdAddr, localMinPDVersion, localMaxPDVersion); err != nil { + return err + } + if err := tikv.CheckTiKVVersion(ctx, g.tls, g.pdAddr, localMinTiKVVersion, localMaxTiKVVersion); err != nil { + return err + } + + serverInfo := version.ParseServerInfo(versionStr) + return checkTiFlashVersion(ctx, g.targetDBGlue, checkCtx, *serverInfo.ServerVersion) +} + +func checkTiDBVersion(_ context.Context, versionStr string, requiredMinVersion, requiredMaxVersion semver.Version) error { + return version.CheckTiDBVersion(versionStr, requiredMinVersion, requiredMaxVersion) +} + +var tiFlashReplicaQuery = "SELECT TABLE_SCHEMA, TABLE_NAME FROM information_schema.TIFLASH_REPLICA WHERE REPLICA_COUNT > 0;" + +type tblName struct { + schema string + name string +} + +type tblNames []tblName + +func (t tblNames) String() string { + var b strings.Builder + b.WriteByte('[') + for i, n := range t { + if i > 0 { + b.WriteString(", ") + } + b.WriteString(common.UniqueTable(n.schema, n.name)) + } + b.WriteByte(']') + return b.String() +} + +// check TiFlash replicas. +// local backend doesn't support TiFlash before tidb v4.0.5 +func checkTiFlashVersion(ctx context.Context, g glue.Glue, checkCtx *backend.CheckCtx, tidbVersion semver.Version) error { + if tidbVersion.Compare(tiFlashMinVersion) >= 0 { + return nil + } + + res, err := g.GetSQLExecutor().QueryStringsWithLog(ctx, tiFlashReplicaQuery, "fetch tiflash replica info", log.FromContext(ctx)) + if err != nil { + return errors.Annotate(err, "fetch tiflash replica info failed") + } + + tiFlashTablesMap := make(map[tblName]struct{}, len(res)) + for _, tblInfo := range res { + name := tblName{schema: tblInfo[0], name: tblInfo[1]} + tiFlashTablesMap[name] = struct{}{} + } + + tiFlashTables := make(tblNames, 0) + for _, dbMeta := range checkCtx.DBMetas { + for _, tblMeta := range dbMeta.Tables { + if len(tblMeta.DataFiles) == 0 { + continue + } + name := tblName{schema: tblMeta.DB, name: tblMeta.Name} + if _, ok := tiFlashTablesMap[name]; ok { + tiFlashTables = append(tiFlashTables, name) + } + } + } + + if len(tiFlashTables) > 0 { + helpInfo := "Please either upgrade TiDB to version >= 4.0.5 or add TiFlash replica after load data." + return errors.Errorf("lightning local backend doesn't support TiFlash in this TiDB version. conflict tables: %s. "+helpInfo, tiFlashTables) + } + return nil +} + type local struct { engines sync.Map // sync version of map[uuid.UUID]*Engine @@ -236,6 +370,9 @@ type local struct { metrics *metric.Metrics writeLimiter StoreWriteLimiter logger log.Logger + + encBuilder backend.EncodingBuilder + targetInfoGetter backend.TargetInfoGetter } func openDuplicateDB(storeDir string) (*pebble.DB, error) { @@ -344,6 +481,8 @@ func NewLocalBackend( bufferPool: membuf.NewPool(membuf.WithAllocator(manual.Allocator{})), writeLimiter: writeLimiter, logger: log.FromContext(ctx), + encBuilder: NewEncodingBuilder(ctx), + targetInfoGetter: NewTargetInfoGetter(tls, g, cfg.TiDB.PdAddr), } if m, ok := metric.FromContext(ctx); ok { local.metrics = m @@ -363,7 +502,7 @@ func (local *local) checkMultiIngestSupport(ctx context.Context) error { hasTiFlash := false for _, s := range stores { - if s.State == metapb.StoreState_Up && version.IsTiFlash(s) { + if s.State == metapb.StoreState_Up && engine.IsTiFlash(s) { hasTiFlash = true break } @@ -371,7 +510,7 @@ func (local *local) checkMultiIngestSupport(ctx context.Context) error { for _, s := range stores { // skip stores that are not online - if s.State != metapb.StoreState_Up || version.IsTiFlash(s) { + if s.State != metapb.StoreState_Up || engine.IsTiFlash(s) { continue } var err error @@ -1652,100 +1791,19 @@ func (local *local) CleanupEngine(ctx context.Context, engineUUID uuid.UUID) err } func (local *local) CheckRequirements(ctx context.Context, checkCtx *backend.CheckCtx) error { - // TODO: support lightning via SQL - db, _ := local.g.GetDB() - versionStr, err := version.FetchVersion(ctx, db) - if err != nil { - return errors.Trace(err) - } - if err := checkTiDBVersion(ctx, versionStr, localMinTiDBVersion, localMaxTiDBVersion); err != nil { - return err - } - if err := tikv.CheckPDVersion(ctx, local.tls, local.pdAddr, localMinPDVersion, localMaxPDVersion); err != nil { - return err - } - if err := tikv.CheckTiKVVersion(ctx, local.tls, local.pdAddr, localMinTiKVVersion, localMaxTiKVVersion); err != nil { - return err - } - - serverInfo := version.ParseServerInfo(versionStr) - return checkTiFlashVersion(ctx, local.g, checkCtx, *serverInfo.ServerVersion) -} - -func checkTiDBVersion(_ context.Context, versionStr string, requiredMinVersion, requiredMaxVersion semver.Version) error { - return version.CheckTiDBVersion(versionStr, requiredMinVersion, requiredMaxVersion) -} - -var tiFlashReplicaQuery = "SELECT TABLE_SCHEMA, TABLE_NAME FROM information_schema.TIFLASH_REPLICA WHERE REPLICA_COUNT > 0;" - -type tblName struct { - schema string - name string -} - -type tblNames []tblName - -func (t tblNames) String() string { - var b strings.Builder - b.WriteByte('[') - for i, n := range t { - if i > 0 { - b.WriteString(", ") - } - b.WriteString(common.UniqueTable(n.schema, n.name)) - } - b.WriteByte(']') - return b.String() -} - -// check TiFlash replicas. -// local backend doesn't support TiFlash before tidb v4.0.5 -func checkTiFlashVersion(ctx context.Context, g glue.Glue, checkCtx *backend.CheckCtx, tidbVersion semver.Version) error { - if tidbVersion.Compare(tiFlashMinVersion) >= 0 { - return nil - } - - res, err := g.GetSQLExecutor().QueryStringsWithLog(ctx, tiFlashReplicaQuery, "fetch tiflash replica info", log.FromContext(ctx)) - if err != nil { - return errors.Annotate(err, "fetch tiflash replica info failed") - } - - tiFlashTablesMap := make(map[tblName]struct{}, len(res)) - for _, tblInfo := range res { - name := tblName{schema: tblInfo[0], name: tblInfo[1]} - tiFlashTablesMap[name] = struct{}{} - } - - tiFlashTables := make(tblNames, 0) - for _, dbMeta := range checkCtx.DBMetas { - for _, tblMeta := range dbMeta.Tables { - if len(tblMeta.DataFiles) == 0 { - continue - } - name := tblName{schema: tblMeta.DB, name: tblMeta.Name} - if _, ok := tiFlashTablesMap[name]; ok { - tiFlashTables = append(tiFlashTables, name) - } - } - } - - if len(tiFlashTables) > 0 { - helpInfo := "Please either upgrade TiDB to version >= 4.0.5 or add TiFlash replica after load data." - return errors.Errorf("lightning local backend doesn't support TiFlash in this TiDB version. conflict tables: %s. "+helpInfo, tiFlashTables) - } - return nil + return local.targetInfoGetter.CheckRequirements(ctx, checkCtx) } func (local *local) FetchRemoteTableModels(ctx context.Context, schemaName string) ([]*model.TableInfo, error) { - return tikv.FetchRemoteTableModelsFromTLS(ctx, local.tls, schemaName) + return local.targetInfoGetter.FetchRemoteTableModels(ctx, schemaName) } func (local *local) MakeEmptyRows() kv.Rows { - return kv.MakeRowsFromKvPairs(nil) + return local.encBuilder.MakeEmptyRows() } func (local *local) NewEncoder(ctx context.Context, tbl table.Table, options *kv.SessionOptions) (kv.Encoder, error) { - return kv.NewTableKVEncoder(tbl, options, local.metrics, log.FromContext(ctx)) + return local.encBuilder.NewEncoder(ctx, tbl, options) } func engineSSTDir(storeDir string, engineUUID uuid.UUID) string { @@ -1937,7 +1995,7 @@ func getRegionSplitSizeKeys(ctx context.Context, cli pd.Client, tls *common.TLS) return 0, 0, err } for _, store := range stores { - if store.StatusAddress == "" || version.IsTiFlash(store) { + if store.StatusAddress == "" || engine.IsTiFlash(store) { continue } serverInfo := infoschema.ServerInfo{ diff --git a/br/pkg/lightning/backend/local/local_test.go b/br/pkg/lightning/backend/local/local_test.go index 13112051e59d6..45030633b49c9 100644 --- a/br/pkg/lightning/backend/local/local_test.go +++ b/br/pkg/lightning/backend/local/local_test.go @@ -48,12 +48,12 @@ import ( "github.com/pingcap/tidb/br/pkg/pdutil" "github.com/pingcap/tidb/br/pkg/restore" "github.com/pingcap/tidb/br/pkg/utils" - "github.com/pingcap/tidb/br/pkg/version" tidbkv "github.com/pingcap/tidb/kv" "github.com/pingcap/tidb/sessionctx/stmtctx" "github.com/pingcap/tidb/tablecodec" "github.com/pingcap/tidb/types" "github.com/pingcap/tidb/util/codec" + "github.com/pingcap/tidb/util/engine" "github.com/pingcap/tidb/util/hack" "github.com/stretchr/testify/require" pd "github.com/tikv/pd/client" @@ -1022,7 +1022,7 @@ func TestMultiIngest(t *testing.T) { return store.State == metapb.StoreState_Up }, func(s *metapb.Store) bool { - return !version.IsTiFlash(s) + return !engine.IsTiFlash(s) }, 0, nil, @@ -1035,7 +1035,7 @@ func TestMultiIngest(t *testing.T) { return store.State == metapb.StoreState_Up }, func(s *metapb.Store) bool { - return version.IsTiFlash(s) + return engine.IsTiFlash(s) }, 0, nil, @@ -1071,10 +1071,10 @@ func TestMultiIngest(t *testing.T) { // test all non-tiflash stores that support multi ingests { func(store *metapb.Store) bool { - return !version.IsTiFlash(store) + return !engine.IsTiFlash(store) }, func(s *metapb.Store) bool { - return !version.IsTiFlash(s) + return !engine.IsTiFlash(s) }, 0, nil, @@ -1110,7 +1110,7 @@ func TestMultiIngest(t *testing.T) { // test grpc return error but no tiflash { func(store *metapb.Store) bool { - return !version.IsTiFlash(store) + return !engine.IsTiFlash(store) }, func(s *metapb.Store) bool { return true @@ -1123,7 +1123,7 @@ func TestMultiIngest(t *testing.T) { // test grpc return error and contains offline tiflash { func(store *metapb.Store) bool { - return !version.IsTiFlash(store) || store.State != metapb.StoreState_Up + return !engine.IsTiFlash(store) || store.State != metapb.StoreState_Up }, func(s *metapb.Store) bool { return true diff --git a/br/pkg/lightning/backend/local/localhelper.go b/br/pkg/lightning/backend/local/localhelper.go index ae736eaaabd37..eae62b813e531 100644 --- a/br/pkg/lightning/backend/local/localhelper.go +++ b/br/pkg/lightning/backend/local/localhelper.go @@ -497,7 +497,7 @@ func (local *local) checkRegionScatteredOrReScatter(ctx context.Context, regionI case pdpb.OperatorStatus_SUCCESS: return true, nil default: - log.FromContext(ctx).Warn("scatter-region operator status is abnormal, will scatter region again", + log.FromContext(ctx).Debug("scatter-region operator status is abnormal, will scatter region again", logutil.Region(regionInfo.Region), zap.Stringer("status", resp.GetStatus())) return false, local.splitCli.ScatterRegion(ctx, regionInfo) } diff --git a/br/pkg/lightning/backend/tidb/BUILD.bazel b/br/pkg/lightning/backend/tidb/BUILD.bazel index 9dd8a9a876c14..b8a6a3f306308 100644 --- a/br/pkg/lightning/backend/tidb/BUILD.bazel +++ b/br/pkg/lightning/backend/tidb/BUILD.bazel @@ -32,6 +32,7 @@ go_library( go_test( name = "tidb_test", srcs = ["tidb_test.go"], + flaky = True, deps = [ ":tidb", "//br/pkg/lightning/backend", diff --git a/br/pkg/lightning/backend/tidb/tidb.go b/br/pkg/lightning/backend/tidb/tidb.go index 1a9d100d39bd5..826a14bfeb4a9 100644 --- a/br/pkg/lightning/backend/tidb/tidb.go +++ b/br/pkg/lightning/backend/tidb/tidb.go @@ -90,10 +90,163 @@ type tidbEncoder struct { columnCnt int } +type encodingBuilder struct{} + +// NewEncodingBuilder creates an EncodingBuilder with TiDB backend implementation. +func NewEncodingBuilder() backend.EncodingBuilder { + return new(encodingBuilder) +} + +// NewEncoder creates a KV encoder. +// It implements the `backend.EncodingBuilder` interface. +func (b *encodingBuilder) NewEncoder(ctx context.Context, tbl table.Table, options *kv.SessionOptions) (kv.Encoder, error) { + se := kv.NewSession(options, log.FromContext(ctx)) + if options.SQLMode.HasStrictMode() { + se.GetSessionVars().SkipUTF8Check = false + se.GetSessionVars().SkipASCIICheck = false + } + + return &tidbEncoder{mode: options.SQLMode, tbl: tbl, se: se}, nil +} + +// MakeEmptyRows creates an empty KV rows. +// It implements the `backend.EncodingBuilder` interface. +func (b *encodingBuilder) MakeEmptyRows() kv.Rows { + return tidbRows(nil) +} + +type targetInfoGetter struct { + db *sql.DB +} + +// NewTargetInfoGetter creates an TargetInfoGetter with TiDB backend implementation. +func NewTargetInfoGetter(db *sql.DB) backend.TargetInfoGetter { + return &targetInfoGetter{ + db: db, + } +} + +// FetchRemoteTableModels obtains the models of all tables given the schema name. +// It implements the `backend.TargetInfoGetter` interface. +// TODO: refactor +func (b *targetInfoGetter) FetchRemoteTableModels(ctx context.Context, schemaName string) ([]*model.TableInfo, error) { + var err error + tables := []*model.TableInfo{} + s := common.SQLWithRetry{ + DB: b.db, + Logger: log.FromContext(ctx), + } + + err = s.Transact(ctx, "fetch table columns", func(c context.Context, tx *sql.Tx) error { + var versionStr string + if versionStr, err = version.FetchVersion(ctx, tx); err != nil { + return err + } + serverInfo := version.ParseServerInfo(versionStr) + + rows, e := tx.Query(` + SELECT table_name, column_name, column_type, generation_expression, extra + FROM information_schema.columns + WHERE table_schema = ? + ORDER BY table_name, ordinal_position; + `, schemaName) + if e != nil { + return e + } + defer rows.Close() + + var ( + curTableName string + curColOffset int + curTable *model.TableInfo + ) + for rows.Next() { + var tableName, columnName, columnType, generationExpr, columnExtra string + if e := rows.Scan(&tableName, &columnName, &columnType, &generationExpr, &columnExtra); e != nil { + return e + } + if tableName != curTableName { + curTable = &model.TableInfo{ + Name: model.NewCIStr(tableName), + State: model.StatePublic, + PKIsHandle: true, + } + tables = append(tables, curTable) + curTableName = tableName + curColOffset = 0 + } + + // see: https://github.com/pingcap/parser/blob/3b2fb4b41d73710bc6c4e1f4e8679d8be6a4863e/types/field_type.go#L185-L191 + var flag uint + if strings.HasSuffix(columnType, "unsigned") { + flag |= mysql.UnsignedFlag + } + if strings.Contains(columnExtra, "auto_increment") { + flag |= mysql.AutoIncrementFlag + } + + ft := types.FieldType{} + ft.SetFlag(flag) + curTable.Columns = append(curTable.Columns, &model.ColumnInfo{ + Name: model.NewCIStr(columnName), + Offset: curColOffset, + State: model.StatePublic, + FieldType: ft, + GeneratedExprString: generationExpr, + }) + curColOffset++ + } + if err := rows.Err(); err != nil { + return err + } + // shard_row_id/auto random is only available after tidb v4.0.0 + // `show table next_row_id` is also not available before tidb v4.0.0 + if serverInfo.ServerType != version.ServerTypeTiDB || serverInfo.ServerVersion.Major < 4 { + return nil + } + + // init auto id column for each table + for _, tbl := range tables { + tblName := common.UniqueTable(schemaName, tbl.Name.O) + autoIDInfos, err := FetchTableAutoIDInfos(ctx, tx, tblName) + if err != nil { + return errors.Trace(err) + } + for _, info := range autoIDInfos { + for _, col := range tbl.Columns { + if col.Name.O == info.Column { + switch info.Type { + case "AUTO_INCREMENT": + col.AddFlag(mysql.AutoIncrementFlag) + case "AUTO_RANDOM": + col.AddFlag(mysql.PriKeyFlag) + tbl.PKIsHandle = true + // set a stub here, since we don't really need the real value + tbl.AutoRandomBits = 1 + } + } + } + } + + } + return nil + }) + return tables, err +} + +// CheckRequirements performs the check whether the backend satisfies the version requirements. +// It implements the `backend.TargetInfoGetter` interface. +func (b *targetInfoGetter) CheckRequirements(ctx context.Context, _ *backend.CheckCtx) error { + log.FromContext(ctx).Info("skipping check requirements for tidb backend") + return nil +} + type tidbBackend struct { - db *sql.DB - onDuplicate string - errorMgr *errormanager.ErrorManager + db *sql.DB + onDuplicate string + errorMgr *errormanager.ErrorManager + encBuilder backend.EncodingBuilder + targetInfoGetter backend.TargetInfoGetter } // NewTiDBBackend creates a new TiDB backend using the given database. @@ -107,7 +260,13 @@ func NewTiDBBackend(ctx context.Context, db *sql.DB, onDuplicate string, errorMg log.FromContext(ctx).Warn("unsupported action on duplicate, overwrite with `replace`") onDuplicate = config.ReplaceOnDup } - return backend.MakeBackend(&tidbBackend{db: db, onDuplicate: onDuplicate, errorMgr: errorMgr}) + return backend.MakeBackend(&tidbBackend{ + db: db, + onDuplicate: onDuplicate, + errorMgr: errorMgr, + encBuilder: NewEncodingBuilder(), + targetInfoGetter: NewTargetInfoGetter(db), + }) } func (row tidbRow) Size() uint64 { @@ -375,7 +534,7 @@ func (be *tidbBackend) Close() { } func (be *tidbBackend) MakeEmptyRows() kv.Rows { - return tidbRows(nil) + return be.encBuilder.MakeEmptyRows() } func (be *tidbBackend) RetryImportDelay() time.Duration { @@ -394,18 +553,11 @@ func (be *tidbBackend) ShouldPostProcess() bool { } func (be *tidbBackend) CheckRequirements(ctx context.Context, _ *backend.CheckCtx) error { - log.FromContext(ctx).Info("skipping check requirements for tidb backend") - return nil + return be.targetInfoGetter.CheckRequirements(ctx, nil) } func (be *tidbBackend) NewEncoder(ctx context.Context, tbl table.Table, options *kv.SessionOptions) (kv.Encoder, error) { - se := kv.NewSession(options, log.FromContext(ctx)) - if options.SQLMode.HasStrictMode() { - se.GetSessionVars().SkipUTF8Check = false - se.GetSessionVars().SkipASCIICheck = false - } - - return &tidbEncoder{mode: options.SQLMode, tbl: tbl, se: se}, nil + return be.encBuilder.NewEncoder(ctx, tbl, options) } func (be *tidbBackend) OpenEngine(context.Context, *backend.EngineConfig, uuid.UUID) error { @@ -583,108 +735,8 @@ func (be *tidbBackend) execStmts(ctx context.Context, stmtTasks []stmtTask, tabl return nil } -//nolint:nakedret // TODO: refactor -func (be *tidbBackend) FetchRemoteTableModels(ctx context.Context, schemaName string) (tables []*model.TableInfo, err error) { - s := common.SQLWithRetry{ - DB: be.db, - Logger: log.FromContext(ctx), - } - - err = s.Transact(ctx, "fetch table columns", func(c context.Context, tx *sql.Tx) error { - var versionStr string - if versionStr, err = version.FetchVersion(ctx, tx); err != nil { - return err - } - serverInfo := version.ParseServerInfo(versionStr) - - rows, e := tx.Query(` - SELECT table_name, column_name, column_type, generation_expression, extra - FROM information_schema.columns - WHERE table_schema = ? - ORDER BY table_name, ordinal_position; - `, schemaName) - if e != nil { - return e - } - defer rows.Close() - - var ( - curTableName string - curColOffset int - curTable *model.TableInfo - ) - for rows.Next() { - var tableName, columnName, columnType, generationExpr, columnExtra string - if e := rows.Scan(&tableName, &columnName, &columnType, &generationExpr, &columnExtra); e != nil { - return e - } - if tableName != curTableName { - curTable = &model.TableInfo{ - Name: model.NewCIStr(tableName), - State: model.StatePublic, - PKIsHandle: true, - } - tables = append(tables, curTable) - curTableName = tableName - curColOffset = 0 - } - - // see: https://github.com/pingcap/parser/blob/3b2fb4b41d73710bc6c4e1f4e8679d8be6a4863e/types/field_type.go#L185-L191 - var flag uint - if strings.HasSuffix(columnType, "unsigned") { - flag |= mysql.UnsignedFlag - } - if strings.Contains(columnExtra, "auto_increment") { - flag |= mysql.AutoIncrementFlag - } - - ft := types.FieldType{} - ft.SetFlag(flag) - curTable.Columns = append(curTable.Columns, &model.ColumnInfo{ - Name: model.NewCIStr(columnName), - Offset: curColOffset, - State: model.StatePublic, - FieldType: ft, - GeneratedExprString: generationExpr, - }) - curColOffset++ - } - if err := rows.Err(); err != nil { - return err - } - // shard_row_id/auto random is only available after tidb v4.0.0 - // `show table next_row_id` is also not available before tidb v4.0.0 - if serverInfo.ServerType != version.ServerTypeTiDB || serverInfo.ServerVersion.Major < 4 { - return nil - } - - // init auto id column for each table - for _, tbl := range tables { - tblName := common.UniqueTable(schemaName, tbl.Name.O) - autoIDInfos, err := FetchTableAutoIDInfos(ctx, tx, tblName) - if err != nil { - return errors.Trace(err) - } - for _, info := range autoIDInfos { - for _, col := range tbl.Columns { - if col.Name.O == info.Column { - switch info.Type { - case "AUTO_INCREMENT": - col.AddFlag(mysql.AutoIncrementFlag) - case "AUTO_RANDOM": - col.AddFlag(mysql.PriKeyFlag) - tbl.PKIsHandle = true - // set a stub here, since we don't really need the real value - tbl.AutoRandomBits = 1 - } - } - } - } - - } - return nil - }) - return +func (be *tidbBackend) FetchRemoteTableModels(ctx context.Context, schemaName string) ([]*model.TableInfo, error) { + return be.targetInfoGetter.FetchRemoteTableModels(ctx, schemaName) } func (be *tidbBackend) EngineFileSizes() []backend.EngineFileSize { diff --git a/br/pkg/lightning/checkpoints/BUILD.bazel b/br/pkg/lightning/checkpoints/BUILD.bazel index 35d6b216b7d49..ceac0f75b8aaa 100644 --- a/br/pkg/lightning/checkpoints/BUILD.bazel +++ b/br/pkg/lightning/checkpoints/BUILD.bazel @@ -40,6 +40,7 @@ go_test( "main_test.go", ], embed = [":checkpoints"], + flaky = True, deps = [ "//br/pkg/lightning/checkpoints/checkpointspb", "//br/pkg/lightning/config", diff --git a/br/pkg/lightning/common/BUILD.bazel b/br/pkg/lightning/common/BUILD.bazel index c64a3fdf85654..66921cd4e1f14 100644 --- a/br/pkg/lightning/common/BUILD.bazel +++ b/br/pkg/lightning/common/BUILD.bazel @@ -50,6 +50,7 @@ go_test( "util_test.go", ], embed = [":common"], + flaky = True, deps = [ "//br/pkg/errors", "//br/pkg/lightning/log", diff --git a/br/pkg/lightning/config/BUILD.bazel b/br/pkg/lightning/config/BUILD.bazel index 04e5e38403b2b..71393ea9546bb 100644 --- a/br/pkg/lightning/config/BUILD.bazel +++ b/br/pkg/lightning/config/BUILD.bazel @@ -36,6 +36,7 @@ go_test( "config_test.go", "configlist_test.go", ], + flaky = True, deps = [ ":config", "//parser/mysql", diff --git a/br/pkg/lightning/errormanager/BUILD.bazel b/br/pkg/lightning/errormanager/BUILD.bazel index 7aea8447865e8..5fcc8f47ea3f1 100644 --- a/br/pkg/lightning/errormanager/BUILD.bazel +++ b/br/pkg/lightning/errormanager/BUILD.bazel @@ -24,6 +24,7 @@ go_test( name = "errormanager_test", srcs = ["errormanager_test.go"], embed = [":errormanager"], + flaky = True, deps = [ "//br/pkg/lightning/config", "//br/pkg/lightning/log", diff --git a/br/pkg/lightning/lightning.go b/br/pkg/lightning/lightning.go index 0b48b5b4e3e81..4138623830bba 100644 --- a/br/pkg/lightning/lightning.go +++ b/br/pkg/lightning/lightning.go @@ -664,7 +664,8 @@ func (l *Lightning) handlePostTask(w http.ResponseWriter, req *http.Request) { writeJSONError(w, http.StatusBadRequest, "cannot read request", err) return } - log.L().Info("received task config", zap.ByteString("content", data)) + filteredData := utils.HideSensitive(string(data)) + log.L().Info("received task config", zap.String("content", filteredData)) cfg := config.NewConfig() if err = cfg.LoadFromGlobal(l.globalCfg); err != nil { diff --git a/br/pkg/lightning/log/BUILD.bazel b/br/pkg/lightning/log/BUILD.bazel index 3e3865487f3e0..a076f60c110ed 100644 --- a/br/pkg/lightning/log/BUILD.bazel +++ b/br/pkg/lightning/log/BUILD.bazel @@ -27,6 +27,7 @@ go_test( "filter_test.go", "log_test.go", ], + flaky = True, importpath = "github.com/pingcap/tidb/br/pkg/lightning/log_test", deps = [ ":log", diff --git a/br/pkg/lightning/log/log.go b/br/pkg/lightning/log/log.go index 2dab04f925182..d3ce1fcd4ff6c 100644 --- a/br/pkg/lightning/log/log.go +++ b/br/pkg/lightning/log/log.go @@ -47,6 +47,7 @@ type Config struct { FileMaxBackups int `toml:"max-backups" json:"max-backups"` } +// Adjust adjusts some fields in the config to a proper value. func (cfg *Config) Adjust() { if len(cfg.Level) == 0 { cfg.Level = defaultLogLevel @@ -75,7 +76,7 @@ var ( ) // InitLogger initializes Lightning's and also the TiDB library's loggers. -func InitLogger(cfg *Config, tidbLoglevel string) error { +func InitLogger(cfg *Config, _ string) error { tidbLogCfg := logutil.LogConfig{} // Disable annoying TiDB Log. // TODO: some error logs outputs randomly, we need to fix them in TiDB. diff --git a/br/pkg/lightning/metric/BUILD.bazel b/br/pkg/lightning/metric/BUILD.bazel index 1806c74efd06e..25ea7ae26ca86 100644 --- a/br/pkg/lightning/metric/BUILD.bazel +++ b/br/pkg/lightning/metric/BUILD.bazel @@ -15,6 +15,7 @@ go_library( go_test( name = "metric_test", srcs = ["metric_test.go"], + flaky = True, deps = [ ":metric", "//util/promutil", diff --git a/br/pkg/lightning/mydump/BUILD.bazel b/br/pkg/lightning/mydump/BUILD.bazel index 1736f87af679f..3938d0c6ddf3f 100644 --- a/br/pkg/lightning/mydump/BUILD.bazel +++ b/br/pkg/lightning/mydump/BUILD.bazel @@ -59,6 +59,7 @@ go_test( "examples/*", ]), embed = [":mydump"], + flaky = True, deps = [ "//br/pkg/lightning/config", "//br/pkg/lightning/log", diff --git a/br/pkg/lightning/mydump/loader.go b/br/pkg/lightning/mydump/loader.go index 40091c61b2d03..a16ad88de76c2 100644 --- a/br/pkg/lightning/mydump/loader.go +++ b/br/pkg/lightning/mydump/loader.go @@ -38,6 +38,13 @@ type MDDatabaseMeta struct { charSet string } +// NewMDDatabaseMeta creates an Mydumper database meta with specified character set. +func NewMDDatabaseMeta(charSet string) *MDDatabaseMeta { + return &MDDatabaseMeta{ + charSet: charSet, + } +} + func (m *MDDatabaseMeta) GetSchema(ctx context.Context, store storage.ExternalStorage) string { if m.SchemaFile.FileMeta.Path != "" { schema, err := ExportStatement(ctx, store, m.SchemaFile, m.charSet) @@ -73,6 +80,13 @@ type SourceFileMeta struct { FileSize int64 } +// NewMDTableMeta creates an Mydumper table meta with specified character set. +func NewMDTableMeta(charSet string) *MDTableMeta { + return &MDTableMeta{ + charSet: charSet, + } +} + func (m *MDTableMeta) GetSchema(ctx context.Context, store storage.ExternalStorage) (string, error) { schema, err := ExportStatement(ctx, store, m.SchemaFile, m.charSet) if err != nil { diff --git a/br/pkg/lightning/restore/BUILD.bazel b/br/pkg/lightning/restore/BUILD.bazel index 3586907693301..04d242e42131d 100644 --- a/br/pkg/lightning/restore/BUILD.bazel +++ b/br/pkg/lightning/restore/BUILD.bazel @@ -6,6 +6,7 @@ go_library( "check_info.go", "check_template.go", "checksum.go", + "get_pre_info.go", "meta_manager.go", "restore.go", "table_restore.go", @@ -38,6 +39,7 @@ go_library( "//br/pkg/utils", "//br/pkg/version", "//br/pkg/version/build", + "//ddl", "//kv", "//meta/autoid", "//parser", @@ -45,13 +47,16 @@ go_library( "//parser/format", "//parser/model", "//parser/mysql", + "//planner/core", "//store/driver", "//store/pdtypes", "//table", "//table/tables", "//types", "//util/collate", + "//util/engine", "//util/mathutil", + "//util/mock", "@com_github_coreos_go_semver//semver", "@com_github_docker_go_units//:go-units", "@com_github_google_uuid//:uuid", @@ -79,6 +84,7 @@ go_test( "check_info_test.go", "checksum_test.go", "chunk_restore_test.go", + "get_pre_info_test.go", "meta_manager_test.go", "restore_schema_test.go", "restore_test.go", @@ -86,6 +92,7 @@ go_test( "tidb_test.go", ], embed = [":restore"], + flaky = True, deps = [ "//br/pkg/lightning/backend", "//br/pkg/lightning/backend/kv", @@ -99,6 +106,7 @@ go_test( "//br/pkg/lightning/log", "//br/pkg/lightning/metric", "//br/pkg/lightning/mydump", + "//br/pkg/lightning/restore/mock", "//br/pkg/lightning/verification", "//br/pkg/lightning/web", "//br/pkg/lightning/worker", diff --git a/br/pkg/lightning/restore/check_info.go b/br/pkg/lightning/restore/check_info.go index 2be105a157fac..7f181bb7755c3 100644 --- a/br/pkg/lightning/restore/check_info.go +++ b/br/pkg/lightning/restore/check_info.go @@ -15,11 +15,8 @@ package restore import ( - "bytes" "context" - "database/sql" "fmt" - "io" "path/filepath" "reflect" "strconv" @@ -28,25 +25,20 @@ import ( "github.com/docker/go-units" "github.com/pingcap/errors" - "github.com/pingcap/failpoint" "github.com/pingcap/kvproto/pkg/metapb" - "github.com/pingcap/tidb/br/pkg/lightning/backend" "github.com/pingcap/tidb/br/pkg/lightning/backend/kv" "github.com/pingcap/tidb/br/pkg/lightning/checkpoints" "github.com/pingcap/tidb/br/pkg/lightning/common" "github.com/pingcap/tidb/br/pkg/lightning/config" - "github.com/pingcap/tidb/br/pkg/lightning/errormanager" "github.com/pingcap/tidb/br/pkg/lightning/log" "github.com/pingcap/tidb/br/pkg/lightning/mydump" - "github.com/pingcap/tidb/br/pkg/lightning/verification" "github.com/pingcap/tidb/br/pkg/storage" - "github.com/pingcap/tidb/br/pkg/utils" "github.com/pingcap/tidb/parser/model" "github.com/pingcap/tidb/parser/mysql" "github.com/pingcap/tidb/store/pdtypes" "github.com/pingcap/tidb/table" - "github.com/pingcap/tidb/table/tables" "github.com/pingcap/tidb/types" + "github.com/pingcap/tidb/util/engine" "github.com/pingcap/tidb/util/mathutil" "go.uber.org/zap" "golang.org/x/exp/slices" @@ -76,21 +68,20 @@ func (rc *Controller) isSourceInLocal() bool { } func (rc *Controller) getReplicaCount(ctx context.Context) (uint64, error) { - result := &pdtypes.ReplicationConfig{} - err := rc.tls.WithHost(rc.cfg.TiDB.PdAddr).GetJSON(ctx, pdReplicate, &result) + replConfig, err := rc.preInfoGetter.GetReplicationConfig(ctx) if err != nil { return 0, errors.Trace(err) } - return result.MaxReplicas, nil + return replConfig.MaxReplicas, nil } func (rc *Controller) getClusterAvail(ctx context.Context) (uint64, error) { - result := &pdtypes.StoresInfo{} - if err := rc.tls.WithHost(rc.cfg.TiDB.PdAddr).GetJSON(ctx, pdStores, result); err != nil { + storeInfo, err := rc.preInfoGetter.GetStorageInfo(ctx) + if err != nil { return 0, errors.Trace(err) } clusterAvail := uint64(0) - for _, store := range result.Stores { + for _, store := range storeInfo.Stores { clusterAvail += uint64(store.Status.Available) } return clusterAvail, nil @@ -171,47 +162,38 @@ func (rc *Controller) ClusterIsAvailable(ctx context.Context) { defer func() { rc.checkTemplate.Collect(Critical, passed, message) }() - checkCtx := &backend.CheckCtx{ - DBMetas: rc.dbMetas, - } - if err := rc.backend.CheckRequirements(ctx, checkCtx); err != nil { + checkCtx := WithPreInfoGetterDBMetas(ctx, rc.dbMetas) + if err := rc.preInfoGetter.CheckVersionRequirements(checkCtx); err != nil { err = common.NormalizeError(err) passed = false message = fmt.Sprintf("cluster available check failed: %s", err.Error()) } } -func isTiFlash(store *pdtypes.MetaStore) bool { - for _, label := range store.Labels { - if label.Key == "engine" && label.Value == "tiflash" { - return true - } - } - return false -} - func (rc *Controller) checkEmptyRegion(ctx context.Context) error { passed := true message := "Cluster doesn't have too many empty regions" defer func() { rc.checkTemplate.Collect(Critical, passed, message) }() - storeInfo := &pdtypes.StoresInfo{} - err := rc.tls.WithHost(rc.cfg.TiDB.PdAddr).GetJSON(ctx, pdStores, storeInfo) + dbInfos, err := rc.preInfoGetter.GetAllTableStructures(ctx) + if err != nil { + return errors.Trace(err) + } + storeInfo, err := rc.preInfoGetter.GetStorageInfo(ctx) if err != nil { return errors.Trace(err) } if len(storeInfo.Stores) <= 1 { return nil } - - var result pdtypes.RegionsInfo - if err := rc.tls.WithHost(rc.cfg.TiDB.PdAddr).GetJSON(ctx, pdEmptyRegions, &result); err != nil { + emptyRegionsInfo, err := rc.preInfoGetter.GetEmptyRegionsInfo(ctx) + if err != nil { return errors.Trace(err) } regions := make(map[uint64]int) stores := make(map[uint64]*pdtypes.StoreInfo) - for _, region := range result.Regions { + for _, region := range emptyRegionsInfo.Regions { for _, peer := range region.Peers { regions[peer.StoreId]++ } @@ -221,7 +203,7 @@ func (rc *Controller) checkEmptyRegion(ctx context.Context) error { } tableCount := 0 for _, db := range rc.dbMetas { - info, ok := rc.dbInfos[db.Name] + info, ok := dbInfos[db.Name] if !ok { continue } @@ -238,7 +220,7 @@ func (rc *Controller) checkEmptyRegion(ctx context.Context) error { if metapb.StoreState(metapb.StoreState_value[store.Store.StateName]) != metapb.StoreState_Up { continue } - if isTiFlash(store.Store) { + if engine.IsTiFlash(store.Store.Store) { continue } if regionCnt > errorThrehold { @@ -273,17 +255,16 @@ func (rc *Controller) checkRegionDistribution(ctx context.Context) error { rc.checkTemplate.Collect(Critical, passed, message) }() - result := &pdtypes.StoresInfo{} - err := rc.tls.WithHost(rc.cfg.TiDB.PdAddr).GetJSON(ctx, pdStores, result) + storesInfo, err := rc.preInfoGetter.GetStorageInfo(ctx) if err != nil { return errors.Trace(err) } - stores := make([]*pdtypes.StoreInfo, 0, len(result.Stores)) - for _, store := range result.Stores { + stores := make([]*pdtypes.StoreInfo, 0, len(storesInfo.Stores)) + for _, store := range storesInfo.Stores { if metapb.StoreState(metapb.StoreState_value[store.Store.StateName]) != metapb.StoreState_Up { continue } - if isTiFlash(store.Store) { + if engine.IsTiFlash(store.Store.Store) { continue } stores = append(stores, store) @@ -296,9 +277,14 @@ func (rc *Controller) checkRegionDistribution(ctx context.Context) error { }) minStore := stores[0] maxStore := stores[len(stores)-1] + + dbInfos, err := rc.preInfoGetter.GetAllTableStructures(ctx) + if err != nil { + return errors.Trace(err) + } tableCount := 0 for _, db := range rc.dbMetas { - info, ok := rc.dbInfos[db.Name] + info, ok := dbInfos[db.Name] if !ok { continue } @@ -396,62 +382,12 @@ func (rc *Controller) HasLargeCSV(dbMetas []*mydump.MDDatabaseMeta) { } } -func (rc *Controller) estimateSourceData(ctx context.Context) (int64, error) { - sourceSize := int64(0) - originSource := int64(0) - bigTableCount := 0 - tableCount := 0 - unSortedTableCount := 0 - errMgr := errormanager.New(nil, rc.cfg, log.FromContext(ctx)) - for _, db := range rc.dbMetas { - info, ok := rc.dbInfos[db.Name] - if !ok { - continue - } - for _, tbl := range db.Tables { - originSource += tbl.TotalSize - tableInfo, ok := info.Tables[tbl.Name] - if ok { - // Do not sample small table because there may a large number of small table and it will take a long - // time to sample data for all of them. - if rc.cfg.TikvImporter.Backend == config.BackendTiDB || tbl.TotalSize < int64(config.SplitRegionSize) { - sourceSize += tbl.TotalSize - tbl.IndexRatio = 1.0 - tbl.IsRowOrdered = false - } else { - if err := rc.sampleDataFromTable(ctx, db.Name, tbl, tableInfo.Core, errMgr); err != nil { - return sourceSize, errors.Trace(err) - } - - if tbl.IndexRatio > 0 { - sourceSize += int64(float64(tbl.TotalSize) * tbl.IndexRatio) - } else { - // if sample data failed due to max-error, fallback to use source size - sourceSize += tbl.TotalSize - } - - if tbl.TotalSize > int64(config.DefaultBatchSize)*2 { - bigTableCount += 1 - if !tbl.IsRowOrdered { - unSortedTableCount += 1 - } - } - } - tableCount += 1 - } - } - } - - if rc.status != nil { - rc.status.TotalFileSize.Store(originSource) - } - // Do not import with too large concurrency because these data may be all unsorted. - if bigTableCount > 0 && unSortedTableCount > 0 { - if rc.cfg.App.TableConcurrency > rc.cfg.App.IndexConcurrency { - rc.cfg.App.TableConcurrency = rc.cfg.App.IndexConcurrency - } +func (rc *Controller) estimateSourceData(ctx context.Context) (int64, int64, bool, error) { + result, err := rc.preInfoGetter.EstimateSourceDataSize(ctx) + if err != nil { + return 0, 0, false, errors.Trace(err) } - return sourceSize, nil + return result.SizeWithIndex, result.SizeWithoutIndex, result.HasUnsortedBigTables, nil } // localResource checks the local node has enough resources for this import when local backend enabled; @@ -540,7 +476,8 @@ func (rc *Controller) CheckpointIsValid(ctx context.Context, tableInfo *mydump.M return msgs, false } - dbInfo, ok := rc.dbInfos[tableInfo.DB] + dbInfos, _ := rc.preInfoGetter.GetAllTableStructures(ctx) + dbInfo, ok := dbInfos[tableInfo.DB] if ok { t, ok := dbInfo.Tables[tableInfo.Name] if ok { @@ -573,7 +510,7 @@ func (rc *Controller) CheckpointIsValid(ctx context.Context, tableInfo *mydump.M log.FromContext(ctx).Debug("no valid checkpoint detected", zap.String("table", uniqueName)) return nil, false } - info := rc.dbInfos[tableInfo.DB].Tables[tableInfo.Name] + info := dbInfos[tableInfo.DB].Tables[tableInfo.Name] if info != nil { permFromTiDB, err := parseColumnPermutations(info.Core, columns, nil, log.FromContext(ctx)) if err != nil { @@ -595,48 +532,15 @@ func hasDefault(col *model.ColumnInfo) bool { } func (rc *Controller) readFirstRow(ctx context.Context, dataFileMeta mydump.SourceFileMeta) (cols []string, row []types.Datum, err error) { - var reader storage.ReadSeekCloser - if dataFileMeta.Type == mydump.SourceTypeParquet { - reader, err = mydump.OpenParquetReader(ctx, rc.store, dataFileMeta.Path, dataFileMeta.FileSize) - } else { - reader, err = rc.store.Open(ctx, dataFileMeta.Path) - } + cols, rows, err := rc.preInfoGetter.ReadFirstNRowsByFileMeta(ctx, dataFileMeta, 1) if err != nil { - return nil, nil, errors.Trace(err) - } - - var parser mydump.Parser - blockBufSize := int64(rc.cfg.Mydumper.ReadBlockSize) - switch dataFileMeta.Type { - case mydump.SourceTypeCSV: - hasHeader := rc.cfg.Mydumper.CSV.Header - // Create a utf8mb4 convertor to encode and decode data with the charset of CSV files. - charsetConvertor, err := mydump.NewCharsetConvertor(rc.cfg.Mydumper.DataCharacterSet, rc.cfg.Mydumper.DataInvalidCharReplace) - if err != nil { - return nil, nil, errors.Trace(err) - } - parser, err = mydump.NewCSVParser(ctx, &rc.cfg.Mydumper.CSV, reader, blockBufSize, rc.ioWorkers, hasHeader, charsetConvertor) - if err != nil { - return nil, nil, errors.Trace(err) - } - case mydump.SourceTypeSQL: - parser = mydump.NewChunkParser(ctx, rc.cfg.TiDB.SQLMode, reader, blockBufSize, rc.ioWorkers) - case mydump.SourceTypeParquet: - parser, err = mydump.NewParquetParser(ctx, rc.store, reader, dataFileMeta.Path) - if err != nil { - return nil, nil, errors.Trace(err) - } - default: - panic(fmt.Sprintf("unknown file type '%s'", dataFileMeta.Type)) + return nil, nil, err } - //nolint: errcheck - defer parser.Close() - - err = parser.ReadRow() - if err != nil && errors.Cause(err) != io.EOF { - return nil, nil, errors.Trace(err) + if len(rows) > 0 { + return cols, rows[0], nil + } else { + return cols, []types.Datum{}, nil } - return parser.Columns(), parser.LastRow().Row, nil } // SchemaIsValid checks the import file and cluster schema is match. @@ -647,7 +551,11 @@ func (rc *Controller) SchemaIsValid(ctx context.Context, tableInfo *mydump.MDTab } msgs := make([]string, 0) - info, ok := rc.dbInfos[tableInfo.DB].Tables[tableInfo.Name] + dbInfos, err := rc.preInfoGetter.GetAllTableStructures(ctx) + if err != nil { + return nil, errors.Trace(err) + } + info, ok := dbInfos[tableInfo.DB].Tables[tableInfo.Name] if !ok { msgs = append(msgs, fmt.Sprintf("TiDB schema `%s`.`%s` doesn't exists,"+ "please give a schema file in source dir or create table manually", tableInfo.DB, tableInfo.Name)) @@ -770,6 +678,10 @@ func (rc *Controller) checkCSVHeader(ctx context.Context, dbMetas []*mydump.MDDa csvCount int hasUniqueIdx bool ) + dbInfos, err := rc.preInfoGetter.GetAllTableStructures(ctx) + if err != nil { + return errors.Trace(err) + } // only check one table source files for better performance. The checked table is chosen based on following two factor: // 1. contains at least 1 csv source file, 2 is preferable // 2. table schema contains primary key or unique key @@ -794,7 +706,7 @@ outer: continue } - info := rc.dbInfos[tblMeta.DB].Tables[tblMeta.Name] + info := dbInfos[tblMeta.DB].Tables[tblMeta.Name] for _, idx := range info.Core.Indices { if idx.Primary || idx.Unique { tableHasUniqueIdx = true @@ -855,7 +767,7 @@ outer: // check if some fields are unique and not ignored // if at least one field appears in a unique key, we can sure there is something wrong, // they should be either the header line or the data is duplicated. - tableInfo := rc.dbInfos[tableMeta.DB].Tables[tableMeta.Name] + tableInfo := dbInfos[tableMeta.DB].Tables[tableMeta.Name] tableFields := make(map[string]struct{}) uniqueIdxFields := make(map[string]struct{}) ignoreColumns, err := rc.cfg.Mydumper.IgnoreColumns.GetIgnoreColumns(tableMeta.DB, tableMeta.Name, rc.cfg.Mydumper.CaseSensitive) @@ -936,166 +848,10 @@ func checkFieldCompatibility( return true } -func (rc *Controller) sampleDataFromTable( - ctx context.Context, - dbName string, - tableMeta *mydump.MDTableMeta, - tableInfo *model.TableInfo, - errMgr *errormanager.ErrorManager, -) error { - if len(tableMeta.DataFiles) == 0 { - return nil - } - sampleFile := tableMeta.DataFiles[0].FileMeta - var reader storage.ReadSeekCloser - var err error - if sampleFile.Type == mydump.SourceTypeParquet { - reader, err = mydump.OpenParquetReader(ctx, rc.store, sampleFile.Path, sampleFile.FileSize) - } else { - reader, err = rc.store.Open(ctx, sampleFile.Path) - } - if err != nil { - return errors.Trace(err) - } - idAlloc := kv.NewPanickingAllocators(0) - tbl, err := tables.TableFromMeta(idAlloc, tableInfo) - if err != nil { - return errors.Trace(err) - } - kvEncoder, err := rc.backend.NewEncoder(ctx, tbl, &kv.SessionOptions{ - SQLMode: rc.cfg.TiDB.SQLMode, - Timestamp: 0, - SysVars: rc.sysVars, - AutoRandomSeed: 0, - }) - if err != nil { - return errors.Trace(err) - } - blockBufSize := int64(rc.cfg.Mydumper.ReadBlockSize) - - var parser mydump.Parser - switch tableMeta.DataFiles[0].FileMeta.Type { - case mydump.SourceTypeCSV: - hasHeader := rc.cfg.Mydumper.CSV.Header - // Create a utf8mb4 convertor to encode and decode data with the charset of CSV files. - charsetConvertor, err := mydump.NewCharsetConvertor(rc.cfg.Mydumper.DataCharacterSet, rc.cfg.Mydumper.DataInvalidCharReplace) - if err != nil { - return errors.Trace(err) - } - parser, err = mydump.NewCSVParser(ctx, &rc.cfg.Mydumper.CSV, reader, blockBufSize, rc.ioWorkers, hasHeader, charsetConvertor) - if err != nil { - return errors.Trace(err) - } - case mydump.SourceTypeSQL: - parser = mydump.NewChunkParser(ctx, rc.cfg.TiDB.SQLMode, reader, blockBufSize, rc.ioWorkers) - case mydump.SourceTypeParquet: - parser, err = mydump.NewParquetParser(ctx, rc.store, reader, sampleFile.Path) - if err != nil { - return errors.Trace(err) - } - default: - panic(fmt.Sprintf("file '%s' with unknown source type '%s'", sampleFile.Path, sampleFile.Type.String())) - } - //nolint: errcheck - defer parser.Close() - logTask := log.FromContext(ctx).With(zap.String("table", tableMeta.Name)).Begin(zap.InfoLevel, "sample file") - igCols, err := rc.cfg.Mydumper.IgnoreColumns.GetIgnoreColumns(dbName, tableMeta.Name, rc.cfg.Mydumper.CaseSensitive) - if err != nil { - return errors.Trace(err) - } - - initializedColumns := false - var columnPermutation []int - var kvSize uint64 = 0 - var rowSize uint64 = 0 - rowCount := 0 - dataKVs := rc.backend.MakeEmptyRows() - indexKVs := rc.backend.MakeEmptyRows() - lastKey := make([]byte, 0) - tableMeta.IsRowOrdered = true - tableMeta.IndexRatio = 1.0 -outloop: - for { - offset, _ := parser.Pos() - err = parser.ReadRow() - columnNames := parser.Columns() - - switch errors.Cause(err) { - case nil: - if !initializedColumns { - if len(columnPermutation) == 0 { - columnPermutation, err = createColumnPermutation( - columnNames, - igCols.ColumnsMap(), - tableInfo, - log.FromContext(ctx)) - if err != nil { - return errors.Trace(err) - } - } - initializedColumns = true - } - case io.EOF: - break outloop - default: - err = errors.Annotatef(err, "in file offset %d", offset) - return errors.Trace(err) - } - lastRow := parser.LastRow() - rowCount += 1 - - var dataChecksum, indexChecksum verification.KVChecksum - kvs, encodeErr := kvEncoder.Encode(logTask.Logger, lastRow.Row, lastRow.RowID, columnPermutation, sampleFile.Path, offset) - if encodeErr != nil { - encodeErr = errMgr.RecordTypeError(ctx, log.FromContext(ctx), tableInfo.Name.O, sampleFile.Path, offset, - "" /* use a empty string here because we don't actually record */, encodeErr) - if encodeErr != nil { - return errors.Annotatef(encodeErr, "in file at offset %d", offset) - } - if rowCount < maxSampleRowCount { - continue - } else { - break - } - } - if tableMeta.IsRowOrdered { - kvs.ClassifyAndAppend(&dataKVs, &dataChecksum, &indexKVs, &indexChecksum) - for _, kv := range kv.KvPairsFromRows(dataKVs) { - if len(lastKey) == 0 { - lastKey = kv.Key - } else if bytes.Compare(lastKey, kv.Key) > 0 { - tableMeta.IsRowOrdered = false - break - } - } - dataKVs = dataKVs.Clear() - indexKVs = indexKVs.Clear() - } - kvSize += kvs.Size() - rowSize += uint64(lastRow.Length) - parser.RecycleRow(lastRow) - - failpoint.Inject("mock-kv-size", func(val failpoint.Value) { - kvSize += uint64(val.(int)) - }) - if rowSize > maxSampleDataSize || rowCount > maxSampleRowCount { - break - } - } - - if rowSize > 0 && kvSize > rowSize { - tableMeta.IndexRatio = float64(kvSize) / float64(rowSize) - } - log.FromContext(ctx).Info("Sample source data", zap.String("table", tableMeta.Name), zap.Float64("IndexRatio", tableMeta.IndexRatio), zap.Bool("IsSourceOrder", tableMeta.IsRowOrdered)) - return nil -} - func (rc *Controller) checkTableEmpty(ctx context.Context) error { if rc.cfg.TikvImporter.Backend == config.BackendTiDB || rc.cfg.TikvImporter.IncrementalImport { return nil } - db, _ := rc.tidbGlue.GetDB() - tableCount := 0 for _, db := range rc.dbMetas { tableCount += len(db.Tables) @@ -1104,15 +860,20 @@ func (rc *Controller) checkTableEmpty(ctx context.Context) error { var lock sync.Mutex tableNames := make([]string, 0) concurrency := mathutil.Min(tableCount, rc.cfg.App.RegionConcurrency) - ch := make(chan string, concurrency) + type tableNameComponents struct { + DBName string + TableName string + } + ch := make(chan tableNameComponents, concurrency) eg, gCtx := errgroup.WithContext(ctx) for i := 0; i < concurrency; i++ { eg.Go(func() error { - for tblName := range ch { + for tblNameComp := range ch { + fullTableName := common.UniqueTable(tblNameComp.DBName, tblNameComp.TableName) // skip tables that have checkpoint if rc.cfg.Checkpoint.Enable { - _, err := rc.checkpointsDB.Get(gCtx, tblName) + _, err := rc.checkpointsDB.Get(gCtx, fullTableName) switch { case err == nil: continue @@ -1122,13 +883,13 @@ func (rc *Controller) checkTableEmpty(ctx context.Context) error { } } - hasData, err1 := tableContainsData(gCtx, db, tblName) + isEmptyPtr, err1 := rc.preInfoGetter.IsTableEmpty(gCtx, tblNameComp.DBName, tblNameComp.TableName) if err1 != nil { return err1 } - if hasData { + if !(*isEmptyPtr) { lock.Lock() - tableNames = append(tableNames, tblName) + tableNames = append(tableNames, fullTableName) lock.Unlock() } } @@ -1139,7 +900,7 @@ loop: for _, db := range rc.dbMetas { for _, tbl := range db.Tables { select { - case ch <- common.UniqueTable(tbl.DB, tbl.Name): + case ch <- tableNameComponents{tbl.DB, tbl.Name}: case <-gCtx.Done(): break loop } @@ -1162,25 +923,3 @@ loop: } return nil } - -func tableContainsData(ctx context.Context, db utils.DBExecutor, tableName string) (bool, error) { - failpoint.Inject("CheckTableEmptyFailed", func() { - failpoint.Return(false, errors.New("mock error")) - }) - query := "select 1 from " + tableName + " limit 1" - exec := common.SQLWithRetry{ - DB: db, - Logger: log.FromContext(ctx), - } - var dump int - err := exec.QueryRow(ctx, "check table empty", query, &dump) - - switch { - case errors.ErrorEqual(err, sql.ErrNoRows): - return false, nil - case err != nil: - return false, errors.Trace(err) - default: - return true, nil - } -} diff --git a/br/pkg/lightning/restore/check_info_test.go b/br/pkg/lightning/restore/check_info_test.go index abdfcf232f0a9..2da71e4c84b90 100644 --- a/br/pkg/lightning/restore/check_info_test.go +++ b/br/pkg/lightning/restore/check_info_test.go @@ -336,10 +336,18 @@ func TestCheckCSVHeader(t *testing.T) { }, }, } + + ioWorkers := worker.NewPool(context.Background(), 1, "io") + preInfoGetter := &PreRestoreInfoGetterImpl{ + cfg: cfg, + srcStorage: mockStore, + ioWorkers: ioWorkers, + } rc := &Controller{ - cfg: cfg, - store: mockStore, - ioWorkers: worker.NewPool(context.Background(), 1, "io"), + cfg: cfg, + store: mockStore, + ioWorkers: ioWorkers, + preInfoGetter: preInfoGetter, } p := parser.New() @@ -398,7 +406,7 @@ func TestCheckCSVHeader(t *testing.T) { }) } - err := rc.checkCSVHeader(ctx, dbMetas) + err := rc.checkCSVHeader(WithPreInfoGetterTableStructuresCache(ctx, rc.dbInfos), dbMetas) require.NoError(t, err) if ca.level != passed { require.Equal(t, 1, rc.checkTemplate.FailedCount(ca.level)) @@ -436,10 +444,20 @@ func TestCheckTableEmpty(t *testing.T) { }, } + targetInfoGetter := &TargetInfoGetterImpl{ + cfg: cfg, + } + preInfoGetter := &PreRestoreInfoGetterImpl{ + cfg: cfg, + dbMetas: dbMetas, + targetInfoGetter: targetInfoGetter, + } + rc := &Controller{ cfg: cfg, dbMetas: dbMetas, checkpointsDB: checkpoints.NewNullCheckpointsDB(), + preInfoGetter: preInfoGetter, } ctx := context.Background() @@ -459,12 +477,12 @@ func TestCheckTableEmpty(t *testing.T) { db, mock, err := sqlmock.New() require.NoError(t, err) mock.MatchExpectationsInOrder(false) - rc.tidbGlue = glue.NewExternalTiDBGlue(db, mysql.ModeNone) - mock.ExpectQuery("select 1 from `test1`.`tbl1` limit 1"). + targetInfoGetter.targetDBGlue = glue.NewExternalTiDBGlue(db, mysql.ModeNone) + mock.ExpectQuery("SELECT 1 FROM `test1`.`tbl1` LIMIT 1"). WillReturnRows(sqlmock.NewRows([]string{""}).RowError(0, sql.ErrNoRows)) - mock.ExpectQuery("select 1 from `test1`.`tbl2` limit 1"). + mock.ExpectQuery("SELECT 1 FROM `test1`.`tbl2` LIMIT 1"). WillReturnRows(sqlmock.NewRows([]string{""}).RowError(0, sql.ErrNoRows)) - mock.ExpectQuery("select 1 from `test2`.`tbl1` limit 1"). + mock.ExpectQuery("SELECT 1 FROM `test2`.`tbl1` LIMIT 1"). WillReturnRows(sqlmock.NewRows([]string{""}).RowError(0, sql.ErrNoRows)) // not error, need not to init check template err = rc.checkTableEmpty(ctx) @@ -474,16 +492,16 @@ func TestCheckTableEmpty(t *testing.T) { // single table contains data db, mock, err = sqlmock.New() require.NoError(t, err) - rc.tidbGlue = glue.NewExternalTiDBGlue(db, mysql.ModeNone) + targetInfoGetter.targetDBGlue = glue.NewExternalTiDBGlue(db, mysql.ModeNone) mock.MatchExpectationsInOrder(false) // test auto retry retryable error - mock.ExpectQuery("select 1 from `test1`.`tbl1` limit 1"). + mock.ExpectQuery("SELECT 1 FROM `test1`.`tbl1` LIMIT 1"). WillReturnError(&gmysql.MySQLError{Number: errno.ErrPDServerTimeout}) - mock.ExpectQuery("select 1 from `test1`.`tbl1` limit 1"). + mock.ExpectQuery("SELECT 1 FROM `test1`.`tbl1` LIMIT 1"). WillReturnRows(sqlmock.NewRows([]string{""}).RowError(0, sql.ErrNoRows)) - mock.ExpectQuery("select 1 from `test1`.`tbl2` limit 1"). + mock.ExpectQuery("SELECT 1 FROM `test1`.`tbl2` LIMIT 1"). WillReturnRows(sqlmock.NewRows([]string{""}).RowError(0, sql.ErrNoRows)) - mock.ExpectQuery("select 1 from `test2`.`tbl1` limit 1"). + mock.ExpectQuery("SELECT 1 FROM `test2`.`tbl1` LIMIT 1"). WillReturnRows(sqlmock.NewRows([]string{""}).AddRow(1)) rc.checkTemplate = NewSimpleTemplate() err = rc.checkTableEmpty(ctx) @@ -497,13 +515,13 @@ func TestCheckTableEmpty(t *testing.T) { // multi tables contains data db, mock, err = sqlmock.New() require.NoError(t, err) - rc.tidbGlue = glue.NewExternalTiDBGlue(db, mysql.ModeNone) + targetInfoGetter.targetDBGlue = glue.NewExternalTiDBGlue(db, mysql.ModeNone) mock.MatchExpectationsInOrder(false) - mock.ExpectQuery("select 1 from `test1`.`tbl1` limit 1"). + mock.ExpectQuery("SELECT 1 FROM `test1`.`tbl1` LIMIT 1"). WillReturnRows(sqlmock.NewRows([]string{""}).AddRow(1)) - mock.ExpectQuery("select 1 from `test1`.`tbl2` limit 1"). + mock.ExpectQuery("SELECT 1 FROM `test1`.`tbl2` LIMIT 1"). WillReturnRows(sqlmock.NewRows([]string{""}).RowError(0, sql.ErrNoRows)) - mock.ExpectQuery("select 1 from `test2`.`tbl1` limit 1"). + mock.ExpectQuery("SELECT 1 FROM `test2`.`tbl1` LIMIT 1"). WillReturnRows(sqlmock.NewRows([]string{""}).AddRow(1)) rc.checkTemplate = NewSimpleTemplate() err = rc.checkTableEmpty(ctx) @@ -540,9 +558,9 @@ func TestCheckTableEmpty(t *testing.T) { require.NoError(t, err) db, mock, err = sqlmock.New() require.NoError(t, err) - rc.tidbGlue = glue.NewExternalTiDBGlue(db, mysql.ModeNone) + targetInfoGetter.targetDBGlue = glue.NewExternalTiDBGlue(db, mysql.ModeNone) // only need to check the one that is not in checkpoint - mock.ExpectQuery("select 1 from `test1`.`tbl2` limit 1"). + mock.ExpectQuery("SELECT 1 FROM `test1`.`tbl2` LIMIT 1"). WillReturnRows(sqlmock.NewRows([]string{""}).RowError(0, sql.ErrNoRows)) err = rc.checkTableEmpty(ctx) require.NoError(t, err) diff --git a/br/pkg/lightning/restore/get_pre_info.go b/br/pkg/lightning/restore/get_pre_info.go new file mode 100644 index 0000000000000..f76792942caa9 --- /dev/null +++ b/br/pkg/lightning/restore/get_pre_info.go @@ -0,0 +1,807 @@ +// Copyright 2022 PingCAP, Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// See the License for the specific language governing permissions and +// limitations under the License. + +package restore + +import ( + "bytes" + "context" + "database/sql" + "fmt" + "io" + "strings" + + "github.com/pingcap/errors" + "github.com/pingcap/failpoint" + "github.com/pingcap/tidb/br/pkg/lightning/backend" + "github.com/pingcap/tidb/br/pkg/lightning/backend/kv" + "github.com/pingcap/tidb/br/pkg/lightning/backend/local" + "github.com/pingcap/tidb/br/pkg/lightning/backend/tidb" + "github.com/pingcap/tidb/br/pkg/lightning/checkpoints" + "github.com/pingcap/tidb/br/pkg/lightning/common" + "github.com/pingcap/tidb/br/pkg/lightning/config" + "github.com/pingcap/tidb/br/pkg/lightning/errormanager" + "github.com/pingcap/tidb/br/pkg/lightning/glue" + "github.com/pingcap/tidb/br/pkg/lightning/log" + "github.com/pingcap/tidb/br/pkg/lightning/mydump" + "github.com/pingcap/tidb/br/pkg/lightning/verification" + "github.com/pingcap/tidb/br/pkg/lightning/worker" + "github.com/pingcap/tidb/br/pkg/storage" + "github.com/pingcap/tidb/ddl" + "github.com/pingcap/tidb/meta/autoid" + "github.com/pingcap/tidb/parser" + "github.com/pingcap/tidb/parser/ast" + "github.com/pingcap/tidb/parser/model" + "github.com/pingcap/tidb/parser/mysql" + _ "github.com/pingcap/tidb/planner/core" // to setup expression.EvalAstExpr. Otherwise we cannot parse the default value + "github.com/pingcap/tidb/store/pdtypes" + "github.com/pingcap/tidb/table/tables" + "github.com/pingcap/tidb/types" + "github.com/pingcap/tidb/util/mock" + "go.uber.org/zap" + "golang.org/x/exp/maps" +) + +// EstimateSourceDataSizeResult is the object for estimated data size result. +type EstimateSourceDataSizeResult struct { + // SizeWithIndex is the size with the index. + SizeWithIndex int64 + // SizeWithoutIndex is the size without the index. + SizeWithoutIndex int64 + // HasUnsortedBigTables indicates whether the source data has unsorted big tables or not. + HasUnsortedBigTables bool +} + +// PreRestoreInfoGetter defines the operations to get information from sources and target. +// These information are used in the preparation of the import ( like precheck ). +type PreRestoreInfoGetter interface { + TargetInfoGetter + // GetAllTableStructures gets all the table structures with the information from both the source and the target. + GetAllTableStructures(ctx context.Context) (map[string]*checkpoints.TidbDBInfo, error) + // ReadFirstNRowsByTableName reads the first N rows of data of an importing source table. + ReadFirstNRowsByTableName(ctx context.Context, schemaName string, tableName string, n int) (cols []string, rows [][]types.Datum, err error) + // ReadFirstNRowsByFileMeta reads the first N rows of an data file. + ReadFirstNRowsByFileMeta(ctx context.Context, dataFileMeta mydump.SourceFileMeta, n int) (cols []string, rows [][]types.Datum, err error) + // EstimateSourceDataSize estimates the datasize to generate during the import as well as some other sub-informaiton. + // It will return: + // * the estimated data size to generate during the import, + // which might include some extra index data to generate besides the source file data + // * the total data size of all the source files, + // * whether there are some unsorted big tables + EstimateSourceDataSize(ctx context.Context) (*EstimateSourceDataSizeResult, error) +} + +// TargetInfoGetter defines the operations to get information from target. +type TargetInfoGetter interface { + // FetchRemoteTableModels fetches the table structures from the remote target. + FetchRemoteTableModels(ctx context.Context, schemaName string) ([]*model.TableInfo, error) + // CheckVersionRequirements performs the check whether the target satisfies the version requirements. + CheckVersionRequirements(ctx context.Context) error + // IsTableEmpty checks whether the specified table on the target DB contains data or not. + IsTableEmpty(ctx context.Context, schemaName string, tableName string) (*bool, error) + // GetTargetSysVariablesForImport gets some important systam variables for importing on the target. + GetTargetSysVariablesForImport(ctx context.Context) map[string]string + // GetReplicationConfig gets the replication config on the target. + GetReplicationConfig(ctx context.Context) (*pdtypes.ReplicationConfig, error) + // GetStorageInfo gets the storage information on the target. + GetStorageInfo(ctx context.Context) (*pdtypes.StoresInfo, error) + // GetEmptyRegionsInfo gets the region information of all the empty regions on the target. + GetEmptyRegionsInfo(ctx context.Context) (*pdtypes.RegionsInfo, error) +} + +type preInfoGetterKey string + +const ( + preInfoGetterKeyDBMetas preInfoGetterKey = "PRE_INFO_GETTER/DB_METAS" + preInfoGetterKeyTableStructsCache preInfoGetterKey = "PRE_INFO_GETTER/TABLE_STRUCTS_CACHE" + preInfoGetterKeySysVarsCache preInfoGetterKey = "PRE_INFO_GETTER/SYS_VARS_CACHE" + preInfoGetterKeyEstimatedSourceSizeCache preInfoGetterKey = "PRE_INFO_GETTER/ESTIMATED_SOURCE_SIZE_CACHE" +) + +func WithPreInfoGetterDBMetas(ctx context.Context, dbMetas []*mydump.MDDatabaseMeta) context.Context { + return context.WithValue(ctx, preInfoGetterKeyDBMetas, dbMetas) +} + +func WithPreInfoGetterTableStructuresCache(ctx context.Context, dbInfos map[string]*checkpoints.TidbDBInfo) context.Context { + return context.WithValue(ctx, preInfoGetterKeyTableStructsCache, dbInfos) +} + +func WithPreInfoGetterSysVarsCache(ctx context.Context, sysVars map[string]string) context.Context { + return context.WithValue(ctx, preInfoGetterKeySysVarsCache, sysVars) +} + +func WithPreInfoGetterEstimatedSrcSizeCache(ctx context.Context, sizeResult *EstimateSourceDataSizeResult) context.Context { + return context.WithValue(ctx, preInfoGetterKeyEstimatedSourceSizeCache, sizeResult) +} + +// TargetInfoGetterImpl implements the operations to get information from the target. +type TargetInfoGetterImpl struct { + cfg *config.Config + targetDBGlue glue.Glue + tls *common.TLS + backend backend.TargetInfoGetter +} + +// NewTargetInfoGetterImpl creates a TargetInfoGetterImpl object. +func NewTargetInfoGetterImpl( + cfg *config.Config, + targetDB *sql.DB, +) (*TargetInfoGetterImpl, error) { + targetDBGlue := glue.NewExternalTiDBGlue(targetDB, cfg.TiDB.SQLMode) + tls, err := cfg.ToTLS() + if err != nil { + return nil, errors.Trace(err) + } + var backendTargetInfoGetter backend.TargetInfoGetter + switch cfg.TikvImporter.Backend { + case config.BackendTiDB: + backendTargetInfoGetter = tidb.NewTargetInfoGetter(targetDB) + case config.BackendLocal: + backendTargetInfoGetter = local.NewTargetInfoGetter(tls, targetDBGlue, cfg.TiDB.PdAddr) + default: + return nil, common.ErrUnknownBackend.GenWithStackByArgs(cfg.TikvImporter.Backend) + } + return &TargetInfoGetterImpl{ + targetDBGlue: targetDBGlue, + tls: tls, + backend: backendTargetInfoGetter, + }, nil +} + +// FetchRemoteTableModels fetches the table structures from the remote target. +// It implements the TargetInfoGetter interface. +func (g *TargetInfoGetterImpl) FetchRemoteTableModels(ctx context.Context, schemaName string) ([]*model.TableInfo, error) { + if !g.targetDBGlue.OwnsSQLExecutor() { + return g.targetDBGlue.GetTables(ctx, schemaName) + } + return g.backend.FetchRemoteTableModels(ctx, schemaName) +} + +// CheckVersionRequirements performs the check whether the target satisfies the version requirements. +// It implements the TargetInfoGetter interface. +// Mydump database metas are retrieved from the context. +func (g *TargetInfoGetterImpl) CheckVersionRequirements(ctx context.Context) error { + var dbMetas []*mydump.MDDatabaseMeta + dbmetasVal := ctx.Value(preInfoGetterKeyDBMetas) + if dbmetasVal != nil { + if m, ok := dbmetasVal.([]*mydump.MDDatabaseMeta); ok { + dbMetas = m + } + } + return g.backend.CheckRequirements(ctx, &backend.CheckCtx{ + DBMetas: dbMetas, + }) +} + +// IsTableEmpty checks whether the specified table on the target DB contains data or not. +// It implements the TargetInfoGetter interface. +// It tries to select the row count from the target DB. +func (g *TargetInfoGetterImpl) IsTableEmpty(ctx context.Context, schemaName string, tableName string) (*bool, error) { + var result bool + failpoint.Inject("CheckTableEmptyFailed", func() { + failpoint.Return(nil, errors.New("mock error")) + }) + db, err := g.targetDBGlue.GetDB() + if err != nil { + return nil, errors.Trace(err) + } + exec := common.SQLWithRetry{ + DB: db, + Logger: log.FromContext(ctx), + } + var dump int + err = exec.QueryRow(ctx, "check table empty", + fmt.Sprintf("SELECT 1 FROM %s LIMIT 1", common.UniqueTable(schemaName, tableName)), + &dump, + ) + + switch { + case errors.ErrorEqual(err, sql.ErrNoRows): + result = true + case err != nil: + return nil, errors.Trace(err) + default: + result = false + } + return &result, nil +} + +// GetTargetSysVariablesForImport gets some important system variables for importing on the target. +// It implements the TargetInfoGetter interface. +// It uses the SQL to fetch sys variables from the target. +func (g *TargetInfoGetterImpl) GetTargetSysVariablesForImport(ctx context.Context) map[string]string { + sysVars := ObtainImportantVariables(ctx, g.targetDBGlue.GetSQLExecutor(), !isTiDBBackend(g.cfg)) + // override by manually set vars + maps.Copy(sysVars, g.cfg.TiDB.Vars) + return sysVars +} + +// GetReplicationConfig gets the replication config on the target. +// It implements the TargetInfoGetter interface. +// It uses the PD interface through TLS to get the information. +func (g *TargetInfoGetterImpl) GetReplicationConfig(ctx context.Context) (*pdtypes.ReplicationConfig, error) { + result := new(pdtypes.ReplicationConfig) + if err := g.tls.WithHost(g.cfg.TiDB.PdAddr).GetJSON(ctx, pdReplicate, &result); err != nil { + return nil, errors.Trace(err) + } + return result, nil +} + +// GetStorageInfo gets the storage information on the target. +// It implements the TargetInfoGetter interface. +// It uses the PD interface through TLS to get the information. +func (g *TargetInfoGetterImpl) GetStorageInfo(ctx context.Context) (*pdtypes.StoresInfo, error) { + result := new(pdtypes.StoresInfo) + if err := g.tls.WithHost(g.cfg.TiDB.PdAddr).GetJSON(ctx, pdStores, result); err != nil { + return nil, errors.Trace(err) + } + return result, nil +} + +// GetEmptyRegionsInfo gets the region information of all the empty regions on the target. +// It implements the TargetInfoGetter interface. +// It uses the PD interface through TLS to get the information. +func (g *TargetInfoGetterImpl) GetEmptyRegionsInfo(ctx context.Context) (*pdtypes.RegionsInfo, error) { + result := new(pdtypes.RegionsInfo) + if err := g.tls.WithHost(g.cfg.TiDB.PdAddr).GetJSON(ctx, pdEmptyRegions, &result); err != nil { + return nil, errors.Trace(err) + } + return result, nil +} + +// PreRestoreInfoGetterImpl implements the operations to get information used in importing preparation. +type PreRestoreInfoGetterImpl struct { + cfg *config.Config + srcStorage storage.ExternalStorage + ioWorkers *worker.Pool + encBuilder backend.EncodingBuilder + targetInfoGetter TargetInfoGetter + + dbMetas []*mydump.MDDatabaseMeta + mdDBMetaMap map[string]*mydump.MDDatabaseMeta + mdDBTableMetaMap map[string]map[string]*mydump.MDTableMeta +} + +// NewPreRestoreInfoGetter creates a PreRestoreInfoGetterImpl object. +func NewPreRestoreInfoGetter( + cfg *config.Config, + dbMetas []*mydump.MDDatabaseMeta, + srcStorage storage.ExternalStorage, + targetInfoGetter TargetInfoGetter, + ioWorkers *worker.Pool, + encBuilder backend.EncodingBuilder, +) (*PreRestoreInfoGetterImpl, error) { + if ioWorkers == nil { + ioWorkers = worker.NewPool(context.Background(), cfg.App.IOConcurrency, "pre_info_getter_io") + } + if encBuilder == nil { + switch cfg.TikvImporter.Backend { + case config.BackendTiDB: + encBuilder = tidb.NewEncodingBuilder() + case config.BackendLocal: + encBuilder = local.NewEncodingBuilder(context.Background()) + default: + return nil, common.ErrUnknownBackend.GenWithStackByArgs(cfg.TikvImporter.Backend) + } + } + + result := &PreRestoreInfoGetterImpl{ + cfg: cfg, + dbMetas: dbMetas, + srcStorage: srcStorage, + ioWorkers: ioWorkers, + encBuilder: encBuilder, + targetInfoGetter: targetInfoGetter, + } + result.Init() + return result, nil +} + +// Init initializes some internal data and states for PreRestoreInfoGetterImpl. +func (p *PreRestoreInfoGetterImpl) Init() { + mdDBMetaMap := make(map[string]*mydump.MDDatabaseMeta) + mdDBTableMetaMap := make(map[string]map[string]*mydump.MDTableMeta) + for _, dbMeta := range p.dbMetas { + dbName := dbMeta.Name + mdDBMetaMap[dbName] = dbMeta + mdTableMetaMap, ok := mdDBTableMetaMap[dbName] + if !ok { + mdTableMetaMap = make(map[string]*mydump.MDTableMeta) + mdDBTableMetaMap[dbName] = mdTableMetaMap + } + for _, tblMeta := range dbMeta.Tables { + tblName := tblMeta.Name + mdTableMetaMap[tblName] = tblMeta + } + } + p.mdDBMetaMap = mdDBMetaMap + p.mdDBTableMetaMap = mdDBTableMetaMap +} + +// GetAllTableStructures gets all the table structures with the information from both the source and the target. +// It implements the PreRestoreInfoGetter interface. +// It has a caching mechanism: the table structures will be obtained from the source only once. +func (p *PreRestoreInfoGetterImpl) GetAllTableStructures(ctx context.Context) (map[string]*checkpoints.TidbDBInfo, error) { + var ( + dbInfos map[string]*checkpoints.TidbDBInfo + err error + ) + dbInfosVal := ctx.Value(preInfoGetterKeyTableStructsCache) + if dbInfosVal != nil { + if v, ok := dbInfosVal.(map[string]*checkpoints.TidbDBInfo); ok { + dbInfos = v + } + } + if dbInfos != nil { + return dbInfos, nil + } + dbInfos, err = LoadSchemaInfo(ctx, p.dbMetas, func(ctx context.Context, dbName string) ([]*model.TableInfo, error) { + return p.getTableStructuresByFileMeta(ctx, p.mdDBMetaMap[dbName]) + }) + if err != nil { + return nil, errors.Trace(err) + } + return dbInfos, nil +} + +func (p *PreRestoreInfoGetterImpl) getTableStructuresByFileMeta(ctx context.Context, dbSrcFileMeta *mydump.MDDatabaseMeta) ([]*model.TableInfo, error) { + dbName := dbSrcFileMeta.Name + currentTableInfosFromDB, err := p.targetInfoGetter.FetchRemoteTableModels(ctx, dbName) + if err != nil { + return nil, errors.Trace(err) + } + currentTableInfosMap := make(map[string]*model.TableInfo) + for _, tblInfo := range currentTableInfosFromDB { + currentTableInfosMap[tblInfo.Name.L] = tblInfo + } + resultInfos := make([]*model.TableInfo, len(dbSrcFileMeta.Tables)) + for i, tableFileMeta := range dbSrcFileMeta.Tables { + if curTblInfo, ok := currentTableInfosMap[strings.ToLower(tableFileMeta.Name)]; ok { + resultInfos[i] = curTblInfo + continue + } + createTblSQL, err := tableFileMeta.GetSchema(ctx, p.srcStorage) + if err != nil { + return nil, errors.Annotatef(err, "get create table statement from schema file error: %s", tableFileMeta.Name) + } + theTableInfo, err := newTableInfo(createTblSQL, 0) + if err != nil { + errMsg := "generate table info from SQL error" + log.L().Error(errMsg, zap.Error(err), zap.String("sql", createTblSQL), zap.String("table_name", tableFileMeta.Name)) + return nil, errors.Annotatef(err, "%s: %s", errMsg, tableFileMeta.Name) + } + resultInfos[i] = theTableInfo + } + return resultInfos, nil +} + +func newTableInfo(createTblSQL string, tableID int64) (*model.TableInfo, error) { + parser := parser.New() + astNode, err := parser.ParseOneStmt(createTblSQL, "", "") + if err != nil { + errMsg := "parse sql statement error" + log.L().Error(errMsg, zap.Error(err), zap.String("sql", createTblSQL)) + return nil, errors.Trace(err) + } + sctx := mock.NewContext() + createTableStmt, ok := astNode.(*ast.CreateTableStmt) + if !ok { + return nil, errors.New("cannot transfer the parsed SQL as an CREATE TABLE statement") + } + info, err := ddl.MockTableInfo(sctx, createTableStmt, tableID) + if err != nil { + return nil, errors.Trace(err) + } + // set a auto_random bit if AUTO_RANDOM is set + setAutoRandomBits(info, createTableStmt.Cols) + info.State = model.StatePublic + return info, nil +} + +func setAutoRandomBits(tblInfo *model.TableInfo, colDefs []*ast.ColumnDef) { + if !tblInfo.PKIsHandle { + return + } + pkColName := tblInfo.GetPkName() + for _, colDef := range colDefs { + if colDef.Name.Name.L != pkColName.L || colDef.Tp.GetType() != mysql.TypeLonglong { + continue + } + // potential AUTO_RANDOM candidate column, examine the options + hasAutoRandom := false + canSetAutoRandom := true + var autoRandomBits int + for _, option := range colDef.Options { + if option.Tp == ast.ColumnOptionAutoRandom { + hasAutoRandom = true + autoRandomBits = option.AutoRandomBitLength + switch { + case autoRandomBits == types.UnspecifiedLength: + autoRandomBits = autoid.DefaultAutoRandomBits + case autoRandomBits <= 0 || autoRandomBits > autoid.MaxAutoRandomBits: + canSetAutoRandom = false + } + } + if option.Tp == ast.ColumnOptionAutoIncrement { + canSetAutoRandom = false + } + if option.Tp == ast.ColumnOptionDefaultValue { + canSetAutoRandom = false + } + } + if hasAutoRandom && canSetAutoRandom { + tblInfo.AutoRandomBits = uint64(autoRandomBits) + } + } +} + +// ReadFirstNRowsByTableName reads the first N rows of data of an importing source table. +// It implements the PreRestoreInfoGetter interface. +func (p *PreRestoreInfoGetterImpl) ReadFirstNRowsByTableName(ctx context.Context, schemaName string, tableName string, n int) ([]string, [][]types.Datum, error) { + mdTableMetaMap, ok := p.mdDBTableMetaMap[schemaName] + if !ok { + return nil, nil, errors.Errorf("cannot find the schema: %s", schemaName) + } + mdTableMeta, ok := mdTableMetaMap[tableName] + if !ok { + return nil, nil, errors.Errorf("cannot find the table: %s.%s", schemaName, tableName) + } + if len(mdTableMeta.DataFiles) <= 0 { + return nil, [][]types.Datum{}, nil + } + return p.ReadFirstNRowsByFileMeta(ctx, mdTableMeta.DataFiles[0].FileMeta, n) +} + +// ReadFirstNRowsByFileMeta reads the first N rows of an data file. +// It implements the PreRestoreInfoGetter interface. +func (p *PreRestoreInfoGetterImpl) ReadFirstNRowsByFileMeta(ctx context.Context, dataFileMeta mydump.SourceFileMeta, n int) ([]string, [][]types.Datum, error) { + var ( + reader storage.ReadSeekCloser + err error + ) + if dataFileMeta.Type == mydump.SourceTypeParquet { + reader, err = mydump.OpenParquetReader(ctx, p.srcStorage, dataFileMeta.Path, dataFileMeta.FileSize) + } else { + reader, err = p.srcStorage.Open(ctx, dataFileMeta.Path) + } + if err != nil { + return nil, nil, errors.Trace(err) + } + + var parser mydump.Parser + blockBufSize := int64(p.cfg.Mydumper.ReadBlockSize) + switch dataFileMeta.Type { + case mydump.SourceTypeCSV: + hasHeader := p.cfg.Mydumper.CSV.Header + // Create a utf8mb4 convertor to encode and decode data with the charset of CSV files. + charsetConvertor, err := mydump.NewCharsetConvertor(p.cfg.Mydumper.DataCharacterSet, p.cfg.Mydumper.DataInvalidCharReplace) + if err != nil { + return nil, nil, errors.Trace(err) + } + parser, err = mydump.NewCSVParser(ctx, &p.cfg.Mydumper.CSV, reader, blockBufSize, p.ioWorkers, hasHeader, charsetConvertor) + if err != nil { + return nil, nil, errors.Trace(err) + } + case mydump.SourceTypeSQL: + parser = mydump.NewChunkParser(ctx, p.cfg.TiDB.SQLMode, reader, blockBufSize, p.ioWorkers) + case mydump.SourceTypeParquet: + parser, err = mydump.NewParquetParser(ctx, p.srcStorage, reader, dataFileMeta.Path) + if err != nil { + return nil, nil, errors.Trace(err) + } + default: + panic(fmt.Sprintf("unknown file type '%s'", dataFileMeta.Type)) + } + //nolint: errcheck + defer parser.Close() + + rows := [][]types.Datum{} + for i := 0; i < n; i++ { + err := parser.ReadRow() + if err != nil { + if errors.Cause(err) != io.EOF { + return nil, nil, errors.Trace(err) + } else { + break + } + } + rows = append(rows, parser.LastRow().Row) + } + return parser.Columns(), rows, nil + +} + +// EstimateSourceDataSize estimates the datasize to generate during the import as well as some other sub-informaiton. +// It implements the PreRestoreInfoGetter interface. +func (p *PreRestoreInfoGetterImpl) EstimateSourceDataSize(ctx context.Context) (*EstimateSourceDataSizeResult, error) { + var result *EstimateSourceDataSizeResult + resultVal := ctx.Value(preInfoGetterKeyEstimatedSourceSizeCache) + if resultVal != nil { + if v, ok := resultVal.(*EstimateSourceDataSizeResult); ok { + result = v + } + } + if result != nil { + return result, nil + } + sizeWithIndex := int64(0) + sourceTotalSize := int64(0) + tableCount := 0 + unSortedBigTableCount := 0 + errMgr := errormanager.New(nil, p.cfg, log.FromContext(ctx)) + dbInfos, err := p.GetAllTableStructures(ctx) + if err != nil { + return nil, errors.Trace(err) + } + sysVars := p.GetTargetSysVariablesForImport(ctx) + for _, db := range p.dbMetas { + info, ok := dbInfos[db.Name] + if !ok { + continue + } + for _, tbl := range db.Tables { + sourceTotalSize += tbl.TotalSize + tableInfo, ok := info.Tables[tbl.Name] + if ok { + // Do not sample small table because there may a large number of small table and it will take a long + // time to sample data for all of them. + if isTiDBBackend(p.cfg) || tbl.TotalSize < int64(config.SplitRegionSize) { + sizeWithIndex += tbl.TotalSize + tbl.IndexRatio = 1.0 + tbl.IsRowOrdered = false + } else { + sampledIndexRatio, isRowOrderedFromSample, err := p.sampleDataFromTable(ctx, db.Name, tbl, tableInfo.Core, errMgr, sysVars) + if err != nil { + return nil, errors.Trace(err) + } + tbl.IndexRatio = sampledIndexRatio + tbl.IsRowOrdered = isRowOrderedFromSample + + if tbl.IndexRatio > 0 { + sizeWithIndex += int64(float64(tbl.TotalSize) * tbl.IndexRatio) + } else { + // if sample data failed due to max-error, fallback to use source size + sizeWithIndex += tbl.TotalSize + } + + if tbl.TotalSize > int64(config.DefaultBatchSize)*2 && !tbl.IsRowOrdered { + unSortedBigTableCount++ + } + } + tableCount += 1 + } + } + } + + result = &EstimateSourceDataSizeResult{ + SizeWithIndex: sizeWithIndex, + SizeWithoutIndex: sourceTotalSize, + HasUnsortedBigTables: (unSortedBigTableCount > 0), + } + return result, nil + +} + +// sampleDataFromTable samples the source data file to get the extra data ratio for the index +// It returns: +// * the extra data ratio with index size accounted +// * is the sample data ordered by row +func (p *PreRestoreInfoGetterImpl) sampleDataFromTable( + ctx context.Context, + dbName string, + tableMeta *mydump.MDTableMeta, + tableInfo *model.TableInfo, + errMgr *errormanager.ErrorManager, + sysVars map[string]string, +) (float64, bool, error) { + resultIndexRatio := 1.0 + isRowOrdered := false + if len(tableMeta.DataFiles) == 0 { + return resultIndexRatio, isRowOrdered, nil + } + sampleFile := tableMeta.DataFiles[0].FileMeta + var reader storage.ReadSeekCloser + var err error + if sampleFile.Type == mydump.SourceTypeParquet { + reader, err = mydump.OpenParquetReader(ctx, p.srcStorage, sampleFile.Path, sampleFile.FileSize) + } else { + reader, err = p.srcStorage.Open(ctx, sampleFile.Path) + } + if err != nil { + return 0.0, false, errors.Trace(err) + } + idAlloc := kv.NewPanickingAllocators(0) + tbl, err := tables.TableFromMeta(idAlloc, tableInfo) + if err != nil { + return 0.0, false, errors.Trace(err) + } + kvEncoder, err := p.encBuilder.NewEncoder(ctx, tbl, &kv.SessionOptions{ + SQLMode: p.cfg.TiDB.SQLMode, + Timestamp: 0, + SysVars: sysVars, + AutoRandomSeed: 0, + }) + if err != nil { + return 0.0, false, errors.Trace(err) + } + blockBufSize := int64(p.cfg.Mydumper.ReadBlockSize) + + var parser mydump.Parser + switch tableMeta.DataFiles[0].FileMeta.Type { + case mydump.SourceTypeCSV: + hasHeader := p.cfg.Mydumper.CSV.Header + // Create a utf8mb4 convertor to encode and decode data with the charset of CSV files. + charsetConvertor, err := mydump.NewCharsetConvertor(p.cfg.Mydumper.DataCharacterSet, p.cfg.Mydumper.DataInvalidCharReplace) + if err != nil { + return 0.0, false, errors.Trace(err) + } + parser, err = mydump.NewCSVParser(ctx, &p.cfg.Mydumper.CSV, reader, blockBufSize, p.ioWorkers, hasHeader, charsetConvertor) + if err != nil { + return 0.0, false, errors.Trace(err) + } + case mydump.SourceTypeSQL: + parser = mydump.NewChunkParser(ctx, p.cfg.TiDB.SQLMode, reader, blockBufSize, p.ioWorkers) + case mydump.SourceTypeParquet: + parser, err = mydump.NewParquetParser(ctx, p.srcStorage, reader, sampleFile.Path) + if err != nil { + return 0.0, false, errors.Trace(err) + } + default: + panic(fmt.Sprintf("file '%s' with unknown source type '%s'", sampleFile.Path, sampleFile.Type.String())) + } + //nolint: errcheck + defer parser.Close() + logTask := log.FromContext(ctx).With(zap.String("table", tableMeta.Name)).Begin(zap.InfoLevel, "sample file") + igCols, err := p.cfg.Mydumper.IgnoreColumns.GetIgnoreColumns(dbName, tableMeta.Name, p.cfg.Mydumper.CaseSensitive) + if err != nil { + return 0.0, false, errors.Trace(err) + } + + initializedColumns := false + var columnPermutation []int + var kvSize uint64 = 0 + var rowSize uint64 = 0 + rowCount := 0 + dataKVs := p.encBuilder.MakeEmptyRows() + indexKVs := p.encBuilder.MakeEmptyRows() + lastKey := make([]byte, 0) + isRowOrdered = true +outloop: + for { + offset, _ := parser.Pos() + err = parser.ReadRow() + columnNames := parser.Columns() + + switch errors.Cause(err) { + case nil: + if !initializedColumns { + if len(columnPermutation) == 0 { + columnPermutation, err = createColumnPermutation( + columnNames, + igCols.ColumnsMap(), + tableInfo, + log.FromContext(ctx)) + if err != nil { + return 0.0, false, errors.Trace(err) + } + } + initializedColumns = true + } + case io.EOF: + break outloop + default: + err = errors.Annotatef(err, "in file offset %d", offset) + return 0.0, false, errors.Trace(err) + } + lastRow := parser.LastRow() + rowCount += 1 + + var dataChecksum, indexChecksum verification.KVChecksum + kvs, encodeErr := kvEncoder.Encode(logTask.Logger, lastRow.Row, lastRow.RowID, columnPermutation, sampleFile.Path, offset) + if encodeErr != nil { + encodeErr = errMgr.RecordTypeError(ctx, log.FromContext(ctx), tableInfo.Name.O, sampleFile.Path, offset, + "" /* use a empty string here because we don't actually record */, encodeErr) + if encodeErr != nil { + return 0.0, false, errors.Annotatef(encodeErr, "in file at offset %d", offset) + } + if rowCount < maxSampleRowCount { + continue + } else { + break + } + } + if isRowOrdered { + kvs.ClassifyAndAppend(&dataKVs, &dataChecksum, &indexKVs, &indexChecksum) + for _, kv := range kv.KvPairsFromRows(dataKVs) { + if len(lastKey) == 0 { + lastKey = kv.Key + } else if bytes.Compare(lastKey, kv.Key) > 0 { + isRowOrdered = false + break + } + } + dataKVs = dataKVs.Clear() + indexKVs = indexKVs.Clear() + } + kvSize += kvs.Size() + rowSize += uint64(lastRow.Length) + parser.RecycleRow(lastRow) + + failpoint.Inject("mock-kv-size", func(val failpoint.Value) { + kvSize += uint64(val.(int)) + }) + if rowSize > maxSampleDataSize || rowCount > maxSampleRowCount { + break + } + } + + if rowSize > 0 && kvSize > rowSize { + resultIndexRatio = float64(kvSize) / float64(rowSize) + } + log.FromContext(ctx).Info("Sample source data", zap.String("table", tableMeta.Name), zap.Float64("IndexRatio", tableMeta.IndexRatio), zap.Bool("IsSourceOrder", tableMeta.IsRowOrdered)) + return resultIndexRatio, isRowOrdered, nil +} + +// GetReplicationConfig gets the replication config on the target. +// It implements the PreRestoreInfoGetter interface. +func (p *PreRestoreInfoGetterImpl) GetReplicationConfig(ctx context.Context) (*pdtypes.ReplicationConfig, error) { + return p.targetInfoGetter.GetReplicationConfig(ctx) +} + +// GetStorageInfo gets the storage information on the target. +// It implements the PreRestoreInfoGetter interface. +func (p *PreRestoreInfoGetterImpl) GetStorageInfo(ctx context.Context) (*pdtypes.StoresInfo, error) { + return p.targetInfoGetter.GetStorageInfo(ctx) +} + +// GetEmptyRegionsInfo gets the region information of all the empty regions on the target. +// It implements the PreRestoreInfoGetter interface. +func (p *PreRestoreInfoGetterImpl) GetEmptyRegionsInfo(ctx context.Context) (*pdtypes.RegionsInfo, error) { + return p.targetInfoGetter.GetEmptyRegionsInfo(ctx) +} + +// IsTableEmpty checks whether the specified table on the target DB contains data or not. +// It implements the PreRestoreInfoGetter interface. +func (p *PreRestoreInfoGetterImpl) IsTableEmpty(ctx context.Context, schemaName string, tableName string) (*bool, error) { + return p.targetInfoGetter.IsTableEmpty(ctx, schemaName, tableName) +} + +// FetchRemoteTableModels fetches the table structures from the remote target. +// It implements the PreRestoreInfoGetter interface. +func (p *PreRestoreInfoGetterImpl) FetchRemoteTableModels(ctx context.Context, schemaName string) ([]*model.TableInfo, error) { + return p.targetInfoGetter.FetchRemoteTableModels(ctx, schemaName) +} + +// CheckVersionRequirements performs the check whether the target satisfies the version requirements. +// It implements the PreRestoreInfoGetter interface. +// Mydump database metas are retrieved from the context. +func (g *PreRestoreInfoGetterImpl) CheckVersionRequirements(ctx context.Context) error { + return g.targetInfoGetter.CheckVersionRequirements(ctx) +} + +// GetTargetSysVariablesForImport gets some important systam variables for importing on the target. +// It implements the PreRestoreInfoGetter interface. +// It has caching mechanism. +func (p *PreRestoreInfoGetterImpl) GetTargetSysVariablesForImport(ctx context.Context) map[string]string { + var sysVars map[string]string + sysVarsVal := ctx.Value(preInfoGetterKeySysVarsCache) + if sysVarsVal != nil { + if v, ok := sysVarsVal.(map[string]string); ok { + sysVars = v + } + } + if sysVars != nil { + return sysVars + } + return p.targetInfoGetter.GetTargetSysVariablesForImport(ctx) +} diff --git a/br/pkg/lightning/restore/get_pre_info_test.go b/br/pkg/lightning/restore/get_pre_info_test.go new file mode 100644 index 0000000000000..94bc4ec58c41e --- /dev/null +++ b/br/pkg/lightning/restore/get_pre_info_test.go @@ -0,0 +1,497 @@ +// Copyright 2022 PingCAP, Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// See the License for the specific language governing permissions and +// limitations under the License. + +package restore + +import ( + "context" + "fmt" + "strings" + "testing" + + "github.com/pingcap/tidb/br/pkg/lightning/config" + "github.com/pingcap/tidb/br/pkg/lightning/restore/mock" + "github.com/pingcap/tidb/parser/model" + "github.com/pingcap/tidb/types" + "github.com/stretchr/testify/require" +) + +type colDef struct { + ColName string + Def string + TypeStr string +} + +type tableDef []*colDef + +func tableDefsToMockDataMap(dbTableDefs map[string]map[string]tableDef) map[string]*mock.MockDBSourceData { + dbMockDataMap := make(map[string]*mock.MockDBSourceData) + for dbName, tblDefMap := range dbTableDefs { + tblMockDataMap := make(map[string]*mock.MockTableSourceData) + for tblName, colDefs := range tblDefMap { + colDefStrs := make([]string, len(colDefs)) + for i, colDef := range colDefs { + colDefStrs[i] = fmt.Sprintf("%s %s", colDef.ColName, colDef.Def) + } + createSQL := fmt.Sprintf("CREATE TABLE %s.%s (%s);", dbName, tblName, strings.Join(colDefStrs, ", ")) + tblMockDataMap[tblName] = &mock.MockTableSourceData{ + DBName: dbName, + TableName: tblName, + SchemaFile: &mock.MockSourceFile{ + FileName: fmt.Sprintf("/%s/%s/%s.schema.sql", dbName, tblName, tblName), + Data: []byte(createSQL), + }, + } + } + dbMockDataMap[dbName] = &mock.MockDBSourceData{ + Name: dbName, + Tables: tblMockDataMap, + } + } + return dbMockDataMap +} + +func TestGetPreInfoGenerateTableInfo(t *testing.T) { + schemaName := "db1" + tblName := "tbl1" + createTblSQL := fmt.Sprintf("create table `%s`.`%s` (a varchar(16) not null, b varchar(8) default 'DEFA')", schemaName, tblName) + tblInfo, err := newTableInfo(createTblSQL, 1) + require.Nil(t, err) + t.Logf("%+v", tblInfo) + require.Equal(t, model.NewCIStr(tblName), tblInfo.Name) + require.Equal(t, len(tblInfo.Columns), 2) + require.Equal(t, model.NewCIStr("a"), tblInfo.Columns[0].Name) + require.Nil(t, tblInfo.Columns[0].DefaultValue) + require.False(t, hasDefault(tblInfo.Columns[0])) + require.Equal(t, model.NewCIStr("b"), tblInfo.Columns[1].Name) + require.NotNil(t, tblInfo.Columns[1].DefaultValue) + + createTblSQL = fmt.Sprintf("create table `%s`.`%s` (a varchar(16), b varchar(8) default 'DEFAULT_BBBBB')", schemaName, tblName) // default value exceeds the length + tblInfo, err = newTableInfo(createTblSQL, 2) + require.NotNil(t, err) +} + +func TestGetPreInfoHasDefault(t *testing.T) { + subCases := []struct { + ColDef string + ExpectHasDefault bool + }{ + { + ColDef: "varchar(16)", + ExpectHasDefault: true, + }, + { + ColDef: "varchar(16) NOT NULL", + ExpectHasDefault: false, + }, + { + ColDef: "INTEGER PRIMARY KEY", + ExpectHasDefault: false, + }, + { + ColDef: "INTEGER AUTO_INCREMENT", + ExpectHasDefault: true, + }, + { + ColDef: "INTEGER PRIMARY KEY AUTO_INCREMENT", + ExpectHasDefault: true, + }, + { + ColDef: "BIGINT PRIMARY KEY AUTO_RANDOM", + ExpectHasDefault: false, + }, + } + for _, subCase := range subCases { + createTblSQL := fmt.Sprintf("create table `db1`.`tbl1` (a %s)", subCase.ColDef) + tblInfo, err := newTableInfo(createTblSQL, 1) + require.Nil(t, err) + require.Equal(t, subCase.ExpectHasDefault, hasDefault(tblInfo.Columns[0]), subCase.ColDef) + } +} + +func TestGetPreInfoAutoRandomBits(t *testing.T) { + subCases := []struct { + ColDef string + ExpectAutoRandomBits uint64 + }{ + { + ColDef: "varchar(16)", + ExpectAutoRandomBits: 0, + }, + { + ColDef: "varchar(16) AUTO_RANDOM", + ExpectAutoRandomBits: 0, + }, + { + ColDef: "INTEGER PRIMARY KEY AUTO_RANDOM", + ExpectAutoRandomBits: 0, + }, + { + ColDef: "BIGINT PRIMARY KEY AUTO_RANDOM AUTO_INCREMENT", + ExpectAutoRandomBits: 0, + }, + { + ColDef: "BIGINT PRIMARY KEY AUTO_RANDOM(3)", + ExpectAutoRandomBits: 3, + }, + { + ColDef: "BIGINT PRIMARY KEY AUTO_RANDOM", + ExpectAutoRandomBits: 5, + }, + { + ColDef: "BIGINT PRIMARY KEY AUTO_RANDOM(20)", + ExpectAutoRandomBits: 0, + }, + { + ColDef: "BIGINT PRIMARY KEY AUTO_RANDOM(0)", + ExpectAutoRandomBits: 0, + }, + { + ColDef: "BIGINT AUTO_RANDOM", + ExpectAutoRandomBits: 0, + }, + } + for _, subCase := range subCases { + createTblSQL := fmt.Sprintf("create table `db1`.`tbl1` (a %s)", subCase.ColDef) + tblInfo, err := newTableInfo(createTblSQL, 1) + require.Nil(t, err) + require.Equal(t, subCase.ExpectAutoRandomBits, tblInfo.AutoRandomBits, subCase.ColDef) + } +} + +func TestGetPreInfoGetAllTableStructures(t *testing.T) { + dbTableDefs := map[string]map[string]tableDef{ + "db01": { + "tbl01": { + &colDef{ + ColName: "id", + Def: "INTEGER PRIMARY KEY AUTO_INCREMENT", + TypeStr: "int", + }, + &colDef{ + ColName: "strval", + Def: "VARCHAR(64)", + TypeStr: "varchar", + }, + }, + "tbl02": { + &colDef{ + ColName: "id", + Def: "INTEGER PRIMARY KEY AUTO_INCREMENT", + TypeStr: "int", + }, + &colDef{ + ColName: "val", + Def: "VARCHAR(64)", + TypeStr: "varchar", + }, + }, + }, + "db02": { + "tbl01": { + &colDef{ + ColName: "id", + Def: "INTEGER PRIMARY KEY AUTO_INCREMENT", + TypeStr: "int", + }, + &colDef{ + ColName: "strval", + Def: "VARCHAR(64)", + TypeStr: "varchar", + }, + }, + }, + } + testMockDataMap := tableDefsToMockDataMap(dbTableDefs) + ctx, cancel := context.WithCancel(context.Background()) + defer cancel() + mockSrc, err := mock.NewMockImportSource(testMockDataMap) + require.Nil(t, err) + + mockTarget := mock.NewMockTargetInfo() + + cfg := config.NewConfig() + cfg.TikvImporter.Backend = config.BackendLocal + ig, err := NewPreRestoreInfoGetter(cfg, mockSrc.GetAllDBFileMetas(), mockSrc.GetStorage(), mockTarget, nil, nil) + require.NoError(t, err) + tblStructMap, err := ig.GetAllTableStructures(ctx) + require.Nil(t, err) + require.Equal(t, len(dbTableDefs), len(tblStructMap), "compare db count") + for dbName, dbInfo := range tblStructMap { + tblDefMap, ok := dbTableDefs[dbName] + require.Truef(t, ok, "check db exists in db definitions: %s", dbName) + require.Equalf(t, len(tblDefMap), len(dbInfo.Tables), "compare table count: %s", dbName) + for tblName, tblStruct := range dbInfo.Tables { + tblDef, ok := tblDefMap[tblName] + require.Truef(t, ok, "check table exists in table definitions: %s.%s", dbName, tblName) + require.Equalf(t, len(tblDef), len(tblStruct.Core.Columns), "compare columns count: %s.%s", dbName, tblName) + for i, colDef := range tblStruct.Core.Columns { + expectColDef := tblDef[i] + require.Equalf(t, strings.ToLower(expectColDef.ColName), colDef.Name.L, "check column name: %s.%s", dbName, tblName) + require.Truef(t, strings.Contains(colDef.FieldType.String(), strings.ToLower(expectColDef.TypeStr)), "check column type: %s.%s", dbName, tblName) + } + } + } +} + +func TestGetPreInfoReadFirstRow(t *testing.T) { + ctx, cancel := context.WithCancel(context.Background()) + defer cancel() + const testCSVData01 string = `ival,sval +111,"aaa" +222,"bbb" +` + const testSQLData01 string = `INSERT INTO db01.tbl01 (ival, sval) VALUES (333, 'ccc'); +INSERT INTO db01.tbl01 (ival, sval) VALUES (444, 'ddd');` + testDataInfos := []struct { + FileName string + Data string + FirstN int + CSVConfig *config.CSVConfig + ExpectFirstRowDatums [][]types.Datum + ExpectColumns []string + }{ + { + FileName: "/db01/tbl01/data.001.csv", + Data: testCSVData01, + FirstN: 1, + ExpectFirstRowDatums: [][]types.Datum{ + { + types.NewStringDatum("111"), + types.NewStringDatum("aaa"), + }, + }, + ExpectColumns: []string{"ival", "sval"}, + }, + { + FileName: "/db01/tbl01/data.002.csv", + Data: testCSVData01, + FirstN: 2, + ExpectFirstRowDatums: [][]types.Datum{ + { + types.NewStringDatum("111"), + types.NewStringDatum("aaa"), + }, + { + types.NewStringDatum("222"), + types.NewStringDatum("bbb"), + }, + }, + ExpectColumns: []string{"ival", "sval"}, + }, + { + FileName: "/db01/tbl01/data.001.sql", + Data: testSQLData01, + FirstN: 1, + ExpectFirstRowDatums: [][]types.Datum{ + { + types.NewUintDatum(333), + types.NewStringDatum("ccc"), + }, + }, + ExpectColumns: []string{"ival", "sval"}, + }, + { + FileName: "/db01/tbl01/data.003.csv", + Data: "", + FirstN: 1, + ExpectFirstRowDatums: [][]types.Datum{}, + ExpectColumns: nil, + }, + { + FileName: "/db01/tbl01/data.004.csv", + Data: "ival,sval", + FirstN: 1, + ExpectFirstRowDatums: [][]types.Datum{}, + ExpectColumns: []string{"ival", "sval"}, + }, + } + tblMockSourceData := &mock.MockTableSourceData{ + DBName: "db01", + TableName: "tbl01", + SchemaFile: &mock.MockSourceFile{ + FileName: "/db01/tbl01/tbl01.schema.sql", + Data: []byte("CREATE TABLE db01.tbl01(id INTEGER PRIMARY KEY AUTO_INCREMENT, ival INTEGER, sval VARCHAR(64));"), + }, + DataFiles: []*mock.MockSourceFile{}, + } + for _, testInfo := range testDataInfos { + tblMockSourceData.DataFiles = append(tblMockSourceData.DataFiles, &mock.MockSourceFile{ + FileName: testInfo.FileName, + Data: []byte(testInfo.Data), + }) + } + mockDataMap := map[string]*mock.MockDBSourceData{ + "db01": { + Name: "db01", + Tables: map[string]*mock.MockTableSourceData{ + "tbl01": tblMockSourceData, + }, + }, + } + mockSrc, err := mock.NewMockImportSource(mockDataMap) + require.Nil(t, err) + mockTarget := mock.NewMockTargetInfo() + cfg := config.NewConfig() + cfg.TikvImporter.Backend = config.BackendLocal + ig, err := NewPreRestoreInfoGetter(cfg, mockSrc.GetAllDBFileMetas(), mockSrc.GetStorage(), mockTarget, nil, nil) + require.NoError(t, err) + + cfg.Mydumper.CSV.Header = true + tblMeta := mockSrc.GetDBMetaMap()["db01"].Tables[0] + for i, dataFile := range tblMeta.DataFiles { + theDataInfo := testDataInfos[i] + cols, rowDatums, err := ig.ReadFirstNRowsByFileMeta(ctx, dataFile.FileMeta, theDataInfo.FirstN) + require.Nil(t, err) + t.Logf("%v, %v", cols, rowDatums) + require.Equal(t, theDataInfo.ExpectColumns, cols) + require.Equal(t, theDataInfo.ExpectFirstRowDatums, rowDatums) + } + + theDataInfo := testDataInfos[0] + cols, rowDatums, err := ig.ReadFirstNRowsByTableName(ctx, "db01", "tbl01", theDataInfo.FirstN) + require.NoError(t, err) + require.Equal(t, theDataInfo.ExpectColumns, cols) + require.Equal(t, theDataInfo.ExpectFirstRowDatums, rowDatums) +} + +func TestGetPreInfoSampleSource(t *testing.T) { + ctx, cancel := context.WithCancel(context.Background()) + defer cancel() + dataFileName := "/db01/tbl01/tbl01.data.001.csv" + mockDataMap := map[string]*mock.MockDBSourceData{ + "db01": { + Name: "db01", + Tables: map[string]*mock.MockTableSourceData{ + "tbl01": { + DBName: "db01", + TableName: "tbl01", + SchemaFile: &mock.MockSourceFile{ + FileName: "/db01/tbl01/tbl01.schema.sql", + Data: []byte("CREATE TABLE db01.tbl01 (id INTEGER PRIMARY KEY AUTO_INCREMENT, ival INTEGER, sval VARCHAR(64));"), + }, + DataFiles: []*mock.MockSourceFile{ + { + FileName: dataFileName, + Data: []byte(nil), + }, + }, + }, + }, + }, + } + mockSrc, err := mock.NewMockImportSource(mockDataMap) + require.Nil(t, err) + mockTarget := mock.NewMockTargetInfo() + cfg := config.NewConfig() + cfg.TikvImporter.Backend = config.BackendLocal + ig, err := NewPreRestoreInfoGetter(cfg, mockSrc.GetAllDBFileMetas(), mockSrc.GetStorage(), mockTarget, nil, nil) + require.NoError(t, err) + + mdDBMeta := mockSrc.GetAllDBFileMetas()[0] + mdTblMeta := mdDBMeta.Tables[0] + dbInfos, err := ig.GetAllTableStructures(ctx) + require.NoError(t, err) + + subTests := []struct { + Data []byte + ExpectIsOrdered bool + }{ + { + Data: []byte(`id,ival,sval +1,111,"aaa" +2,222,"bbb" +`, + ), + ExpectIsOrdered: true, + }, + { + Data: []byte(`sval,ival,id +"aaa",111,1 +"bbb",222,2 +`, + ), + ExpectIsOrdered: true, + }, + { + Data: []byte(`id,ival,sval +2,222,"bbb" +1,111,"aaa" +`, + ), + ExpectIsOrdered: false, + }, + { + Data: []byte(`sval,ival,id +"aaa",111,2 +"bbb",222,1 +`, + ), + ExpectIsOrdered: false, + }, + } + for _, subTest := range subTests { + require.NoError(t, mockSrc.GetStorage().WriteFile(ctx, dataFileName, subTest.Data)) + sampledIndexRatio, isRowOrderedFromSample, err := ig.sampleDataFromTable(ctx, "db01", mdTblMeta, dbInfos["db01"].Tables["tbl01"].Core, nil, defaultImportantVariables) + require.NoError(t, err) + t.Logf("%v, %v", sampledIndexRatio, isRowOrderedFromSample) + require.Greater(t, sampledIndexRatio, 1.0) + require.Equal(t, subTest.ExpectIsOrdered, isRowOrderedFromSample) + } +} + +func TestGetPreInfoEstimateSourceSize(t *testing.T) { + ctx, cancel := context.WithCancel(context.Background()) + defer cancel() + dataFileName := "/db01/tbl01/tbl01.data.001.csv" + testData := []byte(`id,ival,sval +1,111,"aaa" +2,222,"bbb" +`, + ) + mockDataMap := map[string]*mock.MockDBSourceData{ + "db01": { + Name: "db01", + Tables: map[string]*mock.MockTableSourceData{ + "tbl01": { + DBName: "db01", + TableName: "tbl01", + SchemaFile: &mock.MockSourceFile{ + FileName: "/db01/tbl01/tbl01.schema.sql", + Data: []byte("CREATE TABLE db01.tbl01 (id INTEGER PRIMARY KEY AUTO_INCREMENT, ival INTEGER, sval VARCHAR(64));"), + }, + DataFiles: []*mock.MockSourceFile{ + { + FileName: dataFileName, + Data: testData, + }, + }, + }, + }, + }, + } + mockSrc, err := mock.NewMockImportSource(mockDataMap) + require.Nil(t, err) + mockTarget := mock.NewMockTargetInfo() + cfg := config.NewConfig() + cfg.TikvImporter.Backend = config.BackendLocal + ig, err := NewPreRestoreInfoGetter(cfg, mockSrc.GetAllDBFileMetas(), mockSrc.GetStorage(), mockTarget, nil, nil) + require.NoError(t, err) + + sizeResult, err := ig.EstimateSourceDataSize(ctx) + require.NoError(t, err) + t.Logf("estimate size: %v, file size: %v, has unsorted table: %v\n", sizeResult.SizeWithIndex, sizeResult.SizeWithoutIndex, sizeResult.HasUnsortedBigTables) + require.GreaterOrEqual(t, sizeResult.SizeWithIndex, sizeResult.SizeWithoutIndex) + require.Equal(t, int64(len(testData)), sizeResult.SizeWithoutIndex) + require.False(t, sizeResult.HasUnsortedBigTables) +} diff --git a/br/pkg/lightning/restore/mock/BUILD.bazel b/br/pkg/lightning/restore/mock/BUILD.bazel new file mode 100644 index 0000000000000..5f7d47cc4be51 --- /dev/null +++ b/br/pkg/lightning/restore/mock/BUILD.bazel @@ -0,0 +1,28 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") + +go_library( + name = "mock", + srcs = ["mock.go"], + importpath = "github.com/pingcap/tidb/br/pkg/lightning/restore/mock", + visibility = ["//visibility:public"], + deps = [ + "//br/pkg/lightning/mydump", + "//br/pkg/storage", + "//parser/model", + "//store/pdtypes", + "//util/filter", + "@com_github_pingcap_errors//:errors", + ], +) + +go_test( + name = "mock_test", + srcs = ["mock_test.go"], + embed = [":mock"], + flaky = True, + deps = [ + "//br/pkg/lightning/restore", + "//parser/model", + "@com_github_stretchr_testify//require", + ], +) diff --git a/br/pkg/lightning/restore/mock/mock.go b/br/pkg/lightning/restore/mock/mock.go new file mode 100644 index 0000000000000..100372b594620 --- /dev/null +++ b/br/pkg/lightning/restore/mock/mock.go @@ -0,0 +1,283 @@ +// Copyright 2022 PingCAP, Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// See the License for the specific language governing permissions and +// limitations under the License. + +package mock + +import ( + "context" + "strings" + + "github.com/pingcap/errors" + "github.com/pingcap/tidb/br/pkg/lightning/mydump" + "github.com/pingcap/tidb/br/pkg/storage" + "github.com/pingcap/tidb/parser/model" + "github.com/pingcap/tidb/store/pdtypes" + "github.com/pingcap/tidb/util/filter" +) + +// MockSourceFile defines a mock source file. +type MockSourceFile struct { + FileName string + Data []byte + TotalSize int +} + +// MockTableSourceData defines a mock source information for a table. +type MockTableSourceData struct { + DBName string + TableName string + SchemaFile *MockSourceFile + DataFiles []*MockSourceFile +} + +// MockDBSourceData defines a mock source information for a database. +type MockDBSourceData struct { + Name string + Tables map[string]*MockTableSourceData +} + +// MockImportSource defines a mock import source +type MockImportSource struct { + dbSrcDataMap map[string]*MockDBSourceData + dbFileMetaMap map[string]*mydump.MDDatabaseMeta + srcStorage storage.ExternalStorage +} + +// NewMockImportSource creates a MockImportSource object. +func NewMockImportSource(dbSrcDataMap map[string]*MockDBSourceData) (*MockImportSource, error) { + ctx := context.Background() + dbFileMetaMap := make(map[string]*mydump.MDDatabaseMeta) + mapStore := storage.NewMemStorage() + for dbName, dbData := range dbSrcDataMap { + dbFileInfo := mydump.FileInfo{ + TableName: filter.Table{ + Schema: dbName, + }, + FileMeta: mydump.SourceFileMeta{Type: mydump.SourceTypeSchemaSchema}, + } + dbMeta := mydump.NewMDDatabaseMeta("binary") + dbMeta.Name = dbName + dbMeta.SchemaFile = dbFileInfo + dbMeta.Tables = []*mydump.MDTableMeta{} + for tblName, tblData := range dbData.Tables { + tblMeta := mydump.NewMDTableMeta("binary") + tblMeta.DB = dbName + tblMeta.Name = tblName + tblMeta.SchemaFile = mydump.FileInfo{ + TableName: filter.Table{ + Schema: dbName, + Name: tblName, + }, + FileMeta: mydump.SourceFileMeta{ + Path: tblData.SchemaFile.FileName, + Type: mydump.SourceTypeTableSchema, + }, + } + tblMeta.DataFiles = []mydump.FileInfo{} + if err := mapStore.WriteFile(ctx, tblData.SchemaFile.FileName, tblData.SchemaFile.Data); err != nil { + return nil, errors.Trace(err) + } + totalFileSize := 0 + for _, tblDataFile := range tblData.DataFiles { + fileSize := tblDataFile.TotalSize + if fileSize == 0 { + fileSize = len(tblDataFile.Data) + } + totalFileSize += fileSize + fileInfo := mydump.FileInfo{ + TableName: filter.Table{ + Schema: dbName, + Name: tblName, + }, + FileMeta: mydump.SourceFileMeta{ + Path: tblDataFile.FileName, + FileSize: int64(fileSize), + }, + } + switch { + case strings.HasSuffix(tblDataFile.FileName, ".csv"): + fileInfo.FileMeta.Type = mydump.SourceTypeCSV + case strings.HasSuffix(tblDataFile.FileName, ".sql"): + fileInfo.FileMeta.Type = mydump.SourceTypeSQL + default: + return nil, errors.Errorf("unsupported file type: %s", tblDataFile.FileName) + } + tblMeta.DataFiles = append(tblMeta.DataFiles, fileInfo) + if err := mapStore.WriteFile(ctx, tblDataFile.FileName, tblDataFile.Data); err != nil { + return nil, errors.Trace(err) + } + } + tblMeta.TotalSize = int64(totalFileSize) + dbMeta.Tables = append(dbMeta.Tables, tblMeta) + } + dbFileMetaMap[dbName] = dbMeta + } + return &MockImportSource{ + dbSrcDataMap: dbSrcDataMap, + dbFileMetaMap: dbFileMetaMap, + srcStorage: mapStore, + }, nil +} + +// GetStorage gets the External Storage object on the mock source. +func (m *MockImportSource) GetStorage() storage.ExternalStorage { + return m.srcStorage +} + +// GetDBMetaMap gets the Mydumper database metadata map on the mock source. +func (m *MockImportSource) GetDBMetaMap() map[string]*mydump.MDDatabaseMeta { + return m.dbFileMetaMap +} + +// GetAllDBFileMetas gets all the Mydumper database metadatas on the mock source. +func (m *MockImportSource) GetAllDBFileMetas() []*mydump.MDDatabaseMeta { + result := make([]*mydump.MDDatabaseMeta, len(m.dbFileMetaMap)) + i := 0 + for _, dbMeta := range m.dbFileMetaMap { + result[i] = dbMeta + i++ + } + return result +} + +// StorageInfo defines the storage information for a mock target. +type StorageInfo struct { + TotalSize uint64 + UsedSize uint64 + AvailableSize uint64 +} + +// MockTableInfo defines a mock table structure information for a mock target. +type MockTableInfo struct { + RowCount int + TableModel *model.TableInfo +} + +// MockTableInfo defines a mock target information. +type MockTargetInfo struct { + MaxReplicasPerRegion int + EmptyRegionCount int + StorageInfos []StorageInfo + sysVarMap map[string]string + dbTblInfoMap map[string]map[string]*MockTableInfo +} + +// NewMockTargetInfo creates a MockTargetInfo object. +func NewMockTargetInfo() *MockTargetInfo { + return &MockTargetInfo{ + StorageInfos: []StorageInfo{}, + sysVarMap: make(map[string]string), + dbTblInfoMap: make(map[string]map[string]*MockTableInfo), + } +} + +// SetSysVar sets the system variables of the mock target. +func (t *MockTargetInfo) SetSysVar(key string, value string) { + t.sysVarMap[key] = value +} + +// SetTableInfo sets the table structure information of the mock target. +func (t *MockTargetInfo) SetTableInfo(schemaName string, tableName string, tblInfo *MockTableInfo) { + if _, ok := t.dbTblInfoMap[schemaName]; !ok { + t.dbTblInfoMap[schemaName] = make(map[string]*MockTableInfo) + } + t.dbTblInfoMap[schemaName][tableName] = tblInfo +} + +// FetchRemoteTableModels fetches the table structures from the remote target. +// It implements the TargetInfoGetter interface. +func (t *MockTargetInfo) FetchRemoteTableModels(ctx context.Context, schemaName string) ([]*model.TableInfo, error) { + resultInfos := []*model.TableInfo{} + tblMap, ok := t.dbTblInfoMap[schemaName] + if !ok { + return resultInfos, nil + } + for _, tblInfo := range tblMap { + resultInfos = append(resultInfos, tblInfo.TableModel) + } + return resultInfos, nil +} + +// GetTargetSysVariablesForImport gets some important systam variables for importing on the target. +// It implements the TargetInfoGetter interface. +func (t *MockTargetInfo) GetTargetSysVariablesForImport(ctx context.Context) map[string]string { + result := make(map[string]string) + for k, v := range t.sysVarMap { + result[k] = v + } + return result +} + +// GetReplicationConfig gets the replication config on the target. +// It implements the TargetInfoGetter interface. +func (t *MockTargetInfo) GetReplicationConfig(ctx context.Context) (*pdtypes.ReplicationConfig, error) { + return &pdtypes.ReplicationConfig{ + MaxReplicas: uint64(t.MaxReplicasPerRegion), + }, nil +} + +// GetStorageInfo gets the storage information on the target. +// It implements the TargetInfoGetter interface. +func (t *MockTargetInfo) GetStorageInfo(ctx context.Context) (*pdtypes.StoresInfo, error) { + resultStoreInfos := make([]*pdtypes.StoreInfo, len(t.StorageInfos)) + for i, storeInfo := range t.StorageInfos { + resultStoreInfos[i] = &pdtypes.StoreInfo{ + Status: &pdtypes.StoreStatus{ + Capacity: pdtypes.ByteSize(storeInfo.TotalSize), + Available: pdtypes.ByteSize(storeInfo.AvailableSize), + UsedSize: pdtypes.ByteSize(storeInfo.UsedSize), + }, + } + } + return &pdtypes.StoresInfo{ + Count: len(resultStoreInfos), + Stores: resultStoreInfos, + }, nil +} + +// GetEmptyRegionsInfo gets the region information of all the empty regions on the target. +// It implements the TargetInfoGetter interface. +func (t *MockTargetInfo) GetEmptyRegionsInfo(ctx context.Context) (*pdtypes.RegionsInfo, error) { + regions := make([]pdtypes.RegionInfo, t.EmptyRegionCount) + for i := 0; i < t.EmptyRegionCount; i++ { + regions[i] = pdtypes.RegionInfo{} + } + return &pdtypes.RegionsInfo{ + Count: t.EmptyRegionCount, + Regions: regions, + }, nil +} + +// IsTableEmpty checks whether the specified table on the target DB contains data or not. +// It implements the TargetInfoGetter interface. +func (t *MockTargetInfo) IsTableEmpty(ctx context.Context, schemaName string, tableName string) (*bool, error) { + var result bool + tblInfoMap, ok := t.dbTblInfoMap[schemaName] + if !ok { + result = true + return &result, nil + } + tblInfo, ok := tblInfoMap[tableName] + if !ok { + result = true + return &result, nil + } + result = (tblInfo.RowCount == 0) + return &result, nil +} + +// CheckVersionRequirements performs the check whether the target satisfies the version requirements. +// It implements the TargetInfoGetter interface. +func (t *MockTargetInfo) CheckVersionRequirements(ctx context.Context) error { + return nil +} diff --git a/br/pkg/lightning/restore/mock/mock_test.go b/br/pkg/lightning/restore/mock/mock_test.go new file mode 100644 index 0000000000000..9c5b2b0cad6e0 --- /dev/null +++ b/br/pkg/lightning/restore/mock/mock_test.go @@ -0,0 +1,200 @@ +// Copyright 2022 PingCAP, Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// See the License for the specific language governing permissions and +// limitations under the License. + +package mock + +import ( + "bytes" + "context" + "testing" + + "github.com/pingcap/tidb/br/pkg/lightning/restore" + "github.com/pingcap/tidb/parser/model" + "github.com/stretchr/testify/require" +) + +func TestMockImportSourceBasic(t *testing.T) { + mockDataMap := map[string]*MockDBSourceData{ + "db01": { + Name: "db01", + Tables: map[string]*MockTableSourceData{ + "tbl01": { + DBName: "db01", + TableName: "tbl01", + SchemaFile: &MockSourceFile{ + FileName: "/db01/tbl01/tbl01.schema.sql", + Data: []byte("CREATE TABLE db01.tbl01(id INTEGER PRIMARY KEY AUTO_INCREMENT, strval VARCHAR(64))"), + }, + }, + "tbl02": { + DBName: "db01", + TableName: "tbl02", + SchemaFile: &MockSourceFile{ + FileName: "/db01/tbl02/tbl02.schema.sql", + Data: []byte("CREATE TABLE db01.tbl02(id INTEGER PRIMARY KEY AUTO_INCREMENT, val VARCHAR(64))"), + }, + DataFiles: []*MockSourceFile{ + { + FileName: "/db01/tbl02/tbl02.data.csv", + Data: []byte("val\naaa\nbbb"), + }, + { + FileName: "/db01/tbl02/tbl02.data.sql", + Data: []byte("INSERT INTO db01.tbl02 (val) VALUES ('ccc');"), + }, + }, + }, + }, + }, + "db02": { + Name: "db02", + Tables: map[string]*MockTableSourceData{ + "tbl01": { + DBName: "db02", + TableName: "tbl01", + SchemaFile: &MockSourceFile{ + FileName: "/db02/tbl01/tbl01.schema.sql", + Data: []byte("CREATE TABLE db02.tbl01(id INTEGER PRIMARY KEY AUTO_INCREMENT, strval VARCHAR(64))"), + }, + }, + }, + }, + } + ctx, cancel := context.WithCancel(context.Background()) + defer cancel() + mockEnv, err := NewMockImportSource(mockDataMap) + require.Nil(t, err) + dbFileMetas := mockEnv.GetAllDBFileMetas() + require.Equal(t, len(mockDataMap), len(dbFileMetas), "compare db count") + for _, dbFileMeta := range dbFileMetas { + dbMockData, ok := mockDataMap[dbFileMeta.Name] + require.Truef(t, ok, "get mock data by DB: %s", dbFileMeta.Name) + require.Equalf(t, len(dbMockData.Tables), len(dbFileMeta.Tables), "compare table count: %s", dbFileMeta.Name) + for _, tblFileMeta := range dbFileMeta.Tables { + tblMockData, ok := dbMockData.Tables[tblFileMeta.Name] + require.Truef(t, ok, "get mock data by Table: %s.%s", dbFileMeta.Name, tblFileMeta.Name) + schemaFileMeta := tblFileMeta.SchemaFile + mockSchemaFile := tblMockData.SchemaFile + fileData, err := mockEnv.srcStorage.ReadFile(ctx, schemaFileMeta.FileMeta.Path) + require.Nilf(t, err, "read schema file: %s.%s", dbFileMeta.Name, tblFileMeta.Name) + require.Truef(t, bytes.Equal(mockSchemaFile.Data, fileData), "compare schema file: %s.%s", dbFileMeta.Name, tblFileMeta.Name) + require.Equalf(t, len(tblMockData.DataFiles), len(tblFileMeta.DataFiles), "compare data file count: %s.%s", dbFileMeta.Name, tblFileMeta.Name) + for i, dataFileMeta := range tblFileMeta.DataFiles { + mockDataFile := tblMockData.DataFiles[i] + fileData, err := mockEnv.srcStorage.ReadFile(ctx, dataFileMeta.FileMeta.Path) + require.Nilf(t, err, "read data file: %s.%s: %s", dbFileMeta.Name, tblFileMeta.Name, dataFileMeta.FileMeta.Path) + require.Truef(t, bytes.Equal(mockDataFile.Data, fileData), "compare data file: %s.%s: %s", dbFileMeta.Name, tblFileMeta.Name, dataFileMeta.FileMeta.Path) + } + } + } +} + +func TestMockTargetInfoBasic(t *testing.T) { + ctx, cancel := context.WithCancel(context.Background()) + defer cancel() + ti := NewMockTargetInfo() + var _ restore.TargetInfoGetter = ti + const replicaCount = 3 + const emptyRegionCount = 5 + const s01TotalSize uint64 = 10 << 30 + const s01UsedSize uint64 = 7<<30 + 500<<20 + const s02TotalSize uint64 = 50 << 30 + const s02UsedSize uint64 = 35<<30 + 700<<20 + + ti.SetSysVar("aaa", "111") + ti.SetSysVar("bbb", "222") + sysVars := ti.GetTargetSysVariablesForImport(ctx) + v, ok := sysVars["aaa"] + require.True(t, ok) + require.Equal(t, "111", v) + v, ok = sysVars["bbb"] + require.True(t, ok) + require.Equal(t, "222", v) + + ti.MaxReplicasPerRegion = replicaCount + rcfg, err := ti.GetReplicationConfig(ctx) + require.NoError(t, err) + require.Equal(t, uint64(replicaCount), rcfg.MaxReplicas) + + ti.StorageInfos = append(ti.StorageInfos, + StorageInfo{ + TotalSize: s01TotalSize, + UsedSize: s01UsedSize, + AvailableSize: s01TotalSize - s01UsedSize, + }, + StorageInfo{ + TotalSize: s02TotalSize, + UsedSize: s02UsedSize, + AvailableSize: s02TotalSize - s02UsedSize, + }, + ) + si, err := ti.GetStorageInfo(ctx) + require.NoError(t, err) + require.Equal(t, 2, si.Count) + store := si.Stores[0] + require.Equal(t, s01TotalSize, uint64(store.Status.Capacity)) + require.Equal(t, s01UsedSize, uint64(store.Status.UsedSize)) + store = si.Stores[1] + require.Equal(t, s02TotalSize, uint64(store.Status.Capacity)) + require.Equal(t, s02UsedSize, uint64(store.Status.UsedSize)) + + ti.EmptyRegionCount = emptyRegionCount + ri, err := ti.GetEmptyRegionsInfo(ctx) + require.NoError(t, err) + require.Equal(t, emptyRegionCount, ri.Count) + require.Equal(t, emptyRegionCount, len(ri.Regions)) + + ti.SetTableInfo("testdb", "testtbl1", + &MockTableInfo{ + TableModel: &model.TableInfo{ + ID: 1, + Name: model.NewCIStr("testtbl1"), + Columns: []*model.ColumnInfo{ + { + ID: 1, + Name: model.NewCIStr("c_1"), + Offset: 0, + }, + { + ID: 2, + Name: model.NewCIStr("c_2"), + Offset: 1, + }, + }, + }, + }, + ) + ti.SetTableInfo("testdb", "testtbl2", + &MockTableInfo{ + RowCount: 100, + }, + ) + tblInfos, err := ti.FetchRemoteTableModels(ctx, "testdb") + require.NoError(t, err) + require.Equal(t, 2, len(tblInfos)) + for _, tblInfo := range tblInfos { + if tblInfo == nil { + continue + } + require.Equal(t, 2, len(tblInfo.Columns)) + } + + isEmptyPtr, err := ti.IsTableEmpty(ctx, "testdb", "testtbl1") + require.NoError(t, err) + require.NotNil(t, isEmptyPtr) + require.True(t, *isEmptyPtr) + isEmptyPtr, err = ti.IsTableEmpty(ctx, "testdb", "testtbl2") + require.NoError(t, err) + require.NotNil(t, isEmptyPtr) + require.False(t, *isEmptyPtr) +} diff --git a/br/pkg/lightning/restore/restore.go b/br/pkg/lightning/restore/restore.go index a570b57ce0abf..0de2061e4a4f6 100644 --- a/br/pkg/lightning/restore/restore.go +++ b/br/pkg/lightning/restore/restore.go @@ -63,7 +63,6 @@ import ( "go.uber.org/atomic" "go.uber.org/multierr" "go.uber.org/zap" - "golang.org/x/exp/maps" ) const ( @@ -224,6 +223,8 @@ type Controller struct { diskQuotaState atomic.Int32 compactState atomic.Int32 status *LightningStatus + + preInfoGetter PreRestoreInfoGetter } type LightningStatus struct { @@ -365,6 +366,24 @@ func NewRestoreControllerWithPauser( default: metaBuilder = noopMetaMgrBuilder{} } + ioWorkers := worker.NewPool(ctx, cfg.App.IOConcurrency, "io") + targetInfoGetter := &TargetInfoGetterImpl{ + cfg: cfg, + targetDBGlue: p.Glue, + tls: tls, + backend: backend, + } + preInfoGetter, err := NewPreRestoreInfoGetter( + cfg, + p.DBMetas, + p.DumpFileStorage, + targetInfoGetter, + ioWorkers, + backend, + ) + if err != nil { + return nil, errors.Trace(err) + } rc := &Controller{ taskCtx: ctx, @@ -373,7 +392,7 @@ func NewRestoreControllerWithPauser( tableWorkers: nil, indexWorkers: nil, regionWorkers: worker.NewPool(ctx, cfg.App.RegionConcurrency, "region"), - ioWorkers: worker.NewPool(ctx, cfg.App.IOConcurrency, "io"), + ioWorkers: ioWorkers, checksumWorks: worker.NewPool(ctx, cfg.TiDB.ChecksumTableConcurrency, "checksum"), pauser: p.Pauser, backend: backend, @@ -393,6 +412,8 @@ func NewRestoreControllerWithPauser( errorMgr: errorMgr, status: p.Status, taskMgr: nil, + + preInfoGetter: preInfoGetter, } return rc, nil @@ -713,22 +734,18 @@ func (rc *Controller) restoreSchema(ctx context.Context) error { for i := 0; i < concurrency; i++ { go worker.doJob() } - getTableFunc := rc.backend.FetchRemoteTableModels - if !rc.tidbGlue.OwnsSQLExecutor() { - getTableFunc = rc.tidbGlue.GetTables - } - err := worker.makeJobs(rc.dbMetas, getTableFunc) + err := worker.makeJobs(rc.dbMetas, rc.preInfoGetter.FetchRemoteTableModels) logTask.End(zap.ErrorLevel, err) if err != nil { return err } - dbInfos, err := LoadSchemaInfo(ctx, rc.dbMetas, getTableFunc) + dbInfos, err := rc.preInfoGetter.GetAllTableStructures(ctx) if err != nil { return errors.Trace(err) } // For local backend, we need DBInfo.ID to operate the global autoid allocator. - if rc.isLocalBackend() { + if isLocalBackend(rc.cfg) { dbs, err := tikv.FetchRemoteDBModelsFromTLS(ctx, rc.tls) if err != nil { return errors.Trace(err) @@ -742,11 +759,7 @@ func (rc *Controller) restoreSchema(ctx context.Context) error { } } rc.dbInfos = dbInfos - - sysVars := ObtainImportantVariables(ctx, rc.tidbGlue.GetSQLExecutor(), !rc.isTiDBBackend()) - // override by manually set vars - maps.Copy(sysVars, rc.cfg.TiDB.Vars) - rc.sysVars = sysVars + rc.sysVars = rc.preInfoGetter.GetTargetSysVariablesForImport(ctx) return nil } @@ -1398,7 +1411,7 @@ func (rc *Controller) restoreTables(ctx context.Context) (finalErr error) { postProgress := func() error { return nil } var kvStore tidbkv.Storage - if rc.isLocalBackend() { + if isLocalBackend(rc.cfg) { var ( restoreFn pdutil.UndoFunc err error @@ -1654,7 +1667,7 @@ func (tr *TableRestore) restoreTable( versionInfo := version.ParseServerInfo(versionStr) // "show table next_row_id" is only available after tidb v4.0.0 - if versionInfo.ServerVersion.Major >= 4 && rc.isLocalBackend() { + if versionInfo.ServerVersion.Major >= 4 && isLocalBackend(rc.cfg) { // first, insert a new-line into meta table if err = metaMgr.InitTableMeta(ctx); err != nil { return false, err @@ -1764,7 +1777,7 @@ func (rc *Controller) switchToNormalMode(ctx context.Context) { func (rc *Controller) switchTiKVMode(ctx context.Context, mode sstpb.SwitchMode) { // // tidb backend don't need to switch tikv to import mode - if rc.isTiDBBackend() { + if isTiDBBackend(rc.cfg) { return } @@ -1883,7 +1896,7 @@ func (rc *Controller) enforceDiskQuota(ctx context.Context) { func (rc *Controller) setGlobalVariables(ctx context.Context) error { // skip for tidb backend to be compatible with MySQL - if rc.isTiDBBackend() { + if isTiDBBackend(rc.cfg) { return nil } // set new collation flag base on tidb config @@ -1932,12 +1945,12 @@ func (rc *Controller) cleanCheckpoints(ctx context.Context) error { return nil } -func (rc *Controller) isLocalBackend() bool { - return rc.cfg.TikvImporter.Backend == config.BackendLocal +func isLocalBackend(cfg *config.Config) bool { + return cfg.TikvImporter.Backend == config.BackendLocal } -func (rc *Controller) isTiDBBackend() bool { - return rc.cfg.TikvImporter.Backend == config.BackendTiDB +func isTiDBBackend(cfg *config.Config) bool { + return cfg.TikvImporter.Backend == config.BackendTiDB } // preCheckRequirements checks @@ -1947,6 +1960,8 @@ func (rc *Controller) isTiDBBackend() bool { // 4. Lightning configuration // before restore tables start. func (rc *Controller) preCheckRequirements(ctx context.Context) error { + ctx = WithPreInfoGetterSysVarsCache(ctx, rc.sysVars) + ctx = WithPreInfoGetterTableStructuresCache(ctx, rc.dbInfos) if err := rc.DataCheck(ctx); err != nil { return errors.Trace(err) } @@ -1968,11 +1983,22 @@ func (rc *Controller) preCheckRequirements(ctx context.Context) error { // We still need to sample source data even if this task has existed, because we need to judge whether the // source is in order as row key to decide how to sort local data. - source, err := rc.estimateSourceData(ctx) + estimatedSizeResult, err := rc.preInfoGetter.EstimateSourceDataSize(ctx) if err != nil { return common.ErrCheckDataSource.Wrap(err).GenWithStackByArgs() } - if rc.isLocalBackend() { + estimatedDataSizeWithIndex := estimatedSizeResult.SizeWithIndex + + // Do not import with too large concurrency because these data may be all unsorted. + if estimatedSizeResult.HasUnsortedBigTables { + if rc.cfg.App.TableConcurrency > rc.cfg.App.IndexConcurrency { + rc.cfg.App.TableConcurrency = rc.cfg.App.IndexConcurrency + } + } + if rc.status != nil { + rc.status.TotalFileSize.Store(estimatedSizeResult.SizeWithoutIndex) + } + if isLocalBackend(rc.cfg) { pdController, err := pdutil.NewPdController(ctx, rc.cfg.TiDB.PdAddr, rc.tls.TLSConfig(), rc.tls.ToPDSecurityOption()) if err != nil { @@ -1986,7 +2012,7 @@ func (rc *Controller) preCheckRequirements(ctx context.Context) error { return common.ErrMetaMgrUnknown.Wrap(err).GenWithStackByArgs() } if !taskExist { - if err = rc.taskMgr.InitTask(ctx, source); err != nil { + if err = rc.taskMgr.InitTask(ctx, estimatedDataSizeWithIndex); err != nil { return common.ErrMetaMgrUnknown.Wrap(err).GenWithStackByArgs() } } @@ -2002,11 +2028,11 @@ func (rc *Controller) preCheckRequirements(ctx context.Context) error { needCheck = taskCheckpoints == nil } if needCheck { - err = rc.localResource(ctx, source) + err = rc.localResource(ctx, estimatedDataSizeWithIndex) if err != nil { return common.ErrCheckLocalResource.Wrap(err).GenWithStackByArgs() } - if err := rc.clusterResource(ctx, source); err != nil { + if err := rc.clusterResource(ctx, estimatedDataSizeWithIndex); err != nil { if err1 := rc.taskMgr.CleanupTask(ctx); err1 != nil { log.FromContext(ctx).Warn("cleanup task failed", zap.Error(err1)) return common.ErrMetaMgrUnknown.Wrap(err).GenWithStackByArgs() @@ -2335,7 +2361,7 @@ func (cr *chunkRestore) deliverLoop( // can safely update current checkpoint. failpoint.Inject("LocalBackendSaveCheckpoint", func() { - if !rc.isLocalBackend() && (dataChecksum.SumKVS() != 0 || indexChecksum.SumKVS() != 0) { + if !isLocalBackend(rc.cfg) && (dataChecksum.SumKVS() != 0 || indexChecksum.SumKVS() != 0) { // No need to save checkpoint if nothing was delivered. saveCheckpoint(rc, t, engineID, cr.chunk) } diff --git a/br/pkg/lightning/restore/restore_schema_test.go b/br/pkg/lightning/restore/restore_schema_test.go index d7a585f0c10a3..a0f962abec6d2 100644 --- a/br/pkg/lightning/restore/restore_schema_test.go +++ b/br/pkg/lightning/restore/restore_schema_test.go @@ -42,10 +42,12 @@ import ( type restoreSchemaSuite struct { suite.Suite - ctx context.Context - rc *Controller - controller *gomock.Controller - tableInfos []*model.TableInfo + ctx context.Context + rc *Controller + controller *gomock.Controller + tableInfos []*model.TableInfo + infoGetter *PreRestoreInfoGetterImpl + targetInfoGetter *TargetInfoGetterImpl } func TestRestoreSchemaSuite(t *testing.T) { @@ -103,14 +105,29 @@ func (s *restoreSchemaSuite) SetupSuite() { config.Mydumper.CharacterSet = "utf8mb4" config.App.RegionConcurrency = 8 mydumpLoader, err := mydump.NewMyDumpLoaderWithStore(ctx, config, store) - require.NoError(s.T(), err) + s.Require().NoError(err) + + dbMetas := mydumpLoader.GetDatabases() + targetInfoGetter := &TargetInfoGetterImpl{ + cfg: config, + } + preInfoGetter := &PreRestoreInfoGetterImpl{ + cfg: config, + srcStorage: store, + targetInfoGetter: targetInfoGetter, + dbMetas: dbMetas, + } + preInfoGetter.Init() s.rc = &Controller{ checkTemplate: NewSimpleTemplate(), cfg: config, store: store, - dbMetas: mydumpLoader.GetDatabases(), + dbMetas: dbMetas, checkpointsDB: &checkpoints.NullCheckpointsDB{}, + preInfoGetter: preInfoGetter, } + s.infoGetter = preInfoGetter + s.targetInfoGetter = targetInfoGetter } //nolint:interfacer // change test case signature might cause Check failed to find this test case? @@ -122,7 +139,9 @@ func (s *restoreSchemaSuite) SetupTest() { AnyTimes(). Return(s.tableInfos, nil) mockBackend.EXPECT().Close() - s.rc.backend = backend.MakeBackend(mockBackend) + theBackend := backend.MakeBackend(mockBackend) + s.rc.backend = theBackend + s.targetInfoGetter.backend = theBackend mockDB, sqlMock, err := sqlmock.New() require.NoError(s.T(), err) @@ -140,6 +159,7 @@ func (s *restoreSchemaSuite) SetupTest() { GetParser(). AnyTimes(). Return(parser) + s.targetInfoGetter.targetDBGlue = mockTiDBGlue s.rc.tidbGlue = mockTiDBGlue } @@ -152,6 +172,7 @@ func (s *restoreSchemaSuite) TearDownTest() { AnyTimes(). Return(exec) s.rc.tidbGlue = mockTiDBGlue + s.targetInfoGetter.targetDBGlue = mockTiDBGlue s.rc.Close() s.controller.Finish() @@ -213,6 +234,7 @@ func (s *restoreSchemaSuite) TestRestoreSchemaFailed() { AnyTimes(). Return(parser) s.rc.tidbGlue = mockTiDBGlue + s.targetInfoGetter.targetDBGlue = mockTiDBGlue err = s.rc.restoreSchema(s.ctx) require.Error(s.T(), err) require.True(s.T(), errors.ErrorEqual(err, injectErr)) @@ -268,6 +290,7 @@ func (s *restoreSchemaSuite) TestRestoreSchemaContextCancel() { AnyTimes(). Return(parser) s.rc.tidbGlue = mockTiDBGlue + s.targetInfoGetter.targetDBGlue = mockTiDBGlue err = s.rc.restoreSchema(childCtx) cancel() require.Error(s.T(), err) diff --git a/br/pkg/lightning/restore/restore_test.go b/br/pkg/lightning/restore/restore_test.go index e4d4420ead983..6c210b052d1dd 100644 --- a/br/pkg/lightning/restore/restore_test.go +++ b/br/pkg/lightning/restore/restore_test.go @@ -29,6 +29,7 @@ import ( "github.com/pingcap/tidb/br/pkg/lightning/errormanager" "github.com/pingcap/tidb/br/pkg/lightning/glue" "github.com/pingcap/tidb/br/pkg/lightning/log" + "github.com/pingcap/tidb/br/pkg/lightning/mydump" "github.com/pingcap/tidb/br/pkg/version/build" "github.com/pingcap/tidb/ddl" "github.com/pingcap/tidb/parser" @@ -213,6 +214,15 @@ func TestPreCheckFailed(t *testing.T) { require.NoError(t, err) g := glue.NewExternalTiDBGlue(db, mysql.ModeNone) + targetInfoGetter := &TargetInfoGetterImpl{ + cfg: cfg, + targetDBGlue: g, + } + preInfoGetter := &PreRestoreInfoGetterImpl{ + cfg: cfg, + targetInfoGetter: targetInfoGetter, + dbMetas: make([]*mydump.MDDatabaseMeta, 0), + } ctl := &Controller{ cfg: cfg, saveCpCh: make(chan saveCp), @@ -221,6 +231,7 @@ func TestPreCheckFailed(t *testing.T) { checkTemplate: NewSimpleTemplate(), tidbGlue: g, errorMgr: errormanager.New(nil, cfg, log.L()), + preInfoGetter: preInfoGetter, } mock.ExpectBegin() diff --git a/br/pkg/lightning/restore/table_restore.go b/br/pkg/lightning/restore/table_restore.go index adad30e5eaa42..b32c5e82b7345 100644 --- a/br/pkg/lightning/restore/table_restore.go +++ b/br/pkg/lightning/restore/table_restore.go @@ -619,14 +619,14 @@ func (tr *TableRestore) restoreEngine( // in local mode, this check-point make no sense, because we don't do flush now, // so there may be data lose if exit at here. So we don't write this checkpoint // here like other mode. - if !rc.isLocalBackend() { + if !isLocalBackend(rc.cfg) { if saveCpErr := rc.saveStatusCheckpoint(ctx, tr.tableName, engineID, err, checkpoints.CheckpointStatusAllWritten); saveCpErr != nil { return nil, errors.Trace(firstErr(err, saveCpErr)) } } if err != nil { // if process is canceled, we should flush all chunk checkpoints for local backend - if rc.isLocalBackend() && common.IsContextCanceledError(err) { + if isLocalBackend(rc.cfg) && common.IsContextCanceledError(err) { // ctx is canceled, so to avoid Close engine failed, we use `context.Background()` here if _, err2 := dataEngine.Close(context.Background(), dataEngineCfg); err2 != nil { log.FromContext(ctx).Warn("flush all chunk checkpoints failed before manually exits", zap.Error(err2)) @@ -642,7 +642,7 @@ func (tr *TableRestore) restoreEngine( closedDataEngine, err := dataEngine.Close(ctx, dataEngineCfg) // For local backend, if checkpoint is enabled, we must flush index engine to avoid data loss. // this flush action impact up to 10% of the performance, so we only do it if necessary. - if err == nil && rc.cfg.Checkpoint.Enable && rc.isLocalBackend() { + if err == nil && rc.cfg.Checkpoint.Enable && isLocalBackend(rc.cfg) { if err = indexEngine.Flush(ctx); err != nil { return nil, errors.Trace(err) } diff --git a/br/pkg/lightning/restore/table_restore_test.go b/br/pkg/lightning/restore/table_restore_test.go index fb3a82adaf69a..de58ea4a39d43 100644 --- a/br/pkg/lightning/restore/table_restore_test.go +++ b/br/pkg/lightning/restore/table_restore_test.go @@ -47,6 +47,7 @@ import ( "github.com/pingcap/tidb/br/pkg/lightning/log" "github.com/pingcap/tidb/br/pkg/lightning/metric" "github.com/pingcap/tidb/br/pkg/lightning/mydump" + restoremock "github.com/pingcap/tidb/br/pkg/lightning/restore/mock" "github.com/pingcap/tidb/br/pkg/lightning/verification" "github.com/pingcap/tidb/br/pkg/lightning/web" "github.com/pingcap/tidb/br/pkg/lightning/worker" @@ -909,19 +910,34 @@ func (s *tableRestoreSuite) TestTableRestoreMetrics() { cpDB := checkpoints.NewNullCheckpointsDB() g := mock.NewMockGlue(controller) - rc := &Controller{ - cfg: cfg, - dbMetas: []*mydump.MDDatabaseMeta{ - { - Name: s.tableInfo.DB, - Tables: []*mydump.MDTableMeta{s.tableMeta}, - }, - }, - dbInfos: map[string]*checkpoints.TidbDBInfo{ - s.tableInfo.DB: s.dbInfo, + dbMetas := []*mydump.MDDatabaseMeta{ + { + Name: s.tableInfo.DB, + Tables: []*mydump.MDTableMeta{s.tableMeta}, }, + } + ioWorkers := worker.NewPool(ctx, 5, "io") + targetInfoGetter := &TargetInfoGetterImpl{ + cfg: cfg, + targetDBGlue: g, + } + preInfoGetter := &PreRestoreInfoGetterImpl{ + cfg: cfg, + dbMetas: dbMetas, + targetInfoGetter: targetInfoGetter, + srcStorage: s.store, + ioWorkers: ioWorkers, + } + preInfoGetter.Init() + dbInfos := map[string]*checkpoints.TidbDBInfo{ + s.tableInfo.DB: s.dbInfo, + } + rc := &Controller{ + cfg: cfg, + dbMetas: dbMetas, + dbInfos: dbInfos, tableWorkers: worker.NewPool(ctx, 6, "table"), - ioWorkers: worker.NewPool(ctx, 5, "io"), + ioWorkers: ioWorkers, indexWorkers: worker.NewPool(ctx, 2, "index"), regionWorkers: worker.NewPool(ctx, 10, "region"), checksumWorks: worker.NewPool(ctx, 2, "region"), @@ -937,6 +953,7 @@ func (s *tableRestoreSuite) TestTableRestoreMetrics() { metaMgrBuilder: noopMetaMgrBuilder{}, errorMgr: errormanager.New(nil, cfg, log.L()), taskMgr: noopTaskMetaMgr{}, + preInfoGetter: preInfoGetter, } go func() { for scp := range chptCh { @@ -1097,7 +1114,22 @@ func (s *tableRestoreSuite) TestCheckClusterResource() { url := strings.TrimPrefix(server.URL, "https://") cfg := &config.Config{TiDB: config.DBStore{PdAddr: url}} - rc := &Controller{cfg: cfg, tls: tls, store: mockStore, checkTemplate: template} + targetInfoGetter := &TargetInfoGetterImpl{ + cfg: cfg, + tls: tls, + } + preInfoGetter := &PreRestoreInfoGetterImpl{ + cfg: cfg, + targetInfoGetter: targetInfoGetter, + srcStorage: mockStore, + } + rc := &Controller{ + cfg: cfg, + tls: tls, + store: mockStore, + checkTemplate: template, + preInfoGetter: preInfoGetter, + } var sourceSize int64 err = rc.store.WalkDir(ctx, &storage.WalkOption{}, func(path string, size int64) error { sourceSize += size @@ -1224,9 +1256,27 @@ func (s *tableRestoreSuite) TestCheckClusterRegion() { url := strings.TrimPrefix(server.URL, "https://") cfg := &config.Config{TiDB: config.DBStore{PdAddr: url}} - rc := &Controller{cfg: cfg, tls: tls, taskMgr: mockTaskMetaMgr{}, checkTemplate: template} - err := rc.checkClusterRegion(context.Background()) + targetInfoGetter := &TargetInfoGetterImpl{ + cfg: cfg, + tls: tls, + } + preInfoGetter := &PreRestoreInfoGetterImpl{ + cfg: cfg, + targetInfoGetter: targetInfoGetter, + dbMetas: []*mydump.MDDatabaseMeta{}, + } + rc := &Controller{ + cfg: cfg, + tls: tls, + taskMgr: mockTaskMetaMgr{}, + checkTemplate: template, + preInfoGetter: preInfoGetter, + dbInfos: make(map[string]*checkpoints.TidbDBInfo), + } + + ctx := WithPreInfoGetterTableStructuresCache(context.Background(), rc.dbInfos) + err := rc.checkClusterRegion(ctx) require.NoError(s.T(), err) require.Equal(s.T(), ca.expectErrorCnt, template.FailedCount(Critical)) require.Equal(s.T(), ca.expectResult, template.Success()) @@ -1333,32 +1383,48 @@ func (s *tableRestoreSuite) TestEstimate() { s.cfg.TikvImporter.Backend = config.BackendLocal template := NewSimpleTemplate() + dbMetas := []*mydump.MDDatabaseMeta{ + { + Name: "db1", + Tables: []*mydump.MDTableMeta{s.tableMeta}, + }, + } + dbInfos := map[string]*checkpoints.TidbDBInfo{ + "db1": s.dbInfo, + } + ioWorkers := worker.NewPool(context.Background(), 1, "io") + mockTarget := restoremock.NewMockTargetInfo() + + preInfoGetter := &PreRestoreInfoGetterImpl{ + cfg: s.cfg, + srcStorage: s.store, + encBuilder: importer, + ioWorkers: ioWorkers, + dbMetas: dbMetas, + targetInfoGetter: mockTarget, + } + preInfoGetter.Init() rc := &Controller{ cfg: s.cfg, checkTemplate: template, store: s.store, backend: importer, - dbMetas: []*mydump.MDDatabaseMeta{ - { - Name: "db1", - Tables: []*mydump.MDTableMeta{s.tableMeta}, - }, - }, - dbInfos: map[string]*checkpoints.TidbDBInfo{ - "db1": s.dbInfo, - }, - ioWorkers: worker.NewPool(context.Background(), 1, "io"), + dbMetas: dbMetas, + dbInfos: dbInfos, + ioWorkers: ioWorkers, + preInfoGetter: preInfoGetter, } - source, err := rc.estimateSourceData(ctx) + ctx = WithPreInfoGetterTableStructuresCache(ctx, dbInfos) + source, _, _, err := rc.estimateSourceData(ctx) // Because this file is small than region split size so we does not sample it. require.NoError(s.T(), err) require.Equal(s.T(), s.tableMeta.TotalSize, source) s.tableMeta.TotalSize = int64(config.SplitRegionSize) - source, err = rc.estimateSourceData(ctx) + source, _, _, err = rc.estimateSourceData(ctx) require.NoError(s.T(), err) require.Greater(s.T(), source, s.tableMeta.TotalSize) rc.cfg.TikvImporter.Backend = config.BackendTiDB - source, err = rc.estimateSourceData(ctx) + source, _, _, err = rc.estimateSourceData(ctx) require.NoError(s.T(), err) require.Equal(s.T(), s.tableMeta.TotalSize, source) } @@ -1758,13 +1824,21 @@ func (s *tableRestoreSuite) TestSchemaIsValid() { IgnoreColumns: ca.ignoreColumns, }, } + ioWorkers := worker.NewPool(context.Background(), 1, "io") + preInfoGetter := &PreRestoreInfoGetterImpl{ + cfg: cfg, + srcStorage: mockStore, + ioWorkers: ioWorkers, + } rc := &Controller{ cfg: cfg, checkTemplate: template, store: mockStore, dbInfos: ca.dbInfos, - ioWorkers: worker.NewPool(context.Background(), 1, "io"), + ioWorkers: ioWorkers, + preInfoGetter: preInfoGetter, } + ctx = WithPreInfoGetterTableStructuresCache(ctx, ca.dbInfos) msgs, err := rc.SchemaIsValid(ctx, ca.tableMeta) require.NoError(s.T(), err) require.Len(s.T(), msgs, ca.MsgNum) @@ -1804,36 +1878,45 @@ func (s *tableRestoreSuite) TestGBKEncodedSchemaIsValid() { err = mockStore.WriteFile(ctx, csvFile, []byte(csvContent)) require.NoError(s.T(), err) - rc := &Controller{ - cfg: cfg, - checkTemplate: NewSimpleTemplate(), - store: mockStore, - dbInfos: map[string]*checkpoints.TidbDBInfo{ - "db1": { - Name: "db1", - Tables: map[string]*checkpoints.TidbTableInfo{ - "gbk_table": { - ID: 1, - DB: "db1", - Name: "gbk_table", - Core: &model.TableInfo{ - Columns: []*model.ColumnInfo{ - { - Name: model.NewCIStr("colA"), - FieldType: types.NewFieldTypeBuilder().SetType(0).SetFlag(1).Build(), - }, - { - Name: model.NewCIStr("colB"), - FieldType: types.NewFieldTypeBuilder().SetType(0).SetFlag(1).Build(), - }, + dbInfos := map[string]*checkpoints.TidbDBInfo{ + "db1": { + Name: "db1", + Tables: map[string]*checkpoints.TidbTableInfo{ + "gbk_table": { + ID: 1, + DB: "db1", + Name: "gbk_table", + Core: &model.TableInfo{ + Columns: []*model.ColumnInfo{ + { + Name: model.NewCIStr("colA"), + FieldType: types.NewFieldTypeBuilder().SetType(0).SetFlag(1).Build(), + }, + { + Name: model.NewCIStr("colB"), + FieldType: types.NewFieldTypeBuilder().SetType(0).SetFlag(1).Build(), }, }, }, }, }, }, - ioWorkers: worker.NewPool(ctx, 1, "io"), } + ioWorkers := worker.NewPool(ctx, 1, "io") + preInfoGetter := &PreRestoreInfoGetterImpl{ + cfg: cfg, + srcStorage: mockStore, + ioWorkers: ioWorkers, + } + rc := &Controller{ + cfg: cfg, + checkTemplate: NewSimpleTemplate(), + store: mockStore, + dbInfos: dbInfos, + ioWorkers: ioWorkers, + preInfoGetter: preInfoGetter, + } + ctx = WithPreInfoGetterTableStructuresCache(ctx, dbInfos) msgs, err := rc.SchemaIsValid(ctx, &mydump.MDTableMeta{ DB: "db1", Name: "gbk_table", diff --git a/br/pkg/lightning/tikv/BUILD.bazel b/br/pkg/lightning/tikv/BUILD.bazel index 8de419abe3389..3810e46578a0b 100644 --- a/br/pkg/lightning/tikv/BUILD.bazel +++ b/br/pkg/lightning/tikv/BUILD.bazel @@ -26,6 +26,7 @@ go_library( go_test( name = "tikv_test", srcs = ["tikv_test.go"], + flaky = True, deps = [ ":tikv", "//br/pkg/lightning/common", diff --git a/br/pkg/lightning/verification/BUILD.bazel b/br/pkg/lightning/verification/BUILD.bazel index daea16acd40dc..e35af950a194b 100644 --- a/br/pkg/lightning/verification/BUILD.bazel +++ b/br/pkg/lightning/verification/BUILD.bazel @@ -14,6 +14,7 @@ go_library( go_test( name = "verification_test", srcs = ["checksum_test.go"], + flaky = True, deps = [ ":verification", "//br/pkg/lightning/common", diff --git a/br/pkg/lightning/worker/BUILD.bazel b/br/pkg/lightning/worker/BUILD.bazel index 77de52ee964cc..320450296f2e2 100644 --- a/br/pkg/lightning/worker/BUILD.bazel +++ b/br/pkg/lightning/worker/BUILD.bazel @@ -11,6 +11,7 @@ go_library( go_test( name = "worker_test", srcs = ["worker_test.go"], + flaky = True, deps = [ ":worker", "@com_github_stretchr_testify//require", diff --git a/br/pkg/lightning/worker/worker.go b/br/pkg/lightning/worker/worker.go index 73bab3d53f521..9e4b4cbe603f0 100644 --- a/br/pkg/lightning/worker/worker.go +++ b/br/pkg/lightning/worker/worker.go @@ -21,6 +21,7 @@ import ( "github.com/pingcap/tidb/br/pkg/lightning/metric" ) +// Pool is the worker pool. type Pool struct { limit int workers chan *Worker @@ -28,10 +29,12 @@ type Pool struct { metrics *metric.Metrics } +// Worker is the worker struct. type Worker struct { ID int64 } +// NewPool creates a new worker pool. func NewPool(ctx context.Context, limit int, name string) *Pool { workers := make(chan *Worker, limit) for i := 0; i < limit; i++ { @@ -50,6 +53,7 @@ func NewPool(ctx context.Context, limit int, name string) *Pool { } } +// Apply gets a worker from the pool. func (pool *Pool) Apply() *Worker { start := time.Now() worker := <-pool.workers @@ -60,6 +64,7 @@ func (pool *Pool) Apply() *Worker { return worker } +// Recycle puts a worker back to the pool. func (pool *Pool) Recycle(worker *Worker) { if worker == nil { panic("invalid restore worker") @@ -70,6 +75,7 @@ func (pool *Pool) Recycle(worker *Worker) { } } +// HasWorker returns whether the pool has worker. func (pool *Pool) HasWorker() bool { return len(pool.workers) > 0 } diff --git a/br/pkg/logutil/BUILD.bazel b/br/pkg/logutil/BUILD.bazel index 1443a6bfd4639..3601e6f8bf41f 100644 --- a/br/pkg/logutil/BUILD.bazel +++ b/br/pkg/logutil/BUILD.bazel @@ -28,6 +28,7 @@ go_library( go_test( name = "logutil_test", srcs = ["logging_test.go"], + flaky = True, deps = [ ":logutil", "//br/pkg/errors", diff --git a/br/pkg/logutil/logging.go b/br/pkg/logutil/logging.go index 354b900e5605a..028cfc00e5f43 100644 --- a/br/pkg/logutil/logging.go +++ b/br/pkg/logutil/logging.go @@ -105,6 +105,7 @@ func (t zapStreamBackupTaskInfo) MarshalLogObject(enc zapcore.ObjectEncoder) err return nil } +// StreamBackupTaskInfo makes the zap fields for a stream backup task info. func StreamBackupTaskInfo(t *backuppb.StreamBackupTaskInfo) zap.Field { return zap.Object("streamTaskInfo", zapStreamBackupTaskInfo{t}) } @@ -271,7 +272,7 @@ func Redact(field zap.Field) zap.Field { return field } -// StringifyRanges wrappes the key range into a stringer. +// StringifyKeys wraps the key range into a stringer. type StringifyKeys []kv.KeyRange func (kr StringifyKeys) String() string { @@ -281,18 +282,27 @@ func (kr StringifyKeys) String() string { if i > 0 { sb.WriteString(", ") } - sb.WriteString("[") - sb.WriteString(redact.Key(rng.StartKey)) - sb.WriteString(", ") - var endKey string - if len(rng.EndKey) == 0 { - endKey = "inf" - } else { - endKey = redact.Key(rng.EndKey) - } - sb.WriteString(redact.String(endKey)) - sb.WriteString(")") + sb.WriteString(StringifyRange(rng).String()) } sb.WriteString("}") return sb.String() } + +// StringifyRange is the wrapper for displaying a key range. +type StringifyRange kv.KeyRange + +func (rng StringifyRange) String() string { + sb := new(strings.Builder) + sb.WriteString("[") + sb.WriteString(redact.Key(rng.StartKey)) + sb.WriteString(", ") + var endKey string + if len(rng.EndKey) == 0 { + endKey = "inf" + } else { + endKey = redact.Key(rng.EndKey) + } + sb.WriteString(redact.String(endKey)) + sb.WriteString(")") + return sb.String() +} diff --git a/br/pkg/membuf/BUILD.bazel b/br/pkg/membuf/BUILD.bazel index 43bf5d6da93dc..e6ab46860b93f 100644 --- a/br/pkg/membuf/BUILD.bazel +++ b/br/pkg/membuf/BUILD.bazel @@ -11,5 +11,6 @@ go_test( name = "membuf_test", srcs = ["buffer_test.go"], embed = [":membuf"], + flaky = True, deps = ["@com_github_stretchr_testify//require"], ) diff --git a/br/pkg/membuf/buffer.go b/br/pkg/membuf/buffer.go index 49ffbae8afdf3..85493fdd07f7e 100644 --- a/br/pkg/membuf/buffer.go +++ b/br/pkg/membuf/buffer.go @@ -115,6 +115,7 @@ func (p *Pool) NewBuffer() *Buffer { return &Buffer{pool: p, bufs: make([][]byte, 0, 128), curBufIdx: -1} } +// Destroy frees all buffers. func (p *Pool) Destroy() { close(p.blockCache) for b := range p.blockCache { diff --git a/br/pkg/metautil/BUILD.bazel b/br/pkg/metautil/BUILD.bazel index 4a325fbe49c13..058a0543733fd 100644 --- a/br/pkg/metautil/BUILD.bazel +++ b/br/pkg/metautil/BUILD.bazel @@ -32,6 +32,7 @@ go_test( "metafile_test.go", ], embed = [":metautil"], + flaky = True, deps = [ "//br/pkg/mock/storage", "//testkit/testsetup", diff --git a/br/pkg/metautil/metafile.go b/br/pkg/metautil/metafile.go index cead8486bc7bc..be6d51305f674 100644 --- a/br/pkg/metautil/metafile.go +++ b/br/pkg/metautil/metafile.go @@ -55,10 +55,12 @@ const ( MetaV2 ) +// CreateMetaFileName is the name of meta file. func CreateMetaFileName(ts uint64) string { return fmt.Sprintf("%s_%d", MetaFile, ts) } +// Encrypt encrypts the content according to CipherInfo. func Encrypt(content []byte, cipher *backuppb.CipherInfo) (encryptedContent, iv []byte, err error) { if len(content) == 0 || cipher == nil { return content, iv, nil @@ -83,6 +85,7 @@ func Encrypt(content []byte, cipher *backuppb.CipherInfo) (encryptedContent, iv } } +// Decrypt decrypts the content according to CipherInfo and IV. func Decrypt(content []byte, cipher *backuppb.CipherInfo, iv []byte) ([]byte, error) { if len(content) == 0 || cipher == nil { return content, nil @@ -222,7 +225,7 @@ func (reader *MetaReader) readDataFiles(ctx context.Context, output func(*backup } // ArchiveSize return the size of Archive data -func (reader *MetaReader) ArchiveSize(ctx context.Context, files []*backuppb.File) uint64 { +func (*MetaReader) ArchiveSize(_ context.Context, files []*backuppb.File) uint64 { total := uint64(0) for _, file := range files { total += file.Size_ @@ -424,9 +427,7 @@ func (op AppendOp) name() string { } // appends item to MetaFile -func (op AppendOp) appendFile(a *backuppb.MetaFile, b interface{}) (int, int) { - size := 0 - itemCount := 0 +func (op AppendOp) appendFile(a *backuppb.MetaFile, b interface{}) (size int, itemCount int) { switch op { case AppendMetaFile: a.MetaFiles = append(a.MetaFiles, b.(*backuppb.File)) @@ -449,7 +450,6 @@ func (op AppendOp) appendFile(a *backuppb.MetaFile, b interface{}) (int, int) { itemCount++ size += len(b.([]byte)) } - return size, itemCount } @@ -554,7 +554,7 @@ func (writer *MetaWriter) Update(f func(m *backuppb.BackupMeta)) { } // Send sends the item to buffer. -func (writer *MetaWriter) Send(m interface{}, op AppendOp) error { +func (writer *MetaWriter) Send(m interface{}, _ AppendOp) error { select { case writer.metasCh <- m: // receive an error from StartWriteMetasAsync @@ -665,7 +665,7 @@ func (writer *MetaWriter) FlushBackupMeta(ctx context.Context) error { // fillMetasV1 keep the compatibility for old version. // for MetaV1, just put in backupMeta -func (writer *MetaWriter) fillMetasV1(ctx context.Context, op AppendOp) { +func (writer *MetaWriter) fillMetasV1(_ context.Context, op AppendOp) { switch op { case AppendDataFile: writer.backupMeta.Files = writer.metafiles.root.DataFiles @@ -717,7 +717,7 @@ func (writer *MetaWriter) flushMetasV2(ctx context.Context, op AppendOp) error { name := op.name() writer.metafileSizes[name] += writer.metafiles.size // Flush metafiles to external storage. - writer.metafileSeqNum["metafiles"] += 1 + writer.metafileSeqNum["metafiles"]++ fname := fmt.Sprintf("backupmeta.%s.%09d", name, writer.metafileSeqNum["metafiles"]) encyptedContent, iv, err := Encrypt(content, writer.cipher) diff --git a/br/pkg/mock/BUILD.bazel b/br/pkg/mock/BUILD.bazel index 04cbf93a6dd5b..068f7ca20f212 100644 --- a/br/pkg/mock/BUILD.bazel +++ b/br/pkg/mock/BUILD.bazel @@ -53,6 +53,7 @@ go_library( go_test( name = "mock_test", srcs = ["mock_cluster_test.go"], + flaky = True, deps = [ ":mock", "@com_github_stretchr_testify//require", diff --git a/br/pkg/mock/mockid/mockid.go b/br/pkg/mock/mockid/mockid.go index bd645e457d01a..a07de0c2c6c03 100644 --- a/br/pkg/mock/mockid/mockid.go +++ b/br/pkg/mock/mockid/mockid.go @@ -32,6 +32,6 @@ func (alloc *IDAllocator) Alloc() (uint64, error) { } // Rebase implements the IDAllocator interface. -func (alloc *IDAllocator) Rebase() error { +func (*IDAllocator) Rebase() error { return nil } diff --git a/br/pkg/mock/s3iface.go b/br/pkg/mock/s3iface.go index e8151f124b1c5..46c7d1ad57df8 100644 --- a/br/pkg/mock/s3iface.go +++ b/br/pkg/mock/s3iface.go @@ -1,7 +1,7 @@ // Code generated by MockGen. DO NOT EDIT. // Source: github.com/aws/aws-sdk-go/service/s3/s3iface (interfaces: S3API) -// $ mockgen -package mock github.com/aws/aws-sdk-go/service/s3/s3iface S3API > pkg/mock/s3iface.go +// $ mockgen -package mock github.com/aws/aws-sdk-go/service/s3/s3iface S3API > br/pkg/mock/s3iface.go // Package mock is a generated GoMock package. package mock @@ -15,30 +15,30 @@ import ( gomock "github.com/golang/mock/gomock" ) -// MockS3API is a mock of S3API interface +// MockS3API is a mock of S3API interface. type MockS3API struct { ctrl *gomock.Controller recorder *MockS3APIMockRecorder } -// MockS3APIMockRecorder is the mock recorder for MockS3API +// MockS3APIMockRecorder is the mock recorder for MockS3API. type MockS3APIMockRecorder struct { mock *MockS3API } -// NewMockS3API creates a new mock instance +// NewMockS3API creates a new mock instance. func NewMockS3API(ctrl *gomock.Controller) *MockS3API { mock := &MockS3API{ctrl: ctrl} mock.recorder = &MockS3APIMockRecorder{mock} return mock } -// EXPECT returns an object that allows the caller to indicate expected use +// EXPECT returns an object that allows the caller to indicate expected use. func (m *MockS3API) EXPECT() *MockS3APIMockRecorder { return m.recorder } -// AbortMultipartUpload mocks base method +// AbortMultipartUpload mocks base method. func (m *MockS3API) AbortMultipartUpload(arg0 *s3.AbortMultipartUploadInput) (*s3.AbortMultipartUploadOutput, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "AbortMultipartUpload", arg0) @@ -47,13 +47,13 @@ func (m *MockS3API) AbortMultipartUpload(arg0 *s3.AbortMultipartUploadInput) (*s return ret0, ret1 } -// AbortMultipartUpload indicates an expected call of AbortMultipartUpload +// AbortMultipartUpload indicates an expected call of AbortMultipartUpload. func (mr *MockS3APIMockRecorder) AbortMultipartUpload(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AbortMultipartUpload", reflect.TypeOf((*MockS3API)(nil).AbortMultipartUpload), arg0) } -// AbortMultipartUploadRequest mocks base method +// AbortMultipartUploadRequest mocks base method. func (m *MockS3API) AbortMultipartUploadRequest(arg0 *s3.AbortMultipartUploadInput) (*request.Request, *s3.AbortMultipartUploadOutput) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "AbortMultipartUploadRequest", arg0) @@ -62,13 +62,13 @@ func (m *MockS3API) AbortMultipartUploadRequest(arg0 *s3.AbortMultipartUploadInp return ret0, ret1 } -// AbortMultipartUploadRequest indicates an expected call of AbortMultipartUploadRequest +// AbortMultipartUploadRequest indicates an expected call of AbortMultipartUploadRequest. func (mr *MockS3APIMockRecorder) AbortMultipartUploadRequest(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AbortMultipartUploadRequest", reflect.TypeOf((*MockS3API)(nil).AbortMultipartUploadRequest), arg0) } -// AbortMultipartUploadWithContext mocks base method +// AbortMultipartUploadWithContext mocks base method. func (m *MockS3API) AbortMultipartUploadWithContext(arg0 context.Context, arg1 *s3.AbortMultipartUploadInput, arg2 ...request.Option) (*s3.AbortMultipartUploadOutput, error) { m.ctrl.T.Helper() varargs := []interface{}{arg0, arg1} @@ -81,14 +81,14 @@ func (m *MockS3API) AbortMultipartUploadWithContext(arg0 context.Context, arg1 * return ret0, ret1 } -// AbortMultipartUploadWithContext indicates an expected call of AbortMultipartUploadWithContext +// AbortMultipartUploadWithContext indicates an expected call of AbortMultipartUploadWithContext. func (mr *MockS3APIMockRecorder) AbortMultipartUploadWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{arg0, arg1}, arg2...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AbortMultipartUploadWithContext", reflect.TypeOf((*MockS3API)(nil).AbortMultipartUploadWithContext), varargs...) } -// CompleteMultipartUpload mocks base method +// CompleteMultipartUpload mocks base method. func (m *MockS3API) CompleteMultipartUpload(arg0 *s3.CompleteMultipartUploadInput) (*s3.CompleteMultipartUploadOutput, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "CompleteMultipartUpload", arg0) @@ -97,13 +97,13 @@ func (m *MockS3API) CompleteMultipartUpload(arg0 *s3.CompleteMultipartUploadInpu return ret0, ret1 } -// CompleteMultipartUpload indicates an expected call of CompleteMultipartUpload +// CompleteMultipartUpload indicates an expected call of CompleteMultipartUpload. func (mr *MockS3APIMockRecorder) CompleteMultipartUpload(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CompleteMultipartUpload", reflect.TypeOf((*MockS3API)(nil).CompleteMultipartUpload), arg0) } -// CompleteMultipartUploadRequest mocks base method +// CompleteMultipartUploadRequest mocks base method. func (m *MockS3API) CompleteMultipartUploadRequest(arg0 *s3.CompleteMultipartUploadInput) (*request.Request, *s3.CompleteMultipartUploadOutput) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "CompleteMultipartUploadRequest", arg0) @@ -112,13 +112,13 @@ func (m *MockS3API) CompleteMultipartUploadRequest(arg0 *s3.CompleteMultipartUpl return ret0, ret1 } -// CompleteMultipartUploadRequest indicates an expected call of CompleteMultipartUploadRequest +// CompleteMultipartUploadRequest indicates an expected call of CompleteMultipartUploadRequest. func (mr *MockS3APIMockRecorder) CompleteMultipartUploadRequest(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CompleteMultipartUploadRequest", reflect.TypeOf((*MockS3API)(nil).CompleteMultipartUploadRequest), arg0) } -// CompleteMultipartUploadWithContext mocks base method +// CompleteMultipartUploadWithContext mocks base method. func (m *MockS3API) CompleteMultipartUploadWithContext(arg0 context.Context, arg1 *s3.CompleteMultipartUploadInput, arg2 ...request.Option) (*s3.CompleteMultipartUploadOutput, error) { m.ctrl.T.Helper() varargs := []interface{}{arg0, arg1} @@ -131,14 +131,14 @@ func (m *MockS3API) CompleteMultipartUploadWithContext(arg0 context.Context, arg return ret0, ret1 } -// CompleteMultipartUploadWithContext indicates an expected call of CompleteMultipartUploadWithContext +// CompleteMultipartUploadWithContext indicates an expected call of CompleteMultipartUploadWithContext. func (mr *MockS3APIMockRecorder) CompleteMultipartUploadWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{arg0, arg1}, arg2...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CompleteMultipartUploadWithContext", reflect.TypeOf((*MockS3API)(nil).CompleteMultipartUploadWithContext), varargs...) } -// CopyObject mocks base method +// CopyObject mocks base method. func (m *MockS3API) CopyObject(arg0 *s3.CopyObjectInput) (*s3.CopyObjectOutput, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "CopyObject", arg0) @@ -147,13 +147,13 @@ func (m *MockS3API) CopyObject(arg0 *s3.CopyObjectInput) (*s3.CopyObjectOutput, return ret0, ret1 } -// CopyObject indicates an expected call of CopyObject +// CopyObject indicates an expected call of CopyObject. func (mr *MockS3APIMockRecorder) CopyObject(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CopyObject", reflect.TypeOf((*MockS3API)(nil).CopyObject), arg0) } -// CopyObjectRequest mocks base method +// CopyObjectRequest mocks base method. func (m *MockS3API) CopyObjectRequest(arg0 *s3.CopyObjectInput) (*request.Request, *s3.CopyObjectOutput) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "CopyObjectRequest", arg0) @@ -162,13 +162,13 @@ func (m *MockS3API) CopyObjectRequest(arg0 *s3.CopyObjectInput) (*request.Reques return ret0, ret1 } -// CopyObjectRequest indicates an expected call of CopyObjectRequest +// CopyObjectRequest indicates an expected call of CopyObjectRequest. func (mr *MockS3APIMockRecorder) CopyObjectRequest(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CopyObjectRequest", reflect.TypeOf((*MockS3API)(nil).CopyObjectRequest), arg0) } -// CopyObjectWithContext mocks base method +// CopyObjectWithContext mocks base method. func (m *MockS3API) CopyObjectWithContext(arg0 context.Context, arg1 *s3.CopyObjectInput, arg2 ...request.Option) (*s3.CopyObjectOutput, error) { m.ctrl.T.Helper() varargs := []interface{}{arg0, arg1} @@ -181,14 +181,14 @@ func (m *MockS3API) CopyObjectWithContext(arg0 context.Context, arg1 *s3.CopyObj return ret0, ret1 } -// CopyObjectWithContext indicates an expected call of CopyObjectWithContext +// CopyObjectWithContext indicates an expected call of CopyObjectWithContext. func (mr *MockS3APIMockRecorder) CopyObjectWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{arg0, arg1}, arg2...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CopyObjectWithContext", reflect.TypeOf((*MockS3API)(nil).CopyObjectWithContext), varargs...) } -// CreateBucket mocks base method +// CreateBucket mocks base method. func (m *MockS3API) CreateBucket(arg0 *s3.CreateBucketInput) (*s3.CreateBucketOutput, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "CreateBucket", arg0) @@ -197,13 +197,13 @@ func (m *MockS3API) CreateBucket(arg0 *s3.CreateBucketInput) (*s3.CreateBucketOu return ret0, ret1 } -// CreateBucket indicates an expected call of CreateBucket +// CreateBucket indicates an expected call of CreateBucket. func (mr *MockS3APIMockRecorder) CreateBucket(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateBucket", reflect.TypeOf((*MockS3API)(nil).CreateBucket), arg0) } -// CreateBucketRequest mocks base method +// CreateBucketRequest mocks base method. func (m *MockS3API) CreateBucketRequest(arg0 *s3.CreateBucketInput) (*request.Request, *s3.CreateBucketOutput) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "CreateBucketRequest", arg0) @@ -212,13 +212,13 @@ func (m *MockS3API) CreateBucketRequest(arg0 *s3.CreateBucketInput) (*request.Re return ret0, ret1 } -// CreateBucketRequest indicates an expected call of CreateBucketRequest +// CreateBucketRequest indicates an expected call of CreateBucketRequest. func (mr *MockS3APIMockRecorder) CreateBucketRequest(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateBucketRequest", reflect.TypeOf((*MockS3API)(nil).CreateBucketRequest), arg0) } -// CreateBucketWithContext mocks base method +// CreateBucketWithContext mocks base method. func (m *MockS3API) CreateBucketWithContext(arg0 context.Context, arg1 *s3.CreateBucketInput, arg2 ...request.Option) (*s3.CreateBucketOutput, error) { m.ctrl.T.Helper() varargs := []interface{}{arg0, arg1} @@ -231,14 +231,14 @@ func (m *MockS3API) CreateBucketWithContext(arg0 context.Context, arg1 *s3.Creat return ret0, ret1 } -// CreateBucketWithContext indicates an expected call of CreateBucketWithContext +// CreateBucketWithContext indicates an expected call of CreateBucketWithContext. func (mr *MockS3APIMockRecorder) CreateBucketWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{arg0, arg1}, arg2...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateBucketWithContext", reflect.TypeOf((*MockS3API)(nil).CreateBucketWithContext), varargs...) } -// CreateMultipartUpload mocks base method +// CreateMultipartUpload mocks base method. func (m *MockS3API) CreateMultipartUpload(arg0 *s3.CreateMultipartUploadInput) (*s3.CreateMultipartUploadOutput, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "CreateMultipartUpload", arg0) @@ -247,13 +247,13 @@ func (m *MockS3API) CreateMultipartUpload(arg0 *s3.CreateMultipartUploadInput) ( return ret0, ret1 } -// CreateMultipartUpload indicates an expected call of CreateMultipartUpload +// CreateMultipartUpload indicates an expected call of CreateMultipartUpload. func (mr *MockS3APIMockRecorder) CreateMultipartUpload(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateMultipartUpload", reflect.TypeOf((*MockS3API)(nil).CreateMultipartUpload), arg0) } -// CreateMultipartUploadRequest mocks base method +// CreateMultipartUploadRequest mocks base method. func (m *MockS3API) CreateMultipartUploadRequest(arg0 *s3.CreateMultipartUploadInput) (*request.Request, *s3.CreateMultipartUploadOutput) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "CreateMultipartUploadRequest", arg0) @@ -262,13 +262,13 @@ func (m *MockS3API) CreateMultipartUploadRequest(arg0 *s3.CreateMultipartUploadI return ret0, ret1 } -// CreateMultipartUploadRequest indicates an expected call of CreateMultipartUploadRequest +// CreateMultipartUploadRequest indicates an expected call of CreateMultipartUploadRequest. func (mr *MockS3APIMockRecorder) CreateMultipartUploadRequest(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateMultipartUploadRequest", reflect.TypeOf((*MockS3API)(nil).CreateMultipartUploadRequest), arg0) } -// CreateMultipartUploadWithContext mocks base method +// CreateMultipartUploadWithContext mocks base method. func (m *MockS3API) CreateMultipartUploadWithContext(arg0 context.Context, arg1 *s3.CreateMultipartUploadInput, arg2 ...request.Option) (*s3.CreateMultipartUploadOutput, error) { m.ctrl.T.Helper() varargs := []interface{}{arg0, arg1} @@ -281,14 +281,14 @@ func (m *MockS3API) CreateMultipartUploadWithContext(arg0 context.Context, arg1 return ret0, ret1 } -// CreateMultipartUploadWithContext indicates an expected call of CreateMultipartUploadWithContext +// CreateMultipartUploadWithContext indicates an expected call of CreateMultipartUploadWithContext. func (mr *MockS3APIMockRecorder) CreateMultipartUploadWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{arg0, arg1}, arg2...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateMultipartUploadWithContext", reflect.TypeOf((*MockS3API)(nil).CreateMultipartUploadWithContext), varargs...) } -// DeleteBucket mocks base method +// DeleteBucket mocks base method. func (m *MockS3API) DeleteBucket(arg0 *s3.DeleteBucketInput) (*s3.DeleteBucketOutput, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "DeleteBucket", arg0) @@ -297,13 +297,13 @@ func (m *MockS3API) DeleteBucket(arg0 *s3.DeleteBucketInput) (*s3.DeleteBucketOu return ret0, ret1 } -// DeleteBucket indicates an expected call of DeleteBucket +// DeleteBucket indicates an expected call of DeleteBucket. func (mr *MockS3APIMockRecorder) DeleteBucket(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteBucket", reflect.TypeOf((*MockS3API)(nil).DeleteBucket), arg0) } -// DeleteBucketAnalyticsConfiguration mocks base method +// DeleteBucketAnalyticsConfiguration mocks base method. func (m *MockS3API) DeleteBucketAnalyticsConfiguration(arg0 *s3.DeleteBucketAnalyticsConfigurationInput) (*s3.DeleteBucketAnalyticsConfigurationOutput, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "DeleteBucketAnalyticsConfiguration", arg0) @@ -312,13 +312,13 @@ func (m *MockS3API) DeleteBucketAnalyticsConfiguration(arg0 *s3.DeleteBucketAnal return ret0, ret1 } -// DeleteBucketAnalyticsConfiguration indicates an expected call of DeleteBucketAnalyticsConfiguration +// DeleteBucketAnalyticsConfiguration indicates an expected call of DeleteBucketAnalyticsConfiguration. func (mr *MockS3APIMockRecorder) DeleteBucketAnalyticsConfiguration(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteBucketAnalyticsConfiguration", reflect.TypeOf((*MockS3API)(nil).DeleteBucketAnalyticsConfiguration), arg0) } -// DeleteBucketAnalyticsConfigurationRequest mocks base method +// DeleteBucketAnalyticsConfigurationRequest mocks base method. func (m *MockS3API) DeleteBucketAnalyticsConfigurationRequest(arg0 *s3.DeleteBucketAnalyticsConfigurationInput) (*request.Request, *s3.DeleteBucketAnalyticsConfigurationOutput) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "DeleteBucketAnalyticsConfigurationRequest", arg0) @@ -327,13 +327,13 @@ func (m *MockS3API) DeleteBucketAnalyticsConfigurationRequest(arg0 *s3.DeleteBuc return ret0, ret1 } -// DeleteBucketAnalyticsConfigurationRequest indicates an expected call of DeleteBucketAnalyticsConfigurationRequest +// DeleteBucketAnalyticsConfigurationRequest indicates an expected call of DeleteBucketAnalyticsConfigurationRequest. func (mr *MockS3APIMockRecorder) DeleteBucketAnalyticsConfigurationRequest(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteBucketAnalyticsConfigurationRequest", reflect.TypeOf((*MockS3API)(nil).DeleteBucketAnalyticsConfigurationRequest), arg0) } -// DeleteBucketAnalyticsConfigurationWithContext mocks base method +// DeleteBucketAnalyticsConfigurationWithContext mocks base method. func (m *MockS3API) DeleteBucketAnalyticsConfigurationWithContext(arg0 context.Context, arg1 *s3.DeleteBucketAnalyticsConfigurationInput, arg2 ...request.Option) (*s3.DeleteBucketAnalyticsConfigurationOutput, error) { m.ctrl.T.Helper() varargs := []interface{}{arg0, arg1} @@ -346,14 +346,14 @@ func (m *MockS3API) DeleteBucketAnalyticsConfigurationWithContext(arg0 context.C return ret0, ret1 } -// DeleteBucketAnalyticsConfigurationWithContext indicates an expected call of DeleteBucketAnalyticsConfigurationWithContext +// DeleteBucketAnalyticsConfigurationWithContext indicates an expected call of DeleteBucketAnalyticsConfigurationWithContext. func (mr *MockS3APIMockRecorder) DeleteBucketAnalyticsConfigurationWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{arg0, arg1}, arg2...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteBucketAnalyticsConfigurationWithContext", reflect.TypeOf((*MockS3API)(nil).DeleteBucketAnalyticsConfigurationWithContext), varargs...) } -// DeleteBucketCors mocks base method +// DeleteBucketCors mocks base method. func (m *MockS3API) DeleteBucketCors(arg0 *s3.DeleteBucketCorsInput) (*s3.DeleteBucketCorsOutput, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "DeleteBucketCors", arg0) @@ -362,13 +362,13 @@ func (m *MockS3API) DeleteBucketCors(arg0 *s3.DeleteBucketCorsInput) (*s3.Delete return ret0, ret1 } -// DeleteBucketCors indicates an expected call of DeleteBucketCors +// DeleteBucketCors indicates an expected call of DeleteBucketCors. func (mr *MockS3APIMockRecorder) DeleteBucketCors(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteBucketCors", reflect.TypeOf((*MockS3API)(nil).DeleteBucketCors), arg0) } -// DeleteBucketCorsRequest mocks base method +// DeleteBucketCorsRequest mocks base method. func (m *MockS3API) DeleteBucketCorsRequest(arg0 *s3.DeleteBucketCorsInput) (*request.Request, *s3.DeleteBucketCorsOutput) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "DeleteBucketCorsRequest", arg0) @@ -377,13 +377,13 @@ func (m *MockS3API) DeleteBucketCorsRequest(arg0 *s3.DeleteBucketCorsInput) (*re return ret0, ret1 } -// DeleteBucketCorsRequest indicates an expected call of DeleteBucketCorsRequest +// DeleteBucketCorsRequest indicates an expected call of DeleteBucketCorsRequest. func (mr *MockS3APIMockRecorder) DeleteBucketCorsRequest(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteBucketCorsRequest", reflect.TypeOf((*MockS3API)(nil).DeleteBucketCorsRequest), arg0) } -// DeleteBucketCorsWithContext mocks base method +// DeleteBucketCorsWithContext mocks base method. func (m *MockS3API) DeleteBucketCorsWithContext(arg0 context.Context, arg1 *s3.DeleteBucketCorsInput, arg2 ...request.Option) (*s3.DeleteBucketCorsOutput, error) { m.ctrl.T.Helper() varargs := []interface{}{arg0, arg1} @@ -396,14 +396,14 @@ func (m *MockS3API) DeleteBucketCorsWithContext(arg0 context.Context, arg1 *s3.D return ret0, ret1 } -// DeleteBucketCorsWithContext indicates an expected call of DeleteBucketCorsWithContext +// DeleteBucketCorsWithContext indicates an expected call of DeleteBucketCorsWithContext. func (mr *MockS3APIMockRecorder) DeleteBucketCorsWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{arg0, arg1}, arg2...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteBucketCorsWithContext", reflect.TypeOf((*MockS3API)(nil).DeleteBucketCorsWithContext), varargs...) } -// DeleteBucketEncryption mocks base method +// DeleteBucketEncryption mocks base method. func (m *MockS3API) DeleteBucketEncryption(arg0 *s3.DeleteBucketEncryptionInput) (*s3.DeleteBucketEncryptionOutput, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "DeleteBucketEncryption", arg0) @@ -412,13 +412,13 @@ func (m *MockS3API) DeleteBucketEncryption(arg0 *s3.DeleteBucketEncryptionInput) return ret0, ret1 } -// DeleteBucketEncryption indicates an expected call of DeleteBucketEncryption +// DeleteBucketEncryption indicates an expected call of DeleteBucketEncryption. func (mr *MockS3APIMockRecorder) DeleteBucketEncryption(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteBucketEncryption", reflect.TypeOf((*MockS3API)(nil).DeleteBucketEncryption), arg0) } -// DeleteBucketEncryptionRequest mocks base method +// DeleteBucketEncryptionRequest mocks base method. func (m *MockS3API) DeleteBucketEncryptionRequest(arg0 *s3.DeleteBucketEncryptionInput) (*request.Request, *s3.DeleteBucketEncryptionOutput) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "DeleteBucketEncryptionRequest", arg0) @@ -427,13 +427,13 @@ func (m *MockS3API) DeleteBucketEncryptionRequest(arg0 *s3.DeleteBucketEncryptio return ret0, ret1 } -// DeleteBucketEncryptionRequest indicates an expected call of DeleteBucketEncryptionRequest +// DeleteBucketEncryptionRequest indicates an expected call of DeleteBucketEncryptionRequest. func (mr *MockS3APIMockRecorder) DeleteBucketEncryptionRequest(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteBucketEncryptionRequest", reflect.TypeOf((*MockS3API)(nil).DeleteBucketEncryptionRequest), arg0) } -// DeleteBucketEncryptionWithContext mocks base method +// DeleteBucketEncryptionWithContext mocks base method. func (m *MockS3API) DeleteBucketEncryptionWithContext(arg0 context.Context, arg1 *s3.DeleteBucketEncryptionInput, arg2 ...request.Option) (*s3.DeleteBucketEncryptionOutput, error) { m.ctrl.T.Helper() varargs := []interface{}{arg0, arg1} @@ -446,14 +446,64 @@ func (m *MockS3API) DeleteBucketEncryptionWithContext(arg0 context.Context, arg1 return ret0, ret1 } -// DeleteBucketEncryptionWithContext indicates an expected call of DeleteBucketEncryptionWithContext +// DeleteBucketEncryptionWithContext indicates an expected call of DeleteBucketEncryptionWithContext. func (mr *MockS3APIMockRecorder) DeleteBucketEncryptionWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{arg0, arg1}, arg2...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteBucketEncryptionWithContext", reflect.TypeOf((*MockS3API)(nil).DeleteBucketEncryptionWithContext), varargs...) } -// DeleteBucketInventoryConfiguration mocks base method +// DeleteBucketIntelligentTieringConfiguration mocks base method. +func (m *MockS3API) DeleteBucketIntelligentTieringConfiguration(arg0 *s3.DeleteBucketIntelligentTieringConfigurationInput) (*s3.DeleteBucketIntelligentTieringConfigurationOutput, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "DeleteBucketIntelligentTieringConfiguration", arg0) + ret0, _ := ret[0].(*s3.DeleteBucketIntelligentTieringConfigurationOutput) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// DeleteBucketIntelligentTieringConfiguration indicates an expected call of DeleteBucketIntelligentTieringConfiguration. +func (mr *MockS3APIMockRecorder) DeleteBucketIntelligentTieringConfiguration(arg0 interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteBucketIntelligentTieringConfiguration", reflect.TypeOf((*MockS3API)(nil).DeleteBucketIntelligentTieringConfiguration), arg0) +} + +// DeleteBucketIntelligentTieringConfigurationRequest mocks base method. +func (m *MockS3API) DeleteBucketIntelligentTieringConfigurationRequest(arg0 *s3.DeleteBucketIntelligentTieringConfigurationInput) (*request.Request, *s3.DeleteBucketIntelligentTieringConfigurationOutput) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "DeleteBucketIntelligentTieringConfigurationRequest", arg0) + ret0, _ := ret[0].(*request.Request) + ret1, _ := ret[1].(*s3.DeleteBucketIntelligentTieringConfigurationOutput) + return ret0, ret1 +} + +// DeleteBucketIntelligentTieringConfigurationRequest indicates an expected call of DeleteBucketIntelligentTieringConfigurationRequest. +func (mr *MockS3APIMockRecorder) DeleteBucketIntelligentTieringConfigurationRequest(arg0 interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteBucketIntelligentTieringConfigurationRequest", reflect.TypeOf((*MockS3API)(nil).DeleteBucketIntelligentTieringConfigurationRequest), arg0) +} + +// DeleteBucketIntelligentTieringConfigurationWithContext mocks base method. +func (m *MockS3API) DeleteBucketIntelligentTieringConfigurationWithContext(arg0 context.Context, arg1 *s3.DeleteBucketIntelligentTieringConfigurationInput, arg2 ...request.Option) (*s3.DeleteBucketIntelligentTieringConfigurationOutput, error) { + m.ctrl.T.Helper() + varargs := []interface{}{arg0, arg1} + for _, a := range arg2 { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "DeleteBucketIntelligentTieringConfigurationWithContext", varargs...) + ret0, _ := ret[0].(*s3.DeleteBucketIntelligentTieringConfigurationOutput) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// DeleteBucketIntelligentTieringConfigurationWithContext indicates an expected call of DeleteBucketIntelligentTieringConfigurationWithContext. +func (mr *MockS3APIMockRecorder) DeleteBucketIntelligentTieringConfigurationWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + varargs := append([]interface{}{arg0, arg1}, arg2...) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteBucketIntelligentTieringConfigurationWithContext", reflect.TypeOf((*MockS3API)(nil).DeleteBucketIntelligentTieringConfigurationWithContext), varargs...) +} + +// DeleteBucketInventoryConfiguration mocks base method. func (m *MockS3API) DeleteBucketInventoryConfiguration(arg0 *s3.DeleteBucketInventoryConfigurationInput) (*s3.DeleteBucketInventoryConfigurationOutput, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "DeleteBucketInventoryConfiguration", arg0) @@ -462,13 +512,13 @@ func (m *MockS3API) DeleteBucketInventoryConfiguration(arg0 *s3.DeleteBucketInve return ret0, ret1 } -// DeleteBucketInventoryConfiguration indicates an expected call of DeleteBucketInventoryConfiguration +// DeleteBucketInventoryConfiguration indicates an expected call of DeleteBucketInventoryConfiguration. func (mr *MockS3APIMockRecorder) DeleteBucketInventoryConfiguration(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteBucketInventoryConfiguration", reflect.TypeOf((*MockS3API)(nil).DeleteBucketInventoryConfiguration), arg0) } -// DeleteBucketInventoryConfigurationRequest mocks base method +// DeleteBucketInventoryConfigurationRequest mocks base method. func (m *MockS3API) DeleteBucketInventoryConfigurationRequest(arg0 *s3.DeleteBucketInventoryConfigurationInput) (*request.Request, *s3.DeleteBucketInventoryConfigurationOutput) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "DeleteBucketInventoryConfigurationRequest", arg0) @@ -477,13 +527,13 @@ func (m *MockS3API) DeleteBucketInventoryConfigurationRequest(arg0 *s3.DeleteBuc return ret0, ret1 } -// DeleteBucketInventoryConfigurationRequest indicates an expected call of DeleteBucketInventoryConfigurationRequest +// DeleteBucketInventoryConfigurationRequest indicates an expected call of DeleteBucketInventoryConfigurationRequest. func (mr *MockS3APIMockRecorder) DeleteBucketInventoryConfigurationRequest(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteBucketInventoryConfigurationRequest", reflect.TypeOf((*MockS3API)(nil).DeleteBucketInventoryConfigurationRequest), arg0) } -// DeleteBucketInventoryConfigurationWithContext mocks base method +// DeleteBucketInventoryConfigurationWithContext mocks base method. func (m *MockS3API) DeleteBucketInventoryConfigurationWithContext(arg0 context.Context, arg1 *s3.DeleteBucketInventoryConfigurationInput, arg2 ...request.Option) (*s3.DeleteBucketInventoryConfigurationOutput, error) { m.ctrl.T.Helper() varargs := []interface{}{arg0, arg1} @@ -496,14 +546,14 @@ func (m *MockS3API) DeleteBucketInventoryConfigurationWithContext(arg0 context.C return ret0, ret1 } -// DeleteBucketInventoryConfigurationWithContext indicates an expected call of DeleteBucketInventoryConfigurationWithContext +// DeleteBucketInventoryConfigurationWithContext indicates an expected call of DeleteBucketInventoryConfigurationWithContext. func (mr *MockS3APIMockRecorder) DeleteBucketInventoryConfigurationWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{arg0, arg1}, arg2...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteBucketInventoryConfigurationWithContext", reflect.TypeOf((*MockS3API)(nil).DeleteBucketInventoryConfigurationWithContext), varargs...) } -// DeleteBucketLifecycle mocks base method +// DeleteBucketLifecycle mocks base method. func (m *MockS3API) DeleteBucketLifecycle(arg0 *s3.DeleteBucketLifecycleInput) (*s3.DeleteBucketLifecycleOutput, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "DeleteBucketLifecycle", arg0) @@ -512,13 +562,13 @@ func (m *MockS3API) DeleteBucketLifecycle(arg0 *s3.DeleteBucketLifecycleInput) ( return ret0, ret1 } -// DeleteBucketLifecycle indicates an expected call of DeleteBucketLifecycle +// DeleteBucketLifecycle indicates an expected call of DeleteBucketLifecycle. func (mr *MockS3APIMockRecorder) DeleteBucketLifecycle(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteBucketLifecycle", reflect.TypeOf((*MockS3API)(nil).DeleteBucketLifecycle), arg0) } -// DeleteBucketLifecycleRequest mocks base method +// DeleteBucketLifecycleRequest mocks base method. func (m *MockS3API) DeleteBucketLifecycleRequest(arg0 *s3.DeleteBucketLifecycleInput) (*request.Request, *s3.DeleteBucketLifecycleOutput) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "DeleteBucketLifecycleRequest", arg0) @@ -527,13 +577,13 @@ func (m *MockS3API) DeleteBucketLifecycleRequest(arg0 *s3.DeleteBucketLifecycleI return ret0, ret1 } -// DeleteBucketLifecycleRequest indicates an expected call of DeleteBucketLifecycleRequest +// DeleteBucketLifecycleRequest indicates an expected call of DeleteBucketLifecycleRequest. func (mr *MockS3APIMockRecorder) DeleteBucketLifecycleRequest(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteBucketLifecycleRequest", reflect.TypeOf((*MockS3API)(nil).DeleteBucketLifecycleRequest), arg0) } -// DeleteBucketLifecycleWithContext mocks base method +// DeleteBucketLifecycleWithContext mocks base method. func (m *MockS3API) DeleteBucketLifecycleWithContext(arg0 context.Context, arg1 *s3.DeleteBucketLifecycleInput, arg2 ...request.Option) (*s3.DeleteBucketLifecycleOutput, error) { m.ctrl.T.Helper() varargs := []interface{}{arg0, arg1} @@ -546,14 +596,14 @@ func (m *MockS3API) DeleteBucketLifecycleWithContext(arg0 context.Context, arg1 return ret0, ret1 } -// DeleteBucketLifecycleWithContext indicates an expected call of DeleteBucketLifecycleWithContext +// DeleteBucketLifecycleWithContext indicates an expected call of DeleteBucketLifecycleWithContext. func (mr *MockS3APIMockRecorder) DeleteBucketLifecycleWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{arg0, arg1}, arg2...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteBucketLifecycleWithContext", reflect.TypeOf((*MockS3API)(nil).DeleteBucketLifecycleWithContext), varargs...) } -// DeleteBucketMetricsConfiguration mocks base method +// DeleteBucketMetricsConfiguration mocks base method. func (m *MockS3API) DeleteBucketMetricsConfiguration(arg0 *s3.DeleteBucketMetricsConfigurationInput) (*s3.DeleteBucketMetricsConfigurationOutput, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "DeleteBucketMetricsConfiguration", arg0) @@ -562,13 +612,13 @@ func (m *MockS3API) DeleteBucketMetricsConfiguration(arg0 *s3.DeleteBucketMetric return ret0, ret1 } -// DeleteBucketMetricsConfiguration indicates an expected call of DeleteBucketMetricsConfiguration +// DeleteBucketMetricsConfiguration indicates an expected call of DeleteBucketMetricsConfiguration. func (mr *MockS3APIMockRecorder) DeleteBucketMetricsConfiguration(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteBucketMetricsConfiguration", reflect.TypeOf((*MockS3API)(nil).DeleteBucketMetricsConfiguration), arg0) } -// DeleteBucketMetricsConfigurationRequest mocks base method +// DeleteBucketMetricsConfigurationRequest mocks base method. func (m *MockS3API) DeleteBucketMetricsConfigurationRequest(arg0 *s3.DeleteBucketMetricsConfigurationInput) (*request.Request, *s3.DeleteBucketMetricsConfigurationOutput) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "DeleteBucketMetricsConfigurationRequest", arg0) @@ -577,13 +627,13 @@ func (m *MockS3API) DeleteBucketMetricsConfigurationRequest(arg0 *s3.DeleteBucke return ret0, ret1 } -// DeleteBucketMetricsConfigurationRequest indicates an expected call of DeleteBucketMetricsConfigurationRequest +// DeleteBucketMetricsConfigurationRequest indicates an expected call of DeleteBucketMetricsConfigurationRequest. func (mr *MockS3APIMockRecorder) DeleteBucketMetricsConfigurationRequest(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteBucketMetricsConfigurationRequest", reflect.TypeOf((*MockS3API)(nil).DeleteBucketMetricsConfigurationRequest), arg0) } -// DeleteBucketMetricsConfigurationWithContext mocks base method +// DeleteBucketMetricsConfigurationWithContext mocks base method. func (m *MockS3API) DeleteBucketMetricsConfigurationWithContext(arg0 context.Context, arg1 *s3.DeleteBucketMetricsConfigurationInput, arg2 ...request.Option) (*s3.DeleteBucketMetricsConfigurationOutput, error) { m.ctrl.T.Helper() varargs := []interface{}{arg0, arg1} @@ -596,14 +646,14 @@ func (m *MockS3API) DeleteBucketMetricsConfigurationWithContext(arg0 context.Con return ret0, ret1 } -// DeleteBucketMetricsConfigurationWithContext indicates an expected call of DeleteBucketMetricsConfigurationWithContext +// DeleteBucketMetricsConfigurationWithContext indicates an expected call of DeleteBucketMetricsConfigurationWithContext. func (mr *MockS3APIMockRecorder) DeleteBucketMetricsConfigurationWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{arg0, arg1}, arg2...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteBucketMetricsConfigurationWithContext", reflect.TypeOf((*MockS3API)(nil).DeleteBucketMetricsConfigurationWithContext), varargs...) } -// DeleteBucketOwnershipControls mocks base method +// DeleteBucketOwnershipControls mocks base method. func (m *MockS3API) DeleteBucketOwnershipControls(arg0 *s3.DeleteBucketOwnershipControlsInput) (*s3.DeleteBucketOwnershipControlsOutput, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "DeleteBucketOwnershipControls", arg0) @@ -612,13 +662,13 @@ func (m *MockS3API) DeleteBucketOwnershipControls(arg0 *s3.DeleteBucketOwnership return ret0, ret1 } -// DeleteBucketOwnershipControls indicates an expected call of DeleteBucketOwnershipControls +// DeleteBucketOwnershipControls indicates an expected call of DeleteBucketOwnershipControls. func (mr *MockS3APIMockRecorder) DeleteBucketOwnershipControls(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteBucketOwnershipControls", reflect.TypeOf((*MockS3API)(nil).DeleteBucketOwnershipControls), arg0) } -// DeleteBucketOwnershipControlsRequest mocks base method +// DeleteBucketOwnershipControlsRequest mocks base method. func (m *MockS3API) DeleteBucketOwnershipControlsRequest(arg0 *s3.DeleteBucketOwnershipControlsInput) (*request.Request, *s3.DeleteBucketOwnershipControlsOutput) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "DeleteBucketOwnershipControlsRequest", arg0) @@ -627,13 +677,13 @@ func (m *MockS3API) DeleteBucketOwnershipControlsRequest(arg0 *s3.DeleteBucketOw return ret0, ret1 } -// DeleteBucketOwnershipControlsRequest indicates an expected call of DeleteBucketOwnershipControlsRequest +// DeleteBucketOwnershipControlsRequest indicates an expected call of DeleteBucketOwnershipControlsRequest. func (mr *MockS3APIMockRecorder) DeleteBucketOwnershipControlsRequest(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteBucketOwnershipControlsRequest", reflect.TypeOf((*MockS3API)(nil).DeleteBucketOwnershipControlsRequest), arg0) } -// DeleteBucketOwnershipControlsWithContext mocks base method +// DeleteBucketOwnershipControlsWithContext mocks base method. func (m *MockS3API) DeleteBucketOwnershipControlsWithContext(arg0 context.Context, arg1 *s3.DeleteBucketOwnershipControlsInput, arg2 ...request.Option) (*s3.DeleteBucketOwnershipControlsOutput, error) { m.ctrl.T.Helper() varargs := []interface{}{arg0, arg1} @@ -646,14 +696,14 @@ func (m *MockS3API) DeleteBucketOwnershipControlsWithContext(arg0 context.Contex return ret0, ret1 } -// DeleteBucketOwnershipControlsWithContext indicates an expected call of DeleteBucketOwnershipControlsWithContext +// DeleteBucketOwnershipControlsWithContext indicates an expected call of DeleteBucketOwnershipControlsWithContext. func (mr *MockS3APIMockRecorder) DeleteBucketOwnershipControlsWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{arg0, arg1}, arg2...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteBucketOwnershipControlsWithContext", reflect.TypeOf((*MockS3API)(nil).DeleteBucketOwnershipControlsWithContext), varargs...) } -// DeleteBucketPolicy mocks base method +// DeleteBucketPolicy mocks base method. func (m *MockS3API) DeleteBucketPolicy(arg0 *s3.DeleteBucketPolicyInput) (*s3.DeleteBucketPolicyOutput, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "DeleteBucketPolicy", arg0) @@ -662,13 +712,13 @@ func (m *MockS3API) DeleteBucketPolicy(arg0 *s3.DeleteBucketPolicyInput) (*s3.De return ret0, ret1 } -// DeleteBucketPolicy indicates an expected call of DeleteBucketPolicy +// DeleteBucketPolicy indicates an expected call of DeleteBucketPolicy. func (mr *MockS3APIMockRecorder) DeleteBucketPolicy(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteBucketPolicy", reflect.TypeOf((*MockS3API)(nil).DeleteBucketPolicy), arg0) } -// DeleteBucketPolicyRequest mocks base method +// DeleteBucketPolicyRequest mocks base method. func (m *MockS3API) DeleteBucketPolicyRequest(arg0 *s3.DeleteBucketPolicyInput) (*request.Request, *s3.DeleteBucketPolicyOutput) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "DeleteBucketPolicyRequest", arg0) @@ -677,13 +727,13 @@ func (m *MockS3API) DeleteBucketPolicyRequest(arg0 *s3.DeleteBucketPolicyInput) return ret0, ret1 } -// DeleteBucketPolicyRequest indicates an expected call of DeleteBucketPolicyRequest +// DeleteBucketPolicyRequest indicates an expected call of DeleteBucketPolicyRequest. func (mr *MockS3APIMockRecorder) DeleteBucketPolicyRequest(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteBucketPolicyRequest", reflect.TypeOf((*MockS3API)(nil).DeleteBucketPolicyRequest), arg0) } -// DeleteBucketPolicyWithContext mocks base method +// DeleteBucketPolicyWithContext mocks base method. func (m *MockS3API) DeleteBucketPolicyWithContext(arg0 context.Context, arg1 *s3.DeleteBucketPolicyInput, arg2 ...request.Option) (*s3.DeleteBucketPolicyOutput, error) { m.ctrl.T.Helper() varargs := []interface{}{arg0, arg1} @@ -696,14 +746,14 @@ func (m *MockS3API) DeleteBucketPolicyWithContext(arg0 context.Context, arg1 *s3 return ret0, ret1 } -// DeleteBucketPolicyWithContext indicates an expected call of DeleteBucketPolicyWithContext +// DeleteBucketPolicyWithContext indicates an expected call of DeleteBucketPolicyWithContext. func (mr *MockS3APIMockRecorder) DeleteBucketPolicyWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{arg0, arg1}, arg2...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteBucketPolicyWithContext", reflect.TypeOf((*MockS3API)(nil).DeleteBucketPolicyWithContext), varargs...) } -// DeleteBucketReplication mocks base method +// DeleteBucketReplication mocks base method. func (m *MockS3API) DeleteBucketReplication(arg0 *s3.DeleteBucketReplicationInput) (*s3.DeleteBucketReplicationOutput, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "DeleteBucketReplication", arg0) @@ -712,13 +762,13 @@ func (m *MockS3API) DeleteBucketReplication(arg0 *s3.DeleteBucketReplicationInpu return ret0, ret1 } -// DeleteBucketReplication indicates an expected call of DeleteBucketReplication +// DeleteBucketReplication indicates an expected call of DeleteBucketReplication. func (mr *MockS3APIMockRecorder) DeleteBucketReplication(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteBucketReplication", reflect.TypeOf((*MockS3API)(nil).DeleteBucketReplication), arg0) } -// DeleteBucketReplicationRequest mocks base method +// DeleteBucketReplicationRequest mocks base method. func (m *MockS3API) DeleteBucketReplicationRequest(arg0 *s3.DeleteBucketReplicationInput) (*request.Request, *s3.DeleteBucketReplicationOutput) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "DeleteBucketReplicationRequest", arg0) @@ -727,13 +777,13 @@ func (m *MockS3API) DeleteBucketReplicationRequest(arg0 *s3.DeleteBucketReplicat return ret0, ret1 } -// DeleteBucketReplicationRequest indicates an expected call of DeleteBucketReplicationRequest +// DeleteBucketReplicationRequest indicates an expected call of DeleteBucketReplicationRequest. func (mr *MockS3APIMockRecorder) DeleteBucketReplicationRequest(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteBucketReplicationRequest", reflect.TypeOf((*MockS3API)(nil).DeleteBucketReplicationRequest), arg0) } -// DeleteBucketReplicationWithContext mocks base method +// DeleteBucketReplicationWithContext mocks base method. func (m *MockS3API) DeleteBucketReplicationWithContext(arg0 context.Context, arg1 *s3.DeleteBucketReplicationInput, arg2 ...request.Option) (*s3.DeleteBucketReplicationOutput, error) { m.ctrl.T.Helper() varargs := []interface{}{arg0, arg1} @@ -746,14 +796,14 @@ func (m *MockS3API) DeleteBucketReplicationWithContext(arg0 context.Context, arg return ret0, ret1 } -// DeleteBucketReplicationWithContext indicates an expected call of DeleteBucketReplicationWithContext +// DeleteBucketReplicationWithContext indicates an expected call of DeleteBucketReplicationWithContext. func (mr *MockS3APIMockRecorder) DeleteBucketReplicationWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{arg0, arg1}, arg2...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteBucketReplicationWithContext", reflect.TypeOf((*MockS3API)(nil).DeleteBucketReplicationWithContext), varargs...) } -// DeleteBucketRequest mocks base method +// DeleteBucketRequest mocks base method. func (m *MockS3API) DeleteBucketRequest(arg0 *s3.DeleteBucketInput) (*request.Request, *s3.DeleteBucketOutput) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "DeleteBucketRequest", arg0) @@ -762,13 +812,13 @@ func (m *MockS3API) DeleteBucketRequest(arg0 *s3.DeleteBucketInput) (*request.Re return ret0, ret1 } -// DeleteBucketRequest indicates an expected call of DeleteBucketRequest +// DeleteBucketRequest indicates an expected call of DeleteBucketRequest. func (mr *MockS3APIMockRecorder) DeleteBucketRequest(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteBucketRequest", reflect.TypeOf((*MockS3API)(nil).DeleteBucketRequest), arg0) } -// DeleteBucketTagging mocks base method +// DeleteBucketTagging mocks base method. func (m *MockS3API) DeleteBucketTagging(arg0 *s3.DeleteBucketTaggingInput) (*s3.DeleteBucketTaggingOutput, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "DeleteBucketTagging", arg0) @@ -777,13 +827,13 @@ func (m *MockS3API) DeleteBucketTagging(arg0 *s3.DeleteBucketTaggingInput) (*s3. return ret0, ret1 } -// DeleteBucketTagging indicates an expected call of DeleteBucketTagging +// DeleteBucketTagging indicates an expected call of DeleteBucketTagging. func (mr *MockS3APIMockRecorder) DeleteBucketTagging(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteBucketTagging", reflect.TypeOf((*MockS3API)(nil).DeleteBucketTagging), arg0) } -// DeleteBucketTaggingRequest mocks base method +// DeleteBucketTaggingRequest mocks base method. func (m *MockS3API) DeleteBucketTaggingRequest(arg0 *s3.DeleteBucketTaggingInput) (*request.Request, *s3.DeleteBucketTaggingOutput) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "DeleteBucketTaggingRequest", arg0) @@ -792,13 +842,13 @@ func (m *MockS3API) DeleteBucketTaggingRequest(arg0 *s3.DeleteBucketTaggingInput return ret0, ret1 } -// DeleteBucketTaggingRequest indicates an expected call of DeleteBucketTaggingRequest +// DeleteBucketTaggingRequest indicates an expected call of DeleteBucketTaggingRequest. func (mr *MockS3APIMockRecorder) DeleteBucketTaggingRequest(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteBucketTaggingRequest", reflect.TypeOf((*MockS3API)(nil).DeleteBucketTaggingRequest), arg0) } -// DeleteBucketTaggingWithContext mocks base method +// DeleteBucketTaggingWithContext mocks base method. func (m *MockS3API) DeleteBucketTaggingWithContext(arg0 context.Context, arg1 *s3.DeleteBucketTaggingInput, arg2 ...request.Option) (*s3.DeleteBucketTaggingOutput, error) { m.ctrl.T.Helper() varargs := []interface{}{arg0, arg1} @@ -811,14 +861,14 @@ func (m *MockS3API) DeleteBucketTaggingWithContext(arg0 context.Context, arg1 *s return ret0, ret1 } -// DeleteBucketTaggingWithContext indicates an expected call of DeleteBucketTaggingWithContext +// DeleteBucketTaggingWithContext indicates an expected call of DeleteBucketTaggingWithContext. func (mr *MockS3APIMockRecorder) DeleteBucketTaggingWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{arg0, arg1}, arg2...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteBucketTaggingWithContext", reflect.TypeOf((*MockS3API)(nil).DeleteBucketTaggingWithContext), varargs...) } -// DeleteBucketWebsite mocks base method +// DeleteBucketWebsite mocks base method. func (m *MockS3API) DeleteBucketWebsite(arg0 *s3.DeleteBucketWebsiteInput) (*s3.DeleteBucketWebsiteOutput, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "DeleteBucketWebsite", arg0) @@ -827,13 +877,13 @@ func (m *MockS3API) DeleteBucketWebsite(arg0 *s3.DeleteBucketWebsiteInput) (*s3. return ret0, ret1 } -// DeleteBucketWebsite indicates an expected call of DeleteBucketWebsite +// DeleteBucketWebsite indicates an expected call of DeleteBucketWebsite. func (mr *MockS3APIMockRecorder) DeleteBucketWebsite(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteBucketWebsite", reflect.TypeOf((*MockS3API)(nil).DeleteBucketWebsite), arg0) } -// DeleteBucketWebsiteRequest mocks base method +// DeleteBucketWebsiteRequest mocks base method. func (m *MockS3API) DeleteBucketWebsiteRequest(arg0 *s3.DeleteBucketWebsiteInput) (*request.Request, *s3.DeleteBucketWebsiteOutput) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "DeleteBucketWebsiteRequest", arg0) @@ -842,13 +892,13 @@ func (m *MockS3API) DeleteBucketWebsiteRequest(arg0 *s3.DeleteBucketWebsiteInput return ret0, ret1 } -// DeleteBucketWebsiteRequest indicates an expected call of DeleteBucketWebsiteRequest +// DeleteBucketWebsiteRequest indicates an expected call of DeleteBucketWebsiteRequest. func (mr *MockS3APIMockRecorder) DeleteBucketWebsiteRequest(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteBucketWebsiteRequest", reflect.TypeOf((*MockS3API)(nil).DeleteBucketWebsiteRequest), arg0) } -// DeleteBucketWebsiteWithContext mocks base method +// DeleteBucketWebsiteWithContext mocks base method. func (m *MockS3API) DeleteBucketWebsiteWithContext(arg0 context.Context, arg1 *s3.DeleteBucketWebsiteInput, arg2 ...request.Option) (*s3.DeleteBucketWebsiteOutput, error) { m.ctrl.T.Helper() varargs := []interface{}{arg0, arg1} @@ -861,14 +911,14 @@ func (m *MockS3API) DeleteBucketWebsiteWithContext(arg0 context.Context, arg1 *s return ret0, ret1 } -// DeleteBucketWebsiteWithContext indicates an expected call of DeleteBucketWebsiteWithContext +// DeleteBucketWebsiteWithContext indicates an expected call of DeleteBucketWebsiteWithContext. func (mr *MockS3APIMockRecorder) DeleteBucketWebsiteWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{arg0, arg1}, arg2...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteBucketWebsiteWithContext", reflect.TypeOf((*MockS3API)(nil).DeleteBucketWebsiteWithContext), varargs...) } -// DeleteBucketWithContext mocks base method +// DeleteBucketWithContext mocks base method. func (m *MockS3API) DeleteBucketWithContext(arg0 context.Context, arg1 *s3.DeleteBucketInput, arg2 ...request.Option) (*s3.DeleteBucketOutput, error) { m.ctrl.T.Helper() varargs := []interface{}{arg0, arg1} @@ -881,14 +931,14 @@ func (m *MockS3API) DeleteBucketWithContext(arg0 context.Context, arg1 *s3.Delet return ret0, ret1 } -// DeleteBucketWithContext indicates an expected call of DeleteBucketWithContext +// DeleteBucketWithContext indicates an expected call of DeleteBucketWithContext. func (mr *MockS3APIMockRecorder) DeleteBucketWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{arg0, arg1}, arg2...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteBucketWithContext", reflect.TypeOf((*MockS3API)(nil).DeleteBucketWithContext), varargs...) } -// DeleteObject mocks base method +// DeleteObject mocks base method. func (m *MockS3API) DeleteObject(arg0 *s3.DeleteObjectInput) (*s3.DeleteObjectOutput, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "DeleteObject", arg0) @@ -897,13 +947,13 @@ func (m *MockS3API) DeleteObject(arg0 *s3.DeleteObjectInput) (*s3.DeleteObjectOu return ret0, ret1 } -// DeleteObject indicates an expected call of DeleteObject +// DeleteObject indicates an expected call of DeleteObject. func (mr *MockS3APIMockRecorder) DeleteObject(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteObject", reflect.TypeOf((*MockS3API)(nil).DeleteObject), arg0) } -// DeleteObjectRequest mocks base method +// DeleteObjectRequest mocks base method. func (m *MockS3API) DeleteObjectRequest(arg0 *s3.DeleteObjectInput) (*request.Request, *s3.DeleteObjectOutput) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "DeleteObjectRequest", arg0) @@ -912,13 +962,13 @@ func (m *MockS3API) DeleteObjectRequest(arg0 *s3.DeleteObjectInput) (*request.Re return ret0, ret1 } -// DeleteObjectRequest indicates an expected call of DeleteObjectRequest +// DeleteObjectRequest indicates an expected call of DeleteObjectRequest. func (mr *MockS3APIMockRecorder) DeleteObjectRequest(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteObjectRequest", reflect.TypeOf((*MockS3API)(nil).DeleteObjectRequest), arg0) } -// DeleteObjectTagging mocks base method +// DeleteObjectTagging mocks base method. func (m *MockS3API) DeleteObjectTagging(arg0 *s3.DeleteObjectTaggingInput) (*s3.DeleteObjectTaggingOutput, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "DeleteObjectTagging", arg0) @@ -927,13 +977,13 @@ func (m *MockS3API) DeleteObjectTagging(arg0 *s3.DeleteObjectTaggingInput) (*s3. return ret0, ret1 } -// DeleteObjectTagging indicates an expected call of DeleteObjectTagging +// DeleteObjectTagging indicates an expected call of DeleteObjectTagging. func (mr *MockS3APIMockRecorder) DeleteObjectTagging(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteObjectTagging", reflect.TypeOf((*MockS3API)(nil).DeleteObjectTagging), arg0) } -// DeleteObjectTaggingRequest mocks base method +// DeleteObjectTaggingRequest mocks base method. func (m *MockS3API) DeleteObjectTaggingRequest(arg0 *s3.DeleteObjectTaggingInput) (*request.Request, *s3.DeleteObjectTaggingOutput) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "DeleteObjectTaggingRequest", arg0) @@ -942,13 +992,13 @@ func (m *MockS3API) DeleteObjectTaggingRequest(arg0 *s3.DeleteObjectTaggingInput return ret0, ret1 } -// DeleteObjectTaggingRequest indicates an expected call of DeleteObjectTaggingRequest +// DeleteObjectTaggingRequest indicates an expected call of DeleteObjectTaggingRequest. func (mr *MockS3APIMockRecorder) DeleteObjectTaggingRequest(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteObjectTaggingRequest", reflect.TypeOf((*MockS3API)(nil).DeleteObjectTaggingRequest), arg0) } -// DeleteObjectTaggingWithContext mocks base method +// DeleteObjectTaggingWithContext mocks base method. func (m *MockS3API) DeleteObjectTaggingWithContext(arg0 context.Context, arg1 *s3.DeleteObjectTaggingInput, arg2 ...request.Option) (*s3.DeleteObjectTaggingOutput, error) { m.ctrl.T.Helper() varargs := []interface{}{arg0, arg1} @@ -961,14 +1011,14 @@ func (m *MockS3API) DeleteObjectTaggingWithContext(arg0 context.Context, arg1 *s return ret0, ret1 } -// DeleteObjectTaggingWithContext indicates an expected call of DeleteObjectTaggingWithContext +// DeleteObjectTaggingWithContext indicates an expected call of DeleteObjectTaggingWithContext. func (mr *MockS3APIMockRecorder) DeleteObjectTaggingWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{arg0, arg1}, arg2...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteObjectTaggingWithContext", reflect.TypeOf((*MockS3API)(nil).DeleteObjectTaggingWithContext), varargs...) } -// DeleteObjectWithContext mocks base method +// DeleteObjectWithContext mocks base method. func (m *MockS3API) DeleteObjectWithContext(arg0 context.Context, arg1 *s3.DeleteObjectInput, arg2 ...request.Option) (*s3.DeleteObjectOutput, error) { m.ctrl.T.Helper() varargs := []interface{}{arg0, arg1} @@ -981,14 +1031,14 @@ func (m *MockS3API) DeleteObjectWithContext(arg0 context.Context, arg1 *s3.Delet return ret0, ret1 } -// DeleteObjectWithContext indicates an expected call of DeleteObjectWithContext +// DeleteObjectWithContext indicates an expected call of DeleteObjectWithContext. func (mr *MockS3APIMockRecorder) DeleteObjectWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{arg0, arg1}, arg2...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteObjectWithContext", reflect.TypeOf((*MockS3API)(nil).DeleteObjectWithContext), varargs...) } -// DeleteObjects mocks base method +// DeleteObjects mocks base method. func (m *MockS3API) DeleteObjects(arg0 *s3.DeleteObjectsInput) (*s3.DeleteObjectsOutput, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "DeleteObjects", arg0) @@ -997,13 +1047,13 @@ func (m *MockS3API) DeleteObjects(arg0 *s3.DeleteObjectsInput) (*s3.DeleteObject return ret0, ret1 } -// DeleteObjects indicates an expected call of DeleteObjects +// DeleteObjects indicates an expected call of DeleteObjects. func (mr *MockS3APIMockRecorder) DeleteObjects(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteObjects", reflect.TypeOf((*MockS3API)(nil).DeleteObjects), arg0) } -// DeleteObjectsRequest mocks base method +// DeleteObjectsRequest mocks base method. func (m *MockS3API) DeleteObjectsRequest(arg0 *s3.DeleteObjectsInput) (*request.Request, *s3.DeleteObjectsOutput) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "DeleteObjectsRequest", arg0) @@ -1012,13 +1062,13 @@ func (m *MockS3API) DeleteObjectsRequest(arg0 *s3.DeleteObjectsInput) (*request. return ret0, ret1 } -// DeleteObjectsRequest indicates an expected call of DeleteObjectsRequest +// DeleteObjectsRequest indicates an expected call of DeleteObjectsRequest. func (mr *MockS3APIMockRecorder) DeleteObjectsRequest(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteObjectsRequest", reflect.TypeOf((*MockS3API)(nil).DeleteObjectsRequest), arg0) } -// DeleteObjectsWithContext mocks base method +// DeleteObjectsWithContext mocks base method. func (m *MockS3API) DeleteObjectsWithContext(arg0 context.Context, arg1 *s3.DeleteObjectsInput, arg2 ...request.Option) (*s3.DeleteObjectsOutput, error) { m.ctrl.T.Helper() varargs := []interface{}{arg0, arg1} @@ -1031,14 +1081,14 @@ func (m *MockS3API) DeleteObjectsWithContext(arg0 context.Context, arg1 *s3.Dele return ret0, ret1 } -// DeleteObjectsWithContext indicates an expected call of DeleteObjectsWithContext +// DeleteObjectsWithContext indicates an expected call of DeleteObjectsWithContext. func (mr *MockS3APIMockRecorder) DeleteObjectsWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{arg0, arg1}, arg2...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteObjectsWithContext", reflect.TypeOf((*MockS3API)(nil).DeleteObjectsWithContext), varargs...) } -// DeletePublicAccessBlock mocks base method +// DeletePublicAccessBlock mocks base method. func (m *MockS3API) DeletePublicAccessBlock(arg0 *s3.DeletePublicAccessBlockInput) (*s3.DeletePublicAccessBlockOutput, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "DeletePublicAccessBlock", arg0) @@ -1047,13 +1097,13 @@ func (m *MockS3API) DeletePublicAccessBlock(arg0 *s3.DeletePublicAccessBlockInpu return ret0, ret1 } -// DeletePublicAccessBlock indicates an expected call of DeletePublicAccessBlock +// DeletePublicAccessBlock indicates an expected call of DeletePublicAccessBlock. func (mr *MockS3APIMockRecorder) DeletePublicAccessBlock(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeletePublicAccessBlock", reflect.TypeOf((*MockS3API)(nil).DeletePublicAccessBlock), arg0) } -// DeletePublicAccessBlockRequest mocks base method +// DeletePublicAccessBlockRequest mocks base method. func (m *MockS3API) DeletePublicAccessBlockRequest(arg0 *s3.DeletePublicAccessBlockInput) (*request.Request, *s3.DeletePublicAccessBlockOutput) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "DeletePublicAccessBlockRequest", arg0) @@ -1062,13 +1112,13 @@ func (m *MockS3API) DeletePublicAccessBlockRequest(arg0 *s3.DeletePublicAccessBl return ret0, ret1 } -// DeletePublicAccessBlockRequest indicates an expected call of DeletePublicAccessBlockRequest +// DeletePublicAccessBlockRequest indicates an expected call of DeletePublicAccessBlockRequest. func (mr *MockS3APIMockRecorder) DeletePublicAccessBlockRequest(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeletePublicAccessBlockRequest", reflect.TypeOf((*MockS3API)(nil).DeletePublicAccessBlockRequest), arg0) } -// DeletePublicAccessBlockWithContext mocks base method +// DeletePublicAccessBlockWithContext mocks base method. func (m *MockS3API) DeletePublicAccessBlockWithContext(arg0 context.Context, arg1 *s3.DeletePublicAccessBlockInput, arg2 ...request.Option) (*s3.DeletePublicAccessBlockOutput, error) { m.ctrl.T.Helper() varargs := []interface{}{arg0, arg1} @@ -1081,14 +1131,14 @@ func (m *MockS3API) DeletePublicAccessBlockWithContext(arg0 context.Context, arg return ret0, ret1 } -// DeletePublicAccessBlockWithContext indicates an expected call of DeletePublicAccessBlockWithContext +// DeletePublicAccessBlockWithContext indicates an expected call of DeletePublicAccessBlockWithContext. func (mr *MockS3APIMockRecorder) DeletePublicAccessBlockWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{arg0, arg1}, arg2...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeletePublicAccessBlockWithContext", reflect.TypeOf((*MockS3API)(nil).DeletePublicAccessBlockWithContext), varargs...) } -// GetBucketAccelerateConfiguration mocks base method +// GetBucketAccelerateConfiguration mocks base method. func (m *MockS3API) GetBucketAccelerateConfiguration(arg0 *s3.GetBucketAccelerateConfigurationInput) (*s3.GetBucketAccelerateConfigurationOutput, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "GetBucketAccelerateConfiguration", arg0) @@ -1097,13 +1147,13 @@ func (m *MockS3API) GetBucketAccelerateConfiguration(arg0 *s3.GetBucketAccelerat return ret0, ret1 } -// GetBucketAccelerateConfiguration indicates an expected call of GetBucketAccelerateConfiguration +// GetBucketAccelerateConfiguration indicates an expected call of GetBucketAccelerateConfiguration. func (mr *MockS3APIMockRecorder) GetBucketAccelerateConfiguration(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBucketAccelerateConfiguration", reflect.TypeOf((*MockS3API)(nil).GetBucketAccelerateConfiguration), arg0) } -// GetBucketAccelerateConfigurationRequest mocks base method +// GetBucketAccelerateConfigurationRequest mocks base method. func (m *MockS3API) GetBucketAccelerateConfigurationRequest(arg0 *s3.GetBucketAccelerateConfigurationInput) (*request.Request, *s3.GetBucketAccelerateConfigurationOutput) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "GetBucketAccelerateConfigurationRequest", arg0) @@ -1112,13 +1162,13 @@ func (m *MockS3API) GetBucketAccelerateConfigurationRequest(arg0 *s3.GetBucketAc return ret0, ret1 } -// GetBucketAccelerateConfigurationRequest indicates an expected call of GetBucketAccelerateConfigurationRequest +// GetBucketAccelerateConfigurationRequest indicates an expected call of GetBucketAccelerateConfigurationRequest. func (mr *MockS3APIMockRecorder) GetBucketAccelerateConfigurationRequest(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBucketAccelerateConfigurationRequest", reflect.TypeOf((*MockS3API)(nil).GetBucketAccelerateConfigurationRequest), arg0) } -// GetBucketAccelerateConfigurationWithContext mocks base method +// GetBucketAccelerateConfigurationWithContext mocks base method. func (m *MockS3API) GetBucketAccelerateConfigurationWithContext(arg0 context.Context, arg1 *s3.GetBucketAccelerateConfigurationInput, arg2 ...request.Option) (*s3.GetBucketAccelerateConfigurationOutput, error) { m.ctrl.T.Helper() varargs := []interface{}{arg0, arg1} @@ -1131,14 +1181,14 @@ func (m *MockS3API) GetBucketAccelerateConfigurationWithContext(arg0 context.Con return ret0, ret1 } -// GetBucketAccelerateConfigurationWithContext indicates an expected call of GetBucketAccelerateConfigurationWithContext +// GetBucketAccelerateConfigurationWithContext indicates an expected call of GetBucketAccelerateConfigurationWithContext. func (mr *MockS3APIMockRecorder) GetBucketAccelerateConfigurationWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{arg0, arg1}, arg2...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBucketAccelerateConfigurationWithContext", reflect.TypeOf((*MockS3API)(nil).GetBucketAccelerateConfigurationWithContext), varargs...) } -// GetBucketAcl mocks base method +// GetBucketAcl mocks base method. func (m *MockS3API) GetBucketAcl(arg0 *s3.GetBucketAclInput) (*s3.GetBucketAclOutput, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "GetBucketAcl", arg0) @@ -1147,13 +1197,13 @@ func (m *MockS3API) GetBucketAcl(arg0 *s3.GetBucketAclInput) (*s3.GetBucketAclOu return ret0, ret1 } -// GetBucketAcl indicates an expected call of GetBucketAcl +// GetBucketAcl indicates an expected call of GetBucketAcl. func (mr *MockS3APIMockRecorder) GetBucketAcl(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBucketAcl", reflect.TypeOf((*MockS3API)(nil).GetBucketAcl), arg0) } -// GetBucketAclRequest mocks base method +// GetBucketAclRequest mocks base method. func (m *MockS3API) GetBucketAclRequest(arg0 *s3.GetBucketAclInput) (*request.Request, *s3.GetBucketAclOutput) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "GetBucketAclRequest", arg0) @@ -1162,13 +1212,13 @@ func (m *MockS3API) GetBucketAclRequest(arg0 *s3.GetBucketAclInput) (*request.Re return ret0, ret1 } -// GetBucketAclRequest indicates an expected call of GetBucketAclRequest +// GetBucketAclRequest indicates an expected call of GetBucketAclRequest. func (mr *MockS3APIMockRecorder) GetBucketAclRequest(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBucketAclRequest", reflect.TypeOf((*MockS3API)(nil).GetBucketAclRequest), arg0) } -// GetBucketAclWithContext mocks base method +// GetBucketAclWithContext mocks base method. func (m *MockS3API) GetBucketAclWithContext(arg0 context.Context, arg1 *s3.GetBucketAclInput, arg2 ...request.Option) (*s3.GetBucketAclOutput, error) { m.ctrl.T.Helper() varargs := []interface{}{arg0, arg1} @@ -1181,14 +1231,14 @@ func (m *MockS3API) GetBucketAclWithContext(arg0 context.Context, arg1 *s3.GetBu return ret0, ret1 } -// GetBucketAclWithContext indicates an expected call of GetBucketAclWithContext +// GetBucketAclWithContext indicates an expected call of GetBucketAclWithContext. func (mr *MockS3APIMockRecorder) GetBucketAclWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{arg0, arg1}, arg2...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBucketAclWithContext", reflect.TypeOf((*MockS3API)(nil).GetBucketAclWithContext), varargs...) } -// GetBucketAnalyticsConfiguration mocks base method +// GetBucketAnalyticsConfiguration mocks base method. func (m *MockS3API) GetBucketAnalyticsConfiguration(arg0 *s3.GetBucketAnalyticsConfigurationInput) (*s3.GetBucketAnalyticsConfigurationOutput, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "GetBucketAnalyticsConfiguration", arg0) @@ -1197,13 +1247,13 @@ func (m *MockS3API) GetBucketAnalyticsConfiguration(arg0 *s3.GetBucketAnalyticsC return ret0, ret1 } -// GetBucketAnalyticsConfiguration indicates an expected call of GetBucketAnalyticsConfiguration +// GetBucketAnalyticsConfiguration indicates an expected call of GetBucketAnalyticsConfiguration. func (mr *MockS3APIMockRecorder) GetBucketAnalyticsConfiguration(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBucketAnalyticsConfiguration", reflect.TypeOf((*MockS3API)(nil).GetBucketAnalyticsConfiguration), arg0) } -// GetBucketAnalyticsConfigurationRequest mocks base method +// GetBucketAnalyticsConfigurationRequest mocks base method. func (m *MockS3API) GetBucketAnalyticsConfigurationRequest(arg0 *s3.GetBucketAnalyticsConfigurationInput) (*request.Request, *s3.GetBucketAnalyticsConfigurationOutput) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "GetBucketAnalyticsConfigurationRequest", arg0) @@ -1212,13 +1262,13 @@ func (m *MockS3API) GetBucketAnalyticsConfigurationRequest(arg0 *s3.GetBucketAna return ret0, ret1 } -// GetBucketAnalyticsConfigurationRequest indicates an expected call of GetBucketAnalyticsConfigurationRequest +// GetBucketAnalyticsConfigurationRequest indicates an expected call of GetBucketAnalyticsConfigurationRequest. func (mr *MockS3APIMockRecorder) GetBucketAnalyticsConfigurationRequest(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBucketAnalyticsConfigurationRequest", reflect.TypeOf((*MockS3API)(nil).GetBucketAnalyticsConfigurationRequest), arg0) } -// GetBucketAnalyticsConfigurationWithContext mocks base method +// GetBucketAnalyticsConfigurationWithContext mocks base method. func (m *MockS3API) GetBucketAnalyticsConfigurationWithContext(arg0 context.Context, arg1 *s3.GetBucketAnalyticsConfigurationInput, arg2 ...request.Option) (*s3.GetBucketAnalyticsConfigurationOutput, error) { m.ctrl.T.Helper() varargs := []interface{}{arg0, arg1} @@ -1231,14 +1281,14 @@ func (m *MockS3API) GetBucketAnalyticsConfigurationWithContext(arg0 context.Cont return ret0, ret1 } -// GetBucketAnalyticsConfigurationWithContext indicates an expected call of GetBucketAnalyticsConfigurationWithContext +// GetBucketAnalyticsConfigurationWithContext indicates an expected call of GetBucketAnalyticsConfigurationWithContext. func (mr *MockS3APIMockRecorder) GetBucketAnalyticsConfigurationWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{arg0, arg1}, arg2...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBucketAnalyticsConfigurationWithContext", reflect.TypeOf((*MockS3API)(nil).GetBucketAnalyticsConfigurationWithContext), varargs...) } -// GetBucketCors mocks base method +// GetBucketCors mocks base method. func (m *MockS3API) GetBucketCors(arg0 *s3.GetBucketCorsInput) (*s3.GetBucketCorsOutput, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "GetBucketCors", arg0) @@ -1247,13 +1297,13 @@ func (m *MockS3API) GetBucketCors(arg0 *s3.GetBucketCorsInput) (*s3.GetBucketCor return ret0, ret1 } -// GetBucketCors indicates an expected call of GetBucketCors +// GetBucketCors indicates an expected call of GetBucketCors. func (mr *MockS3APIMockRecorder) GetBucketCors(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBucketCors", reflect.TypeOf((*MockS3API)(nil).GetBucketCors), arg0) } -// GetBucketCorsRequest mocks base method +// GetBucketCorsRequest mocks base method. func (m *MockS3API) GetBucketCorsRequest(arg0 *s3.GetBucketCorsInput) (*request.Request, *s3.GetBucketCorsOutput) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "GetBucketCorsRequest", arg0) @@ -1262,13 +1312,13 @@ func (m *MockS3API) GetBucketCorsRequest(arg0 *s3.GetBucketCorsInput) (*request. return ret0, ret1 } -// GetBucketCorsRequest indicates an expected call of GetBucketCorsRequest +// GetBucketCorsRequest indicates an expected call of GetBucketCorsRequest. func (mr *MockS3APIMockRecorder) GetBucketCorsRequest(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBucketCorsRequest", reflect.TypeOf((*MockS3API)(nil).GetBucketCorsRequest), arg0) } -// GetBucketCorsWithContext mocks base method +// GetBucketCorsWithContext mocks base method. func (m *MockS3API) GetBucketCorsWithContext(arg0 context.Context, arg1 *s3.GetBucketCorsInput, arg2 ...request.Option) (*s3.GetBucketCorsOutput, error) { m.ctrl.T.Helper() varargs := []interface{}{arg0, arg1} @@ -1281,14 +1331,14 @@ func (m *MockS3API) GetBucketCorsWithContext(arg0 context.Context, arg1 *s3.GetB return ret0, ret1 } -// GetBucketCorsWithContext indicates an expected call of GetBucketCorsWithContext +// GetBucketCorsWithContext indicates an expected call of GetBucketCorsWithContext. func (mr *MockS3APIMockRecorder) GetBucketCorsWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{arg0, arg1}, arg2...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBucketCorsWithContext", reflect.TypeOf((*MockS3API)(nil).GetBucketCorsWithContext), varargs...) } -// GetBucketEncryption mocks base method +// GetBucketEncryption mocks base method. func (m *MockS3API) GetBucketEncryption(arg0 *s3.GetBucketEncryptionInput) (*s3.GetBucketEncryptionOutput, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "GetBucketEncryption", arg0) @@ -1297,13 +1347,13 @@ func (m *MockS3API) GetBucketEncryption(arg0 *s3.GetBucketEncryptionInput) (*s3. return ret0, ret1 } -// GetBucketEncryption indicates an expected call of GetBucketEncryption +// GetBucketEncryption indicates an expected call of GetBucketEncryption. func (mr *MockS3APIMockRecorder) GetBucketEncryption(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBucketEncryption", reflect.TypeOf((*MockS3API)(nil).GetBucketEncryption), arg0) } -// GetBucketEncryptionRequest mocks base method +// GetBucketEncryptionRequest mocks base method. func (m *MockS3API) GetBucketEncryptionRequest(arg0 *s3.GetBucketEncryptionInput) (*request.Request, *s3.GetBucketEncryptionOutput) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "GetBucketEncryptionRequest", arg0) @@ -1312,13 +1362,13 @@ func (m *MockS3API) GetBucketEncryptionRequest(arg0 *s3.GetBucketEncryptionInput return ret0, ret1 } -// GetBucketEncryptionRequest indicates an expected call of GetBucketEncryptionRequest +// GetBucketEncryptionRequest indicates an expected call of GetBucketEncryptionRequest. func (mr *MockS3APIMockRecorder) GetBucketEncryptionRequest(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBucketEncryptionRequest", reflect.TypeOf((*MockS3API)(nil).GetBucketEncryptionRequest), arg0) } -// GetBucketEncryptionWithContext mocks base method +// GetBucketEncryptionWithContext mocks base method. func (m *MockS3API) GetBucketEncryptionWithContext(arg0 context.Context, arg1 *s3.GetBucketEncryptionInput, arg2 ...request.Option) (*s3.GetBucketEncryptionOutput, error) { m.ctrl.T.Helper() varargs := []interface{}{arg0, arg1} @@ -1331,14 +1381,64 @@ func (m *MockS3API) GetBucketEncryptionWithContext(arg0 context.Context, arg1 *s return ret0, ret1 } -// GetBucketEncryptionWithContext indicates an expected call of GetBucketEncryptionWithContext +// GetBucketEncryptionWithContext indicates an expected call of GetBucketEncryptionWithContext. func (mr *MockS3APIMockRecorder) GetBucketEncryptionWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{arg0, arg1}, arg2...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBucketEncryptionWithContext", reflect.TypeOf((*MockS3API)(nil).GetBucketEncryptionWithContext), varargs...) } -// GetBucketInventoryConfiguration mocks base method +// GetBucketIntelligentTieringConfiguration mocks base method. +func (m *MockS3API) GetBucketIntelligentTieringConfiguration(arg0 *s3.GetBucketIntelligentTieringConfigurationInput) (*s3.GetBucketIntelligentTieringConfigurationOutput, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetBucketIntelligentTieringConfiguration", arg0) + ret0, _ := ret[0].(*s3.GetBucketIntelligentTieringConfigurationOutput) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetBucketIntelligentTieringConfiguration indicates an expected call of GetBucketIntelligentTieringConfiguration. +func (mr *MockS3APIMockRecorder) GetBucketIntelligentTieringConfiguration(arg0 interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBucketIntelligentTieringConfiguration", reflect.TypeOf((*MockS3API)(nil).GetBucketIntelligentTieringConfiguration), arg0) +} + +// GetBucketIntelligentTieringConfigurationRequest mocks base method. +func (m *MockS3API) GetBucketIntelligentTieringConfigurationRequest(arg0 *s3.GetBucketIntelligentTieringConfigurationInput) (*request.Request, *s3.GetBucketIntelligentTieringConfigurationOutput) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetBucketIntelligentTieringConfigurationRequest", arg0) + ret0, _ := ret[0].(*request.Request) + ret1, _ := ret[1].(*s3.GetBucketIntelligentTieringConfigurationOutput) + return ret0, ret1 +} + +// GetBucketIntelligentTieringConfigurationRequest indicates an expected call of GetBucketIntelligentTieringConfigurationRequest. +func (mr *MockS3APIMockRecorder) GetBucketIntelligentTieringConfigurationRequest(arg0 interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBucketIntelligentTieringConfigurationRequest", reflect.TypeOf((*MockS3API)(nil).GetBucketIntelligentTieringConfigurationRequest), arg0) +} + +// GetBucketIntelligentTieringConfigurationWithContext mocks base method. +func (m *MockS3API) GetBucketIntelligentTieringConfigurationWithContext(arg0 context.Context, arg1 *s3.GetBucketIntelligentTieringConfigurationInput, arg2 ...request.Option) (*s3.GetBucketIntelligentTieringConfigurationOutput, error) { + m.ctrl.T.Helper() + varargs := []interface{}{arg0, arg1} + for _, a := range arg2 { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "GetBucketIntelligentTieringConfigurationWithContext", varargs...) + ret0, _ := ret[0].(*s3.GetBucketIntelligentTieringConfigurationOutput) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetBucketIntelligentTieringConfigurationWithContext indicates an expected call of GetBucketIntelligentTieringConfigurationWithContext. +func (mr *MockS3APIMockRecorder) GetBucketIntelligentTieringConfigurationWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + varargs := append([]interface{}{arg0, arg1}, arg2...) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBucketIntelligentTieringConfigurationWithContext", reflect.TypeOf((*MockS3API)(nil).GetBucketIntelligentTieringConfigurationWithContext), varargs...) +} + +// GetBucketInventoryConfiguration mocks base method. func (m *MockS3API) GetBucketInventoryConfiguration(arg0 *s3.GetBucketInventoryConfigurationInput) (*s3.GetBucketInventoryConfigurationOutput, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "GetBucketInventoryConfiguration", arg0) @@ -1347,13 +1447,13 @@ func (m *MockS3API) GetBucketInventoryConfiguration(arg0 *s3.GetBucketInventoryC return ret0, ret1 } -// GetBucketInventoryConfiguration indicates an expected call of GetBucketInventoryConfiguration +// GetBucketInventoryConfiguration indicates an expected call of GetBucketInventoryConfiguration. func (mr *MockS3APIMockRecorder) GetBucketInventoryConfiguration(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBucketInventoryConfiguration", reflect.TypeOf((*MockS3API)(nil).GetBucketInventoryConfiguration), arg0) } -// GetBucketInventoryConfigurationRequest mocks base method +// GetBucketInventoryConfigurationRequest mocks base method. func (m *MockS3API) GetBucketInventoryConfigurationRequest(arg0 *s3.GetBucketInventoryConfigurationInput) (*request.Request, *s3.GetBucketInventoryConfigurationOutput) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "GetBucketInventoryConfigurationRequest", arg0) @@ -1362,13 +1462,13 @@ func (m *MockS3API) GetBucketInventoryConfigurationRequest(arg0 *s3.GetBucketInv return ret0, ret1 } -// GetBucketInventoryConfigurationRequest indicates an expected call of GetBucketInventoryConfigurationRequest +// GetBucketInventoryConfigurationRequest indicates an expected call of GetBucketInventoryConfigurationRequest. func (mr *MockS3APIMockRecorder) GetBucketInventoryConfigurationRequest(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBucketInventoryConfigurationRequest", reflect.TypeOf((*MockS3API)(nil).GetBucketInventoryConfigurationRequest), arg0) } -// GetBucketInventoryConfigurationWithContext mocks base method +// GetBucketInventoryConfigurationWithContext mocks base method. func (m *MockS3API) GetBucketInventoryConfigurationWithContext(arg0 context.Context, arg1 *s3.GetBucketInventoryConfigurationInput, arg2 ...request.Option) (*s3.GetBucketInventoryConfigurationOutput, error) { m.ctrl.T.Helper() varargs := []interface{}{arg0, arg1} @@ -1381,14 +1481,14 @@ func (m *MockS3API) GetBucketInventoryConfigurationWithContext(arg0 context.Cont return ret0, ret1 } -// GetBucketInventoryConfigurationWithContext indicates an expected call of GetBucketInventoryConfigurationWithContext +// GetBucketInventoryConfigurationWithContext indicates an expected call of GetBucketInventoryConfigurationWithContext. func (mr *MockS3APIMockRecorder) GetBucketInventoryConfigurationWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{arg0, arg1}, arg2...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBucketInventoryConfigurationWithContext", reflect.TypeOf((*MockS3API)(nil).GetBucketInventoryConfigurationWithContext), varargs...) } -// GetBucketLifecycle mocks base method +// GetBucketLifecycle mocks base method. func (m *MockS3API) GetBucketLifecycle(arg0 *s3.GetBucketLifecycleInput) (*s3.GetBucketLifecycleOutput, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "GetBucketLifecycle", arg0) @@ -1397,13 +1497,13 @@ func (m *MockS3API) GetBucketLifecycle(arg0 *s3.GetBucketLifecycleInput) (*s3.Ge return ret0, ret1 } -// GetBucketLifecycle indicates an expected call of GetBucketLifecycle +// GetBucketLifecycle indicates an expected call of GetBucketLifecycle. func (mr *MockS3APIMockRecorder) GetBucketLifecycle(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBucketLifecycle", reflect.TypeOf((*MockS3API)(nil).GetBucketLifecycle), arg0) } -// GetBucketLifecycleConfiguration mocks base method +// GetBucketLifecycleConfiguration mocks base method. func (m *MockS3API) GetBucketLifecycleConfiguration(arg0 *s3.GetBucketLifecycleConfigurationInput) (*s3.GetBucketLifecycleConfigurationOutput, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "GetBucketLifecycleConfiguration", arg0) @@ -1412,13 +1512,13 @@ func (m *MockS3API) GetBucketLifecycleConfiguration(arg0 *s3.GetBucketLifecycleC return ret0, ret1 } -// GetBucketLifecycleConfiguration indicates an expected call of GetBucketLifecycleConfiguration +// GetBucketLifecycleConfiguration indicates an expected call of GetBucketLifecycleConfiguration. func (mr *MockS3APIMockRecorder) GetBucketLifecycleConfiguration(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBucketLifecycleConfiguration", reflect.TypeOf((*MockS3API)(nil).GetBucketLifecycleConfiguration), arg0) } -// GetBucketLifecycleConfigurationRequest mocks base method +// GetBucketLifecycleConfigurationRequest mocks base method. func (m *MockS3API) GetBucketLifecycleConfigurationRequest(arg0 *s3.GetBucketLifecycleConfigurationInput) (*request.Request, *s3.GetBucketLifecycleConfigurationOutput) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "GetBucketLifecycleConfigurationRequest", arg0) @@ -1427,13 +1527,13 @@ func (m *MockS3API) GetBucketLifecycleConfigurationRequest(arg0 *s3.GetBucketLif return ret0, ret1 } -// GetBucketLifecycleConfigurationRequest indicates an expected call of GetBucketLifecycleConfigurationRequest +// GetBucketLifecycleConfigurationRequest indicates an expected call of GetBucketLifecycleConfigurationRequest. func (mr *MockS3APIMockRecorder) GetBucketLifecycleConfigurationRequest(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBucketLifecycleConfigurationRequest", reflect.TypeOf((*MockS3API)(nil).GetBucketLifecycleConfigurationRequest), arg0) } -// GetBucketLifecycleConfigurationWithContext mocks base method +// GetBucketLifecycleConfigurationWithContext mocks base method. func (m *MockS3API) GetBucketLifecycleConfigurationWithContext(arg0 context.Context, arg1 *s3.GetBucketLifecycleConfigurationInput, arg2 ...request.Option) (*s3.GetBucketLifecycleConfigurationOutput, error) { m.ctrl.T.Helper() varargs := []interface{}{arg0, arg1} @@ -1446,14 +1546,14 @@ func (m *MockS3API) GetBucketLifecycleConfigurationWithContext(arg0 context.Cont return ret0, ret1 } -// GetBucketLifecycleConfigurationWithContext indicates an expected call of GetBucketLifecycleConfigurationWithContext +// GetBucketLifecycleConfigurationWithContext indicates an expected call of GetBucketLifecycleConfigurationWithContext. func (mr *MockS3APIMockRecorder) GetBucketLifecycleConfigurationWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{arg0, arg1}, arg2...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBucketLifecycleConfigurationWithContext", reflect.TypeOf((*MockS3API)(nil).GetBucketLifecycleConfigurationWithContext), varargs...) } -// GetBucketLifecycleRequest mocks base method +// GetBucketLifecycleRequest mocks base method. func (m *MockS3API) GetBucketLifecycleRequest(arg0 *s3.GetBucketLifecycleInput) (*request.Request, *s3.GetBucketLifecycleOutput) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "GetBucketLifecycleRequest", arg0) @@ -1462,13 +1562,13 @@ func (m *MockS3API) GetBucketLifecycleRequest(arg0 *s3.GetBucketLifecycleInput) return ret0, ret1 } -// GetBucketLifecycleRequest indicates an expected call of GetBucketLifecycleRequest +// GetBucketLifecycleRequest indicates an expected call of GetBucketLifecycleRequest. func (mr *MockS3APIMockRecorder) GetBucketLifecycleRequest(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBucketLifecycleRequest", reflect.TypeOf((*MockS3API)(nil).GetBucketLifecycleRequest), arg0) } -// GetBucketLifecycleWithContext mocks base method +// GetBucketLifecycleWithContext mocks base method. func (m *MockS3API) GetBucketLifecycleWithContext(arg0 context.Context, arg1 *s3.GetBucketLifecycleInput, arg2 ...request.Option) (*s3.GetBucketLifecycleOutput, error) { m.ctrl.T.Helper() varargs := []interface{}{arg0, arg1} @@ -1481,14 +1581,14 @@ func (m *MockS3API) GetBucketLifecycleWithContext(arg0 context.Context, arg1 *s3 return ret0, ret1 } -// GetBucketLifecycleWithContext indicates an expected call of GetBucketLifecycleWithContext +// GetBucketLifecycleWithContext indicates an expected call of GetBucketLifecycleWithContext. func (mr *MockS3APIMockRecorder) GetBucketLifecycleWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{arg0, arg1}, arg2...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBucketLifecycleWithContext", reflect.TypeOf((*MockS3API)(nil).GetBucketLifecycleWithContext), varargs...) } -// GetBucketLocation mocks base method +// GetBucketLocation mocks base method. func (m *MockS3API) GetBucketLocation(arg0 *s3.GetBucketLocationInput) (*s3.GetBucketLocationOutput, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "GetBucketLocation", arg0) @@ -1497,13 +1597,13 @@ func (m *MockS3API) GetBucketLocation(arg0 *s3.GetBucketLocationInput) (*s3.GetB return ret0, ret1 } -// GetBucketLocation indicates an expected call of GetBucketLocation +// GetBucketLocation indicates an expected call of GetBucketLocation. func (mr *MockS3APIMockRecorder) GetBucketLocation(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBucketLocation", reflect.TypeOf((*MockS3API)(nil).GetBucketLocation), arg0) } -// GetBucketLocationRequest mocks base method +// GetBucketLocationRequest mocks base method. func (m *MockS3API) GetBucketLocationRequest(arg0 *s3.GetBucketLocationInput) (*request.Request, *s3.GetBucketLocationOutput) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "GetBucketLocationRequest", arg0) @@ -1512,13 +1612,13 @@ func (m *MockS3API) GetBucketLocationRequest(arg0 *s3.GetBucketLocationInput) (* return ret0, ret1 } -// GetBucketLocationRequest indicates an expected call of GetBucketLocationRequest +// GetBucketLocationRequest indicates an expected call of GetBucketLocationRequest. func (mr *MockS3APIMockRecorder) GetBucketLocationRequest(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBucketLocationRequest", reflect.TypeOf((*MockS3API)(nil).GetBucketLocationRequest), arg0) } -// GetBucketLocationWithContext mocks base method +// GetBucketLocationWithContext mocks base method. func (m *MockS3API) GetBucketLocationWithContext(arg0 context.Context, arg1 *s3.GetBucketLocationInput, arg2 ...request.Option) (*s3.GetBucketLocationOutput, error) { m.ctrl.T.Helper() varargs := []interface{}{arg0, arg1} @@ -1531,14 +1631,14 @@ func (m *MockS3API) GetBucketLocationWithContext(arg0 context.Context, arg1 *s3. return ret0, ret1 } -// GetBucketLocationWithContext indicates an expected call of GetBucketLocationWithContext +// GetBucketLocationWithContext indicates an expected call of GetBucketLocationWithContext. func (mr *MockS3APIMockRecorder) GetBucketLocationWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{arg0, arg1}, arg2...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBucketLocationWithContext", reflect.TypeOf((*MockS3API)(nil).GetBucketLocationWithContext), varargs...) } -// GetBucketLogging mocks base method +// GetBucketLogging mocks base method. func (m *MockS3API) GetBucketLogging(arg0 *s3.GetBucketLoggingInput) (*s3.GetBucketLoggingOutput, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "GetBucketLogging", arg0) @@ -1547,13 +1647,13 @@ func (m *MockS3API) GetBucketLogging(arg0 *s3.GetBucketLoggingInput) (*s3.GetBuc return ret0, ret1 } -// GetBucketLogging indicates an expected call of GetBucketLogging +// GetBucketLogging indicates an expected call of GetBucketLogging. func (mr *MockS3APIMockRecorder) GetBucketLogging(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBucketLogging", reflect.TypeOf((*MockS3API)(nil).GetBucketLogging), arg0) } -// GetBucketLoggingRequest mocks base method +// GetBucketLoggingRequest mocks base method. func (m *MockS3API) GetBucketLoggingRequest(arg0 *s3.GetBucketLoggingInput) (*request.Request, *s3.GetBucketLoggingOutput) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "GetBucketLoggingRequest", arg0) @@ -1562,13 +1662,13 @@ func (m *MockS3API) GetBucketLoggingRequest(arg0 *s3.GetBucketLoggingInput) (*re return ret0, ret1 } -// GetBucketLoggingRequest indicates an expected call of GetBucketLoggingRequest +// GetBucketLoggingRequest indicates an expected call of GetBucketLoggingRequest. func (mr *MockS3APIMockRecorder) GetBucketLoggingRequest(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBucketLoggingRequest", reflect.TypeOf((*MockS3API)(nil).GetBucketLoggingRequest), arg0) } -// GetBucketLoggingWithContext mocks base method +// GetBucketLoggingWithContext mocks base method. func (m *MockS3API) GetBucketLoggingWithContext(arg0 context.Context, arg1 *s3.GetBucketLoggingInput, arg2 ...request.Option) (*s3.GetBucketLoggingOutput, error) { m.ctrl.T.Helper() varargs := []interface{}{arg0, arg1} @@ -1581,14 +1681,14 @@ func (m *MockS3API) GetBucketLoggingWithContext(arg0 context.Context, arg1 *s3.G return ret0, ret1 } -// GetBucketLoggingWithContext indicates an expected call of GetBucketLoggingWithContext +// GetBucketLoggingWithContext indicates an expected call of GetBucketLoggingWithContext. func (mr *MockS3APIMockRecorder) GetBucketLoggingWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{arg0, arg1}, arg2...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBucketLoggingWithContext", reflect.TypeOf((*MockS3API)(nil).GetBucketLoggingWithContext), varargs...) } -// GetBucketMetricsConfiguration mocks base method +// GetBucketMetricsConfiguration mocks base method. func (m *MockS3API) GetBucketMetricsConfiguration(arg0 *s3.GetBucketMetricsConfigurationInput) (*s3.GetBucketMetricsConfigurationOutput, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "GetBucketMetricsConfiguration", arg0) @@ -1597,13 +1697,13 @@ func (m *MockS3API) GetBucketMetricsConfiguration(arg0 *s3.GetBucketMetricsConfi return ret0, ret1 } -// GetBucketMetricsConfiguration indicates an expected call of GetBucketMetricsConfiguration +// GetBucketMetricsConfiguration indicates an expected call of GetBucketMetricsConfiguration. func (mr *MockS3APIMockRecorder) GetBucketMetricsConfiguration(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBucketMetricsConfiguration", reflect.TypeOf((*MockS3API)(nil).GetBucketMetricsConfiguration), arg0) } -// GetBucketMetricsConfigurationRequest mocks base method +// GetBucketMetricsConfigurationRequest mocks base method. func (m *MockS3API) GetBucketMetricsConfigurationRequest(arg0 *s3.GetBucketMetricsConfigurationInput) (*request.Request, *s3.GetBucketMetricsConfigurationOutput) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "GetBucketMetricsConfigurationRequest", arg0) @@ -1612,13 +1712,13 @@ func (m *MockS3API) GetBucketMetricsConfigurationRequest(arg0 *s3.GetBucketMetri return ret0, ret1 } -// GetBucketMetricsConfigurationRequest indicates an expected call of GetBucketMetricsConfigurationRequest +// GetBucketMetricsConfigurationRequest indicates an expected call of GetBucketMetricsConfigurationRequest. func (mr *MockS3APIMockRecorder) GetBucketMetricsConfigurationRequest(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBucketMetricsConfigurationRequest", reflect.TypeOf((*MockS3API)(nil).GetBucketMetricsConfigurationRequest), arg0) } -// GetBucketMetricsConfigurationWithContext mocks base method +// GetBucketMetricsConfigurationWithContext mocks base method. func (m *MockS3API) GetBucketMetricsConfigurationWithContext(arg0 context.Context, arg1 *s3.GetBucketMetricsConfigurationInput, arg2 ...request.Option) (*s3.GetBucketMetricsConfigurationOutput, error) { m.ctrl.T.Helper() varargs := []interface{}{arg0, arg1} @@ -1631,14 +1731,14 @@ func (m *MockS3API) GetBucketMetricsConfigurationWithContext(arg0 context.Contex return ret0, ret1 } -// GetBucketMetricsConfigurationWithContext indicates an expected call of GetBucketMetricsConfigurationWithContext +// GetBucketMetricsConfigurationWithContext indicates an expected call of GetBucketMetricsConfigurationWithContext. func (mr *MockS3APIMockRecorder) GetBucketMetricsConfigurationWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{arg0, arg1}, arg2...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBucketMetricsConfigurationWithContext", reflect.TypeOf((*MockS3API)(nil).GetBucketMetricsConfigurationWithContext), varargs...) } -// GetBucketNotification mocks base method +// GetBucketNotification mocks base method. func (m *MockS3API) GetBucketNotification(arg0 *s3.GetBucketNotificationConfigurationRequest) (*s3.NotificationConfigurationDeprecated, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "GetBucketNotification", arg0) @@ -1647,13 +1747,13 @@ func (m *MockS3API) GetBucketNotification(arg0 *s3.GetBucketNotificationConfigur return ret0, ret1 } -// GetBucketNotification indicates an expected call of GetBucketNotification +// GetBucketNotification indicates an expected call of GetBucketNotification. func (mr *MockS3APIMockRecorder) GetBucketNotification(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBucketNotification", reflect.TypeOf((*MockS3API)(nil).GetBucketNotification), arg0) } -// GetBucketNotificationConfiguration mocks base method +// GetBucketNotificationConfiguration mocks base method. func (m *MockS3API) GetBucketNotificationConfiguration(arg0 *s3.GetBucketNotificationConfigurationRequest) (*s3.NotificationConfiguration, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "GetBucketNotificationConfiguration", arg0) @@ -1662,13 +1762,13 @@ func (m *MockS3API) GetBucketNotificationConfiguration(arg0 *s3.GetBucketNotific return ret0, ret1 } -// GetBucketNotificationConfiguration indicates an expected call of GetBucketNotificationConfiguration +// GetBucketNotificationConfiguration indicates an expected call of GetBucketNotificationConfiguration. func (mr *MockS3APIMockRecorder) GetBucketNotificationConfiguration(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBucketNotificationConfiguration", reflect.TypeOf((*MockS3API)(nil).GetBucketNotificationConfiguration), arg0) } -// GetBucketNotificationConfigurationRequest mocks base method +// GetBucketNotificationConfigurationRequest mocks base method. func (m *MockS3API) GetBucketNotificationConfigurationRequest(arg0 *s3.GetBucketNotificationConfigurationRequest) (*request.Request, *s3.NotificationConfiguration) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "GetBucketNotificationConfigurationRequest", arg0) @@ -1677,13 +1777,13 @@ func (m *MockS3API) GetBucketNotificationConfigurationRequest(arg0 *s3.GetBucket return ret0, ret1 } -// GetBucketNotificationConfigurationRequest indicates an expected call of GetBucketNotificationConfigurationRequest +// GetBucketNotificationConfigurationRequest indicates an expected call of GetBucketNotificationConfigurationRequest. func (mr *MockS3APIMockRecorder) GetBucketNotificationConfigurationRequest(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBucketNotificationConfigurationRequest", reflect.TypeOf((*MockS3API)(nil).GetBucketNotificationConfigurationRequest), arg0) } -// GetBucketNotificationConfigurationWithContext mocks base method +// GetBucketNotificationConfigurationWithContext mocks base method. func (m *MockS3API) GetBucketNotificationConfigurationWithContext(arg0 context.Context, arg1 *s3.GetBucketNotificationConfigurationRequest, arg2 ...request.Option) (*s3.NotificationConfiguration, error) { m.ctrl.T.Helper() varargs := []interface{}{arg0, arg1} @@ -1696,14 +1796,14 @@ func (m *MockS3API) GetBucketNotificationConfigurationWithContext(arg0 context.C return ret0, ret1 } -// GetBucketNotificationConfigurationWithContext indicates an expected call of GetBucketNotificationConfigurationWithContext +// GetBucketNotificationConfigurationWithContext indicates an expected call of GetBucketNotificationConfigurationWithContext. func (mr *MockS3APIMockRecorder) GetBucketNotificationConfigurationWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{arg0, arg1}, arg2...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBucketNotificationConfigurationWithContext", reflect.TypeOf((*MockS3API)(nil).GetBucketNotificationConfigurationWithContext), varargs...) } -// GetBucketNotificationRequest mocks base method +// GetBucketNotificationRequest mocks base method. func (m *MockS3API) GetBucketNotificationRequest(arg0 *s3.GetBucketNotificationConfigurationRequest) (*request.Request, *s3.NotificationConfigurationDeprecated) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "GetBucketNotificationRequest", arg0) @@ -1712,13 +1812,13 @@ func (m *MockS3API) GetBucketNotificationRequest(arg0 *s3.GetBucketNotificationC return ret0, ret1 } -// GetBucketNotificationRequest indicates an expected call of GetBucketNotificationRequest +// GetBucketNotificationRequest indicates an expected call of GetBucketNotificationRequest. func (mr *MockS3APIMockRecorder) GetBucketNotificationRequest(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBucketNotificationRequest", reflect.TypeOf((*MockS3API)(nil).GetBucketNotificationRequest), arg0) } -// GetBucketNotificationWithContext mocks base method +// GetBucketNotificationWithContext mocks base method. func (m *MockS3API) GetBucketNotificationWithContext(arg0 context.Context, arg1 *s3.GetBucketNotificationConfigurationRequest, arg2 ...request.Option) (*s3.NotificationConfigurationDeprecated, error) { m.ctrl.T.Helper() varargs := []interface{}{arg0, arg1} @@ -1731,14 +1831,14 @@ func (m *MockS3API) GetBucketNotificationWithContext(arg0 context.Context, arg1 return ret0, ret1 } -// GetBucketNotificationWithContext indicates an expected call of GetBucketNotificationWithContext +// GetBucketNotificationWithContext indicates an expected call of GetBucketNotificationWithContext. func (mr *MockS3APIMockRecorder) GetBucketNotificationWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{arg0, arg1}, arg2...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBucketNotificationWithContext", reflect.TypeOf((*MockS3API)(nil).GetBucketNotificationWithContext), varargs...) } -// GetBucketOwnershipControls mocks base method +// GetBucketOwnershipControls mocks base method. func (m *MockS3API) GetBucketOwnershipControls(arg0 *s3.GetBucketOwnershipControlsInput) (*s3.GetBucketOwnershipControlsOutput, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "GetBucketOwnershipControls", arg0) @@ -1747,13 +1847,13 @@ func (m *MockS3API) GetBucketOwnershipControls(arg0 *s3.GetBucketOwnershipContro return ret0, ret1 } -// GetBucketOwnershipControls indicates an expected call of GetBucketOwnershipControls +// GetBucketOwnershipControls indicates an expected call of GetBucketOwnershipControls. func (mr *MockS3APIMockRecorder) GetBucketOwnershipControls(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBucketOwnershipControls", reflect.TypeOf((*MockS3API)(nil).GetBucketOwnershipControls), arg0) } -// GetBucketOwnershipControlsRequest mocks base method +// GetBucketOwnershipControlsRequest mocks base method. func (m *MockS3API) GetBucketOwnershipControlsRequest(arg0 *s3.GetBucketOwnershipControlsInput) (*request.Request, *s3.GetBucketOwnershipControlsOutput) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "GetBucketOwnershipControlsRequest", arg0) @@ -1762,13 +1862,13 @@ func (m *MockS3API) GetBucketOwnershipControlsRequest(arg0 *s3.GetBucketOwnershi return ret0, ret1 } -// GetBucketOwnershipControlsRequest indicates an expected call of GetBucketOwnershipControlsRequest +// GetBucketOwnershipControlsRequest indicates an expected call of GetBucketOwnershipControlsRequest. func (mr *MockS3APIMockRecorder) GetBucketOwnershipControlsRequest(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBucketOwnershipControlsRequest", reflect.TypeOf((*MockS3API)(nil).GetBucketOwnershipControlsRequest), arg0) } -// GetBucketOwnershipControlsWithContext mocks base method +// GetBucketOwnershipControlsWithContext mocks base method. func (m *MockS3API) GetBucketOwnershipControlsWithContext(arg0 context.Context, arg1 *s3.GetBucketOwnershipControlsInput, arg2 ...request.Option) (*s3.GetBucketOwnershipControlsOutput, error) { m.ctrl.T.Helper() varargs := []interface{}{arg0, arg1} @@ -1781,14 +1881,14 @@ func (m *MockS3API) GetBucketOwnershipControlsWithContext(arg0 context.Context, return ret0, ret1 } -// GetBucketOwnershipControlsWithContext indicates an expected call of GetBucketOwnershipControlsWithContext +// GetBucketOwnershipControlsWithContext indicates an expected call of GetBucketOwnershipControlsWithContext. func (mr *MockS3APIMockRecorder) GetBucketOwnershipControlsWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{arg0, arg1}, arg2...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBucketOwnershipControlsWithContext", reflect.TypeOf((*MockS3API)(nil).GetBucketOwnershipControlsWithContext), varargs...) } -// GetBucketPolicy mocks base method +// GetBucketPolicy mocks base method. func (m *MockS3API) GetBucketPolicy(arg0 *s3.GetBucketPolicyInput) (*s3.GetBucketPolicyOutput, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "GetBucketPolicy", arg0) @@ -1797,13 +1897,13 @@ func (m *MockS3API) GetBucketPolicy(arg0 *s3.GetBucketPolicyInput) (*s3.GetBucke return ret0, ret1 } -// GetBucketPolicy indicates an expected call of GetBucketPolicy +// GetBucketPolicy indicates an expected call of GetBucketPolicy. func (mr *MockS3APIMockRecorder) GetBucketPolicy(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBucketPolicy", reflect.TypeOf((*MockS3API)(nil).GetBucketPolicy), arg0) } -// GetBucketPolicyRequest mocks base method +// GetBucketPolicyRequest mocks base method. func (m *MockS3API) GetBucketPolicyRequest(arg0 *s3.GetBucketPolicyInput) (*request.Request, *s3.GetBucketPolicyOutput) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "GetBucketPolicyRequest", arg0) @@ -1812,13 +1912,13 @@ func (m *MockS3API) GetBucketPolicyRequest(arg0 *s3.GetBucketPolicyInput) (*requ return ret0, ret1 } -// GetBucketPolicyRequest indicates an expected call of GetBucketPolicyRequest +// GetBucketPolicyRequest indicates an expected call of GetBucketPolicyRequest. func (mr *MockS3APIMockRecorder) GetBucketPolicyRequest(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBucketPolicyRequest", reflect.TypeOf((*MockS3API)(nil).GetBucketPolicyRequest), arg0) } -// GetBucketPolicyStatus mocks base method +// GetBucketPolicyStatus mocks base method. func (m *MockS3API) GetBucketPolicyStatus(arg0 *s3.GetBucketPolicyStatusInput) (*s3.GetBucketPolicyStatusOutput, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "GetBucketPolicyStatus", arg0) @@ -1827,13 +1927,13 @@ func (m *MockS3API) GetBucketPolicyStatus(arg0 *s3.GetBucketPolicyStatusInput) ( return ret0, ret1 } -// GetBucketPolicyStatus indicates an expected call of GetBucketPolicyStatus +// GetBucketPolicyStatus indicates an expected call of GetBucketPolicyStatus. func (mr *MockS3APIMockRecorder) GetBucketPolicyStatus(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBucketPolicyStatus", reflect.TypeOf((*MockS3API)(nil).GetBucketPolicyStatus), arg0) } -// GetBucketPolicyStatusRequest mocks base method +// GetBucketPolicyStatusRequest mocks base method. func (m *MockS3API) GetBucketPolicyStatusRequest(arg0 *s3.GetBucketPolicyStatusInput) (*request.Request, *s3.GetBucketPolicyStatusOutput) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "GetBucketPolicyStatusRequest", arg0) @@ -1842,13 +1942,13 @@ func (m *MockS3API) GetBucketPolicyStatusRequest(arg0 *s3.GetBucketPolicyStatusI return ret0, ret1 } -// GetBucketPolicyStatusRequest indicates an expected call of GetBucketPolicyStatusRequest +// GetBucketPolicyStatusRequest indicates an expected call of GetBucketPolicyStatusRequest. func (mr *MockS3APIMockRecorder) GetBucketPolicyStatusRequest(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBucketPolicyStatusRequest", reflect.TypeOf((*MockS3API)(nil).GetBucketPolicyStatusRequest), arg0) } -// GetBucketPolicyStatusWithContext mocks base method +// GetBucketPolicyStatusWithContext mocks base method. func (m *MockS3API) GetBucketPolicyStatusWithContext(arg0 context.Context, arg1 *s3.GetBucketPolicyStatusInput, arg2 ...request.Option) (*s3.GetBucketPolicyStatusOutput, error) { m.ctrl.T.Helper() varargs := []interface{}{arg0, arg1} @@ -1861,14 +1961,14 @@ func (m *MockS3API) GetBucketPolicyStatusWithContext(arg0 context.Context, arg1 return ret0, ret1 } -// GetBucketPolicyStatusWithContext indicates an expected call of GetBucketPolicyStatusWithContext +// GetBucketPolicyStatusWithContext indicates an expected call of GetBucketPolicyStatusWithContext. func (mr *MockS3APIMockRecorder) GetBucketPolicyStatusWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{arg0, arg1}, arg2...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBucketPolicyStatusWithContext", reflect.TypeOf((*MockS3API)(nil).GetBucketPolicyStatusWithContext), varargs...) } -// GetBucketPolicyWithContext mocks base method +// GetBucketPolicyWithContext mocks base method. func (m *MockS3API) GetBucketPolicyWithContext(arg0 context.Context, arg1 *s3.GetBucketPolicyInput, arg2 ...request.Option) (*s3.GetBucketPolicyOutput, error) { m.ctrl.T.Helper() varargs := []interface{}{arg0, arg1} @@ -1881,14 +1981,14 @@ func (m *MockS3API) GetBucketPolicyWithContext(arg0 context.Context, arg1 *s3.Ge return ret0, ret1 } -// GetBucketPolicyWithContext indicates an expected call of GetBucketPolicyWithContext +// GetBucketPolicyWithContext indicates an expected call of GetBucketPolicyWithContext. func (mr *MockS3APIMockRecorder) GetBucketPolicyWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{arg0, arg1}, arg2...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBucketPolicyWithContext", reflect.TypeOf((*MockS3API)(nil).GetBucketPolicyWithContext), varargs...) } -// GetBucketReplication mocks base method +// GetBucketReplication mocks base method. func (m *MockS3API) GetBucketReplication(arg0 *s3.GetBucketReplicationInput) (*s3.GetBucketReplicationOutput, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "GetBucketReplication", arg0) @@ -1897,13 +1997,13 @@ func (m *MockS3API) GetBucketReplication(arg0 *s3.GetBucketReplicationInput) (*s return ret0, ret1 } -// GetBucketReplication indicates an expected call of GetBucketReplication +// GetBucketReplication indicates an expected call of GetBucketReplication. func (mr *MockS3APIMockRecorder) GetBucketReplication(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBucketReplication", reflect.TypeOf((*MockS3API)(nil).GetBucketReplication), arg0) } -// GetBucketReplicationRequest mocks base method +// GetBucketReplicationRequest mocks base method. func (m *MockS3API) GetBucketReplicationRequest(arg0 *s3.GetBucketReplicationInput) (*request.Request, *s3.GetBucketReplicationOutput) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "GetBucketReplicationRequest", arg0) @@ -1912,13 +2012,13 @@ func (m *MockS3API) GetBucketReplicationRequest(arg0 *s3.GetBucketReplicationInp return ret0, ret1 } -// GetBucketReplicationRequest indicates an expected call of GetBucketReplicationRequest +// GetBucketReplicationRequest indicates an expected call of GetBucketReplicationRequest. func (mr *MockS3APIMockRecorder) GetBucketReplicationRequest(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBucketReplicationRequest", reflect.TypeOf((*MockS3API)(nil).GetBucketReplicationRequest), arg0) } -// GetBucketReplicationWithContext mocks base method +// GetBucketReplicationWithContext mocks base method. func (m *MockS3API) GetBucketReplicationWithContext(arg0 context.Context, arg1 *s3.GetBucketReplicationInput, arg2 ...request.Option) (*s3.GetBucketReplicationOutput, error) { m.ctrl.T.Helper() varargs := []interface{}{arg0, arg1} @@ -1931,14 +2031,14 @@ func (m *MockS3API) GetBucketReplicationWithContext(arg0 context.Context, arg1 * return ret0, ret1 } -// GetBucketReplicationWithContext indicates an expected call of GetBucketReplicationWithContext +// GetBucketReplicationWithContext indicates an expected call of GetBucketReplicationWithContext. func (mr *MockS3APIMockRecorder) GetBucketReplicationWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{arg0, arg1}, arg2...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBucketReplicationWithContext", reflect.TypeOf((*MockS3API)(nil).GetBucketReplicationWithContext), varargs...) } -// GetBucketRequestPayment mocks base method +// GetBucketRequestPayment mocks base method. func (m *MockS3API) GetBucketRequestPayment(arg0 *s3.GetBucketRequestPaymentInput) (*s3.GetBucketRequestPaymentOutput, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "GetBucketRequestPayment", arg0) @@ -1947,13 +2047,13 @@ func (m *MockS3API) GetBucketRequestPayment(arg0 *s3.GetBucketRequestPaymentInpu return ret0, ret1 } -// GetBucketRequestPayment indicates an expected call of GetBucketRequestPayment +// GetBucketRequestPayment indicates an expected call of GetBucketRequestPayment. func (mr *MockS3APIMockRecorder) GetBucketRequestPayment(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBucketRequestPayment", reflect.TypeOf((*MockS3API)(nil).GetBucketRequestPayment), arg0) } -// GetBucketRequestPaymentRequest mocks base method +// GetBucketRequestPaymentRequest mocks base method. func (m *MockS3API) GetBucketRequestPaymentRequest(arg0 *s3.GetBucketRequestPaymentInput) (*request.Request, *s3.GetBucketRequestPaymentOutput) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "GetBucketRequestPaymentRequest", arg0) @@ -1962,13 +2062,13 @@ func (m *MockS3API) GetBucketRequestPaymentRequest(arg0 *s3.GetBucketRequestPaym return ret0, ret1 } -// GetBucketRequestPaymentRequest indicates an expected call of GetBucketRequestPaymentRequest +// GetBucketRequestPaymentRequest indicates an expected call of GetBucketRequestPaymentRequest. func (mr *MockS3APIMockRecorder) GetBucketRequestPaymentRequest(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBucketRequestPaymentRequest", reflect.TypeOf((*MockS3API)(nil).GetBucketRequestPaymentRequest), arg0) } -// GetBucketRequestPaymentWithContext mocks base method +// GetBucketRequestPaymentWithContext mocks base method. func (m *MockS3API) GetBucketRequestPaymentWithContext(arg0 context.Context, arg1 *s3.GetBucketRequestPaymentInput, arg2 ...request.Option) (*s3.GetBucketRequestPaymentOutput, error) { m.ctrl.T.Helper() varargs := []interface{}{arg0, arg1} @@ -1981,14 +2081,14 @@ func (m *MockS3API) GetBucketRequestPaymentWithContext(arg0 context.Context, arg return ret0, ret1 } -// GetBucketRequestPaymentWithContext indicates an expected call of GetBucketRequestPaymentWithContext +// GetBucketRequestPaymentWithContext indicates an expected call of GetBucketRequestPaymentWithContext. func (mr *MockS3APIMockRecorder) GetBucketRequestPaymentWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{arg0, arg1}, arg2...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBucketRequestPaymentWithContext", reflect.TypeOf((*MockS3API)(nil).GetBucketRequestPaymentWithContext), varargs...) } -// GetBucketTagging mocks base method +// GetBucketTagging mocks base method. func (m *MockS3API) GetBucketTagging(arg0 *s3.GetBucketTaggingInput) (*s3.GetBucketTaggingOutput, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "GetBucketTagging", arg0) @@ -1997,13 +2097,13 @@ func (m *MockS3API) GetBucketTagging(arg0 *s3.GetBucketTaggingInput) (*s3.GetBuc return ret0, ret1 } -// GetBucketTagging indicates an expected call of GetBucketTagging +// GetBucketTagging indicates an expected call of GetBucketTagging. func (mr *MockS3APIMockRecorder) GetBucketTagging(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBucketTagging", reflect.TypeOf((*MockS3API)(nil).GetBucketTagging), arg0) } -// GetBucketTaggingRequest mocks base method +// GetBucketTaggingRequest mocks base method. func (m *MockS3API) GetBucketTaggingRequest(arg0 *s3.GetBucketTaggingInput) (*request.Request, *s3.GetBucketTaggingOutput) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "GetBucketTaggingRequest", arg0) @@ -2012,13 +2112,13 @@ func (m *MockS3API) GetBucketTaggingRequest(arg0 *s3.GetBucketTaggingInput) (*re return ret0, ret1 } -// GetBucketTaggingRequest indicates an expected call of GetBucketTaggingRequest +// GetBucketTaggingRequest indicates an expected call of GetBucketTaggingRequest. func (mr *MockS3APIMockRecorder) GetBucketTaggingRequest(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBucketTaggingRequest", reflect.TypeOf((*MockS3API)(nil).GetBucketTaggingRequest), arg0) } -// GetBucketTaggingWithContext mocks base method +// GetBucketTaggingWithContext mocks base method. func (m *MockS3API) GetBucketTaggingWithContext(arg0 context.Context, arg1 *s3.GetBucketTaggingInput, arg2 ...request.Option) (*s3.GetBucketTaggingOutput, error) { m.ctrl.T.Helper() varargs := []interface{}{arg0, arg1} @@ -2031,14 +2131,14 @@ func (m *MockS3API) GetBucketTaggingWithContext(arg0 context.Context, arg1 *s3.G return ret0, ret1 } -// GetBucketTaggingWithContext indicates an expected call of GetBucketTaggingWithContext +// GetBucketTaggingWithContext indicates an expected call of GetBucketTaggingWithContext. func (mr *MockS3APIMockRecorder) GetBucketTaggingWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{arg0, arg1}, arg2...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBucketTaggingWithContext", reflect.TypeOf((*MockS3API)(nil).GetBucketTaggingWithContext), varargs...) } -// GetBucketVersioning mocks base method +// GetBucketVersioning mocks base method. func (m *MockS3API) GetBucketVersioning(arg0 *s3.GetBucketVersioningInput) (*s3.GetBucketVersioningOutput, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "GetBucketVersioning", arg0) @@ -2047,13 +2147,13 @@ func (m *MockS3API) GetBucketVersioning(arg0 *s3.GetBucketVersioningInput) (*s3. return ret0, ret1 } -// GetBucketVersioning indicates an expected call of GetBucketVersioning +// GetBucketVersioning indicates an expected call of GetBucketVersioning. func (mr *MockS3APIMockRecorder) GetBucketVersioning(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBucketVersioning", reflect.TypeOf((*MockS3API)(nil).GetBucketVersioning), arg0) } -// GetBucketVersioningRequest mocks base method +// GetBucketVersioningRequest mocks base method. func (m *MockS3API) GetBucketVersioningRequest(arg0 *s3.GetBucketVersioningInput) (*request.Request, *s3.GetBucketVersioningOutput) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "GetBucketVersioningRequest", arg0) @@ -2062,13 +2162,13 @@ func (m *MockS3API) GetBucketVersioningRequest(arg0 *s3.GetBucketVersioningInput return ret0, ret1 } -// GetBucketVersioningRequest indicates an expected call of GetBucketVersioningRequest +// GetBucketVersioningRequest indicates an expected call of GetBucketVersioningRequest. func (mr *MockS3APIMockRecorder) GetBucketVersioningRequest(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBucketVersioningRequest", reflect.TypeOf((*MockS3API)(nil).GetBucketVersioningRequest), arg0) } -// GetBucketVersioningWithContext mocks base method +// GetBucketVersioningWithContext mocks base method. func (m *MockS3API) GetBucketVersioningWithContext(arg0 context.Context, arg1 *s3.GetBucketVersioningInput, arg2 ...request.Option) (*s3.GetBucketVersioningOutput, error) { m.ctrl.T.Helper() varargs := []interface{}{arg0, arg1} @@ -2081,14 +2181,14 @@ func (m *MockS3API) GetBucketVersioningWithContext(arg0 context.Context, arg1 *s return ret0, ret1 } -// GetBucketVersioningWithContext indicates an expected call of GetBucketVersioningWithContext +// GetBucketVersioningWithContext indicates an expected call of GetBucketVersioningWithContext. func (mr *MockS3APIMockRecorder) GetBucketVersioningWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{arg0, arg1}, arg2...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBucketVersioningWithContext", reflect.TypeOf((*MockS3API)(nil).GetBucketVersioningWithContext), varargs...) } -// GetBucketWebsite mocks base method +// GetBucketWebsite mocks base method. func (m *MockS3API) GetBucketWebsite(arg0 *s3.GetBucketWebsiteInput) (*s3.GetBucketWebsiteOutput, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "GetBucketWebsite", arg0) @@ -2097,13 +2197,13 @@ func (m *MockS3API) GetBucketWebsite(arg0 *s3.GetBucketWebsiteInput) (*s3.GetBuc return ret0, ret1 } -// GetBucketWebsite indicates an expected call of GetBucketWebsite +// GetBucketWebsite indicates an expected call of GetBucketWebsite. func (mr *MockS3APIMockRecorder) GetBucketWebsite(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBucketWebsite", reflect.TypeOf((*MockS3API)(nil).GetBucketWebsite), arg0) } -// GetBucketWebsiteRequest mocks base method +// GetBucketWebsiteRequest mocks base method. func (m *MockS3API) GetBucketWebsiteRequest(arg0 *s3.GetBucketWebsiteInput) (*request.Request, *s3.GetBucketWebsiteOutput) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "GetBucketWebsiteRequest", arg0) @@ -2112,13 +2212,13 @@ func (m *MockS3API) GetBucketWebsiteRequest(arg0 *s3.GetBucketWebsiteInput) (*re return ret0, ret1 } -// GetBucketWebsiteRequest indicates an expected call of GetBucketWebsiteRequest +// GetBucketWebsiteRequest indicates an expected call of GetBucketWebsiteRequest. func (mr *MockS3APIMockRecorder) GetBucketWebsiteRequest(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBucketWebsiteRequest", reflect.TypeOf((*MockS3API)(nil).GetBucketWebsiteRequest), arg0) } -// GetBucketWebsiteWithContext mocks base method +// GetBucketWebsiteWithContext mocks base method. func (m *MockS3API) GetBucketWebsiteWithContext(arg0 context.Context, arg1 *s3.GetBucketWebsiteInput, arg2 ...request.Option) (*s3.GetBucketWebsiteOutput, error) { m.ctrl.T.Helper() varargs := []interface{}{arg0, arg1} @@ -2131,14 +2231,14 @@ func (m *MockS3API) GetBucketWebsiteWithContext(arg0 context.Context, arg1 *s3.G return ret0, ret1 } -// GetBucketWebsiteWithContext indicates an expected call of GetBucketWebsiteWithContext +// GetBucketWebsiteWithContext indicates an expected call of GetBucketWebsiteWithContext. func (mr *MockS3APIMockRecorder) GetBucketWebsiteWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{arg0, arg1}, arg2...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBucketWebsiteWithContext", reflect.TypeOf((*MockS3API)(nil).GetBucketWebsiteWithContext), varargs...) } -// GetObject mocks base method +// GetObject mocks base method. func (m *MockS3API) GetObject(arg0 *s3.GetObjectInput) (*s3.GetObjectOutput, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "GetObject", arg0) @@ -2147,13 +2247,13 @@ func (m *MockS3API) GetObject(arg0 *s3.GetObjectInput) (*s3.GetObjectOutput, err return ret0, ret1 } -// GetObject indicates an expected call of GetObject +// GetObject indicates an expected call of GetObject. func (mr *MockS3APIMockRecorder) GetObject(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetObject", reflect.TypeOf((*MockS3API)(nil).GetObject), arg0) } -// GetObjectAcl mocks base method +// GetObjectAcl mocks base method. func (m *MockS3API) GetObjectAcl(arg0 *s3.GetObjectAclInput) (*s3.GetObjectAclOutput, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "GetObjectAcl", arg0) @@ -2162,13 +2262,13 @@ func (m *MockS3API) GetObjectAcl(arg0 *s3.GetObjectAclInput) (*s3.GetObjectAclOu return ret0, ret1 } -// GetObjectAcl indicates an expected call of GetObjectAcl +// GetObjectAcl indicates an expected call of GetObjectAcl. func (mr *MockS3APIMockRecorder) GetObjectAcl(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetObjectAcl", reflect.TypeOf((*MockS3API)(nil).GetObjectAcl), arg0) } -// GetObjectAclRequest mocks base method +// GetObjectAclRequest mocks base method. func (m *MockS3API) GetObjectAclRequest(arg0 *s3.GetObjectAclInput) (*request.Request, *s3.GetObjectAclOutput) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "GetObjectAclRequest", arg0) @@ -2177,13 +2277,13 @@ func (m *MockS3API) GetObjectAclRequest(arg0 *s3.GetObjectAclInput) (*request.Re return ret0, ret1 } -// GetObjectAclRequest indicates an expected call of GetObjectAclRequest +// GetObjectAclRequest indicates an expected call of GetObjectAclRequest. func (mr *MockS3APIMockRecorder) GetObjectAclRequest(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetObjectAclRequest", reflect.TypeOf((*MockS3API)(nil).GetObjectAclRequest), arg0) } -// GetObjectAclWithContext mocks base method +// GetObjectAclWithContext mocks base method. func (m *MockS3API) GetObjectAclWithContext(arg0 context.Context, arg1 *s3.GetObjectAclInput, arg2 ...request.Option) (*s3.GetObjectAclOutput, error) { m.ctrl.T.Helper() varargs := []interface{}{arg0, arg1} @@ -2196,14 +2296,14 @@ func (m *MockS3API) GetObjectAclWithContext(arg0 context.Context, arg1 *s3.GetOb return ret0, ret1 } -// GetObjectAclWithContext indicates an expected call of GetObjectAclWithContext +// GetObjectAclWithContext indicates an expected call of GetObjectAclWithContext. func (mr *MockS3APIMockRecorder) GetObjectAclWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{arg0, arg1}, arg2...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetObjectAclWithContext", reflect.TypeOf((*MockS3API)(nil).GetObjectAclWithContext), varargs...) } -// GetObjectLegalHold mocks base method +// GetObjectLegalHold mocks base method. func (m *MockS3API) GetObjectLegalHold(arg0 *s3.GetObjectLegalHoldInput) (*s3.GetObjectLegalHoldOutput, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "GetObjectLegalHold", arg0) @@ -2212,13 +2312,13 @@ func (m *MockS3API) GetObjectLegalHold(arg0 *s3.GetObjectLegalHoldInput) (*s3.Ge return ret0, ret1 } -// GetObjectLegalHold indicates an expected call of GetObjectLegalHold +// GetObjectLegalHold indicates an expected call of GetObjectLegalHold. func (mr *MockS3APIMockRecorder) GetObjectLegalHold(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetObjectLegalHold", reflect.TypeOf((*MockS3API)(nil).GetObjectLegalHold), arg0) } -// GetObjectLegalHoldRequest mocks base method +// GetObjectLegalHoldRequest mocks base method. func (m *MockS3API) GetObjectLegalHoldRequest(arg0 *s3.GetObjectLegalHoldInput) (*request.Request, *s3.GetObjectLegalHoldOutput) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "GetObjectLegalHoldRequest", arg0) @@ -2227,13 +2327,13 @@ func (m *MockS3API) GetObjectLegalHoldRequest(arg0 *s3.GetObjectLegalHoldInput) return ret0, ret1 } -// GetObjectLegalHoldRequest indicates an expected call of GetObjectLegalHoldRequest +// GetObjectLegalHoldRequest indicates an expected call of GetObjectLegalHoldRequest. func (mr *MockS3APIMockRecorder) GetObjectLegalHoldRequest(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetObjectLegalHoldRequest", reflect.TypeOf((*MockS3API)(nil).GetObjectLegalHoldRequest), arg0) } -// GetObjectLegalHoldWithContext mocks base method +// GetObjectLegalHoldWithContext mocks base method. func (m *MockS3API) GetObjectLegalHoldWithContext(arg0 context.Context, arg1 *s3.GetObjectLegalHoldInput, arg2 ...request.Option) (*s3.GetObjectLegalHoldOutput, error) { m.ctrl.T.Helper() varargs := []interface{}{arg0, arg1} @@ -2246,14 +2346,14 @@ func (m *MockS3API) GetObjectLegalHoldWithContext(arg0 context.Context, arg1 *s3 return ret0, ret1 } -// GetObjectLegalHoldWithContext indicates an expected call of GetObjectLegalHoldWithContext +// GetObjectLegalHoldWithContext indicates an expected call of GetObjectLegalHoldWithContext. func (mr *MockS3APIMockRecorder) GetObjectLegalHoldWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{arg0, arg1}, arg2...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetObjectLegalHoldWithContext", reflect.TypeOf((*MockS3API)(nil).GetObjectLegalHoldWithContext), varargs...) } -// GetObjectLockConfiguration mocks base method +// GetObjectLockConfiguration mocks base method. func (m *MockS3API) GetObjectLockConfiguration(arg0 *s3.GetObjectLockConfigurationInput) (*s3.GetObjectLockConfigurationOutput, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "GetObjectLockConfiguration", arg0) @@ -2262,13 +2362,13 @@ func (m *MockS3API) GetObjectLockConfiguration(arg0 *s3.GetObjectLockConfigurati return ret0, ret1 } -// GetObjectLockConfiguration indicates an expected call of GetObjectLockConfiguration +// GetObjectLockConfiguration indicates an expected call of GetObjectLockConfiguration. func (mr *MockS3APIMockRecorder) GetObjectLockConfiguration(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetObjectLockConfiguration", reflect.TypeOf((*MockS3API)(nil).GetObjectLockConfiguration), arg0) } -// GetObjectLockConfigurationRequest mocks base method +// GetObjectLockConfigurationRequest mocks base method. func (m *MockS3API) GetObjectLockConfigurationRequest(arg0 *s3.GetObjectLockConfigurationInput) (*request.Request, *s3.GetObjectLockConfigurationOutput) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "GetObjectLockConfigurationRequest", arg0) @@ -2277,13 +2377,13 @@ func (m *MockS3API) GetObjectLockConfigurationRequest(arg0 *s3.GetObjectLockConf return ret0, ret1 } -// GetObjectLockConfigurationRequest indicates an expected call of GetObjectLockConfigurationRequest +// GetObjectLockConfigurationRequest indicates an expected call of GetObjectLockConfigurationRequest. func (mr *MockS3APIMockRecorder) GetObjectLockConfigurationRequest(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetObjectLockConfigurationRequest", reflect.TypeOf((*MockS3API)(nil).GetObjectLockConfigurationRequest), arg0) } -// GetObjectLockConfigurationWithContext mocks base method +// GetObjectLockConfigurationWithContext mocks base method. func (m *MockS3API) GetObjectLockConfigurationWithContext(arg0 context.Context, arg1 *s3.GetObjectLockConfigurationInput, arg2 ...request.Option) (*s3.GetObjectLockConfigurationOutput, error) { m.ctrl.T.Helper() varargs := []interface{}{arg0, arg1} @@ -2296,14 +2396,14 @@ func (m *MockS3API) GetObjectLockConfigurationWithContext(arg0 context.Context, return ret0, ret1 } -// GetObjectLockConfigurationWithContext indicates an expected call of GetObjectLockConfigurationWithContext +// GetObjectLockConfigurationWithContext indicates an expected call of GetObjectLockConfigurationWithContext. func (mr *MockS3APIMockRecorder) GetObjectLockConfigurationWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{arg0, arg1}, arg2...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetObjectLockConfigurationWithContext", reflect.TypeOf((*MockS3API)(nil).GetObjectLockConfigurationWithContext), varargs...) } -// GetObjectRequest mocks base method +// GetObjectRequest mocks base method. func (m *MockS3API) GetObjectRequest(arg0 *s3.GetObjectInput) (*request.Request, *s3.GetObjectOutput) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "GetObjectRequest", arg0) @@ -2312,13 +2412,13 @@ func (m *MockS3API) GetObjectRequest(arg0 *s3.GetObjectInput) (*request.Request, return ret0, ret1 } -// GetObjectRequest indicates an expected call of GetObjectRequest +// GetObjectRequest indicates an expected call of GetObjectRequest. func (mr *MockS3APIMockRecorder) GetObjectRequest(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetObjectRequest", reflect.TypeOf((*MockS3API)(nil).GetObjectRequest), arg0) } -// GetObjectRetention mocks base method +// GetObjectRetention mocks base method. func (m *MockS3API) GetObjectRetention(arg0 *s3.GetObjectRetentionInput) (*s3.GetObjectRetentionOutput, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "GetObjectRetention", arg0) @@ -2327,13 +2427,13 @@ func (m *MockS3API) GetObjectRetention(arg0 *s3.GetObjectRetentionInput) (*s3.Ge return ret0, ret1 } -// GetObjectRetention indicates an expected call of GetObjectRetention +// GetObjectRetention indicates an expected call of GetObjectRetention. func (mr *MockS3APIMockRecorder) GetObjectRetention(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetObjectRetention", reflect.TypeOf((*MockS3API)(nil).GetObjectRetention), arg0) } -// GetObjectRetentionRequest mocks base method +// GetObjectRetentionRequest mocks base method. func (m *MockS3API) GetObjectRetentionRequest(arg0 *s3.GetObjectRetentionInput) (*request.Request, *s3.GetObjectRetentionOutput) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "GetObjectRetentionRequest", arg0) @@ -2342,13 +2442,13 @@ func (m *MockS3API) GetObjectRetentionRequest(arg0 *s3.GetObjectRetentionInput) return ret0, ret1 } -// GetObjectRetentionRequest indicates an expected call of GetObjectRetentionRequest +// GetObjectRetentionRequest indicates an expected call of GetObjectRetentionRequest. func (mr *MockS3APIMockRecorder) GetObjectRetentionRequest(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetObjectRetentionRequest", reflect.TypeOf((*MockS3API)(nil).GetObjectRetentionRequest), arg0) } -// GetObjectRetentionWithContext mocks base method +// GetObjectRetentionWithContext mocks base method. func (m *MockS3API) GetObjectRetentionWithContext(arg0 context.Context, arg1 *s3.GetObjectRetentionInput, arg2 ...request.Option) (*s3.GetObjectRetentionOutput, error) { m.ctrl.T.Helper() varargs := []interface{}{arg0, arg1} @@ -2361,14 +2461,14 @@ func (m *MockS3API) GetObjectRetentionWithContext(arg0 context.Context, arg1 *s3 return ret0, ret1 } -// GetObjectRetentionWithContext indicates an expected call of GetObjectRetentionWithContext +// GetObjectRetentionWithContext indicates an expected call of GetObjectRetentionWithContext. func (mr *MockS3APIMockRecorder) GetObjectRetentionWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{arg0, arg1}, arg2...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetObjectRetentionWithContext", reflect.TypeOf((*MockS3API)(nil).GetObjectRetentionWithContext), varargs...) } -// GetObjectTagging mocks base method +// GetObjectTagging mocks base method. func (m *MockS3API) GetObjectTagging(arg0 *s3.GetObjectTaggingInput) (*s3.GetObjectTaggingOutput, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "GetObjectTagging", arg0) @@ -2377,13 +2477,13 @@ func (m *MockS3API) GetObjectTagging(arg0 *s3.GetObjectTaggingInput) (*s3.GetObj return ret0, ret1 } -// GetObjectTagging indicates an expected call of GetObjectTagging +// GetObjectTagging indicates an expected call of GetObjectTagging. func (mr *MockS3APIMockRecorder) GetObjectTagging(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetObjectTagging", reflect.TypeOf((*MockS3API)(nil).GetObjectTagging), arg0) } -// GetObjectTaggingRequest mocks base method +// GetObjectTaggingRequest mocks base method. func (m *MockS3API) GetObjectTaggingRequest(arg0 *s3.GetObjectTaggingInput) (*request.Request, *s3.GetObjectTaggingOutput) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "GetObjectTaggingRequest", arg0) @@ -2392,13 +2492,13 @@ func (m *MockS3API) GetObjectTaggingRequest(arg0 *s3.GetObjectTaggingInput) (*re return ret0, ret1 } -// GetObjectTaggingRequest indicates an expected call of GetObjectTaggingRequest +// GetObjectTaggingRequest indicates an expected call of GetObjectTaggingRequest. func (mr *MockS3APIMockRecorder) GetObjectTaggingRequest(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetObjectTaggingRequest", reflect.TypeOf((*MockS3API)(nil).GetObjectTaggingRequest), arg0) } -// GetObjectTaggingWithContext mocks base method +// GetObjectTaggingWithContext mocks base method. func (m *MockS3API) GetObjectTaggingWithContext(arg0 context.Context, arg1 *s3.GetObjectTaggingInput, arg2 ...request.Option) (*s3.GetObjectTaggingOutput, error) { m.ctrl.T.Helper() varargs := []interface{}{arg0, arg1} @@ -2411,14 +2511,14 @@ func (m *MockS3API) GetObjectTaggingWithContext(arg0 context.Context, arg1 *s3.G return ret0, ret1 } -// GetObjectTaggingWithContext indicates an expected call of GetObjectTaggingWithContext +// GetObjectTaggingWithContext indicates an expected call of GetObjectTaggingWithContext. func (mr *MockS3APIMockRecorder) GetObjectTaggingWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{arg0, arg1}, arg2...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetObjectTaggingWithContext", reflect.TypeOf((*MockS3API)(nil).GetObjectTaggingWithContext), varargs...) } -// GetObjectTorrent mocks base method +// GetObjectTorrent mocks base method. func (m *MockS3API) GetObjectTorrent(arg0 *s3.GetObjectTorrentInput) (*s3.GetObjectTorrentOutput, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "GetObjectTorrent", arg0) @@ -2427,13 +2527,13 @@ func (m *MockS3API) GetObjectTorrent(arg0 *s3.GetObjectTorrentInput) (*s3.GetObj return ret0, ret1 } -// GetObjectTorrent indicates an expected call of GetObjectTorrent +// GetObjectTorrent indicates an expected call of GetObjectTorrent. func (mr *MockS3APIMockRecorder) GetObjectTorrent(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetObjectTorrent", reflect.TypeOf((*MockS3API)(nil).GetObjectTorrent), arg0) } -// GetObjectTorrentRequest mocks base method +// GetObjectTorrentRequest mocks base method. func (m *MockS3API) GetObjectTorrentRequest(arg0 *s3.GetObjectTorrentInput) (*request.Request, *s3.GetObjectTorrentOutput) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "GetObjectTorrentRequest", arg0) @@ -2442,13 +2542,13 @@ func (m *MockS3API) GetObjectTorrentRequest(arg0 *s3.GetObjectTorrentInput) (*re return ret0, ret1 } -// GetObjectTorrentRequest indicates an expected call of GetObjectTorrentRequest +// GetObjectTorrentRequest indicates an expected call of GetObjectTorrentRequest. func (mr *MockS3APIMockRecorder) GetObjectTorrentRequest(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetObjectTorrentRequest", reflect.TypeOf((*MockS3API)(nil).GetObjectTorrentRequest), arg0) } -// GetObjectTorrentWithContext mocks base method +// GetObjectTorrentWithContext mocks base method. func (m *MockS3API) GetObjectTorrentWithContext(arg0 context.Context, arg1 *s3.GetObjectTorrentInput, arg2 ...request.Option) (*s3.GetObjectTorrentOutput, error) { m.ctrl.T.Helper() varargs := []interface{}{arg0, arg1} @@ -2461,14 +2561,14 @@ func (m *MockS3API) GetObjectTorrentWithContext(arg0 context.Context, arg1 *s3.G return ret0, ret1 } -// GetObjectTorrentWithContext indicates an expected call of GetObjectTorrentWithContext +// GetObjectTorrentWithContext indicates an expected call of GetObjectTorrentWithContext. func (mr *MockS3APIMockRecorder) GetObjectTorrentWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{arg0, arg1}, arg2...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetObjectTorrentWithContext", reflect.TypeOf((*MockS3API)(nil).GetObjectTorrentWithContext), varargs...) } -// GetObjectWithContext mocks base method +// GetObjectWithContext mocks base method. func (m *MockS3API) GetObjectWithContext(arg0 context.Context, arg1 *s3.GetObjectInput, arg2 ...request.Option) (*s3.GetObjectOutput, error) { m.ctrl.T.Helper() varargs := []interface{}{arg0, arg1} @@ -2481,14 +2581,14 @@ func (m *MockS3API) GetObjectWithContext(arg0 context.Context, arg1 *s3.GetObjec return ret0, ret1 } -// GetObjectWithContext indicates an expected call of GetObjectWithContext +// GetObjectWithContext indicates an expected call of GetObjectWithContext. func (mr *MockS3APIMockRecorder) GetObjectWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{arg0, arg1}, arg2...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetObjectWithContext", reflect.TypeOf((*MockS3API)(nil).GetObjectWithContext), varargs...) } -// GetPublicAccessBlock mocks base method +// GetPublicAccessBlock mocks base method. func (m *MockS3API) GetPublicAccessBlock(arg0 *s3.GetPublicAccessBlockInput) (*s3.GetPublicAccessBlockOutput, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "GetPublicAccessBlock", arg0) @@ -2497,13 +2597,13 @@ func (m *MockS3API) GetPublicAccessBlock(arg0 *s3.GetPublicAccessBlockInput) (*s return ret0, ret1 } -// GetPublicAccessBlock indicates an expected call of GetPublicAccessBlock +// GetPublicAccessBlock indicates an expected call of GetPublicAccessBlock. func (mr *MockS3APIMockRecorder) GetPublicAccessBlock(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetPublicAccessBlock", reflect.TypeOf((*MockS3API)(nil).GetPublicAccessBlock), arg0) } -// GetPublicAccessBlockRequest mocks base method +// GetPublicAccessBlockRequest mocks base method. func (m *MockS3API) GetPublicAccessBlockRequest(arg0 *s3.GetPublicAccessBlockInput) (*request.Request, *s3.GetPublicAccessBlockOutput) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "GetPublicAccessBlockRequest", arg0) @@ -2512,13 +2612,13 @@ func (m *MockS3API) GetPublicAccessBlockRequest(arg0 *s3.GetPublicAccessBlockInp return ret0, ret1 } -// GetPublicAccessBlockRequest indicates an expected call of GetPublicAccessBlockRequest +// GetPublicAccessBlockRequest indicates an expected call of GetPublicAccessBlockRequest. func (mr *MockS3APIMockRecorder) GetPublicAccessBlockRequest(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetPublicAccessBlockRequest", reflect.TypeOf((*MockS3API)(nil).GetPublicAccessBlockRequest), arg0) } -// GetPublicAccessBlockWithContext mocks base method +// GetPublicAccessBlockWithContext mocks base method. func (m *MockS3API) GetPublicAccessBlockWithContext(arg0 context.Context, arg1 *s3.GetPublicAccessBlockInput, arg2 ...request.Option) (*s3.GetPublicAccessBlockOutput, error) { m.ctrl.T.Helper() varargs := []interface{}{arg0, arg1} @@ -2531,14 +2631,14 @@ func (m *MockS3API) GetPublicAccessBlockWithContext(arg0 context.Context, arg1 * return ret0, ret1 } -// GetPublicAccessBlockWithContext indicates an expected call of GetPublicAccessBlockWithContext +// GetPublicAccessBlockWithContext indicates an expected call of GetPublicAccessBlockWithContext. func (mr *MockS3APIMockRecorder) GetPublicAccessBlockWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{arg0, arg1}, arg2...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetPublicAccessBlockWithContext", reflect.TypeOf((*MockS3API)(nil).GetPublicAccessBlockWithContext), varargs...) } -// HeadBucket mocks base method +// HeadBucket mocks base method. func (m *MockS3API) HeadBucket(arg0 *s3.HeadBucketInput) (*s3.HeadBucketOutput, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "HeadBucket", arg0) @@ -2547,13 +2647,13 @@ func (m *MockS3API) HeadBucket(arg0 *s3.HeadBucketInput) (*s3.HeadBucketOutput, return ret0, ret1 } -// HeadBucket indicates an expected call of HeadBucket +// HeadBucket indicates an expected call of HeadBucket. func (mr *MockS3APIMockRecorder) HeadBucket(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "HeadBucket", reflect.TypeOf((*MockS3API)(nil).HeadBucket), arg0) } -// HeadBucketRequest mocks base method +// HeadBucketRequest mocks base method. func (m *MockS3API) HeadBucketRequest(arg0 *s3.HeadBucketInput) (*request.Request, *s3.HeadBucketOutput) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "HeadBucketRequest", arg0) @@ -2562,13 +2662,13 @@ func (m *MockS3API) HeadBucketRequest(arg0 *s3.HeadBucketInput) (*request.Reques return ret0, ret1 } -// HeadBucketRequest indicates an expected call of HeadBucketRequest +// HeadBucketRequest indicates an expected call of HeadBucketRequest. func (mr *MockS3APIMockRecorder) HeadBucketRequest(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "HeadBucketRequest", reflect.TypeOf((*MockS3API)(nil).HeadBucketRequest), arg0) } -// HeadBucketWithContext mocks base method +// HeadBucketWithContext mocks base method. func (m *MockS3API) HeadBucketWithContext(arg0 context.Context, arg1 *s3.HeadBucketInput, arg2 ...request.Option) (*s3.HeadBucketOutput, error) { m.ctrl.T.Helper() varargs := []interface{}{arg0, arg1} @@ -2581,14 +2681,14 @@ func (m *MockS3API) HeadBucketWithContext(arg0 context.Context, arg1 *s3.HeadBuc return ret0, ret1 } -// HeadBucketWithContext indicates an expected call of HeadBucketWithContext +// HeadBucketWithContext indicates an expected call of HeadBucketWithContext. func (mr *MockS3APIMockRecorder) HeadBucketWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{arg0, arg1}, arg2...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "HeadBucketWithContext", reflect.TypeOf((*MockS3API)(nil).HeadBucketWithContext), varargs...) } -// HeadObject mocks base method +// HeadObject mocks base method. func (m *MockS3API) HeadObject(arg0 *s3.HeadObjectInput) (*s3.HeadObjectOutput, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "HeadObject", arg0) @@ -2597,13 +2697,13 @@ func (m *MockS3API) HeadObject(arg0 *s3.HeadObjectInput) (*s3.HeadObjectOutput, return ret0, ret1 } -// HeadObject indicates an expected call of HeadObject +// HeadObject indicates an expected call of HeadObject. func (mr *MockS3APIMockRecorder) HeadObject(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "HeadObject", reflect.TypeOf((*MockS3API)(nil).HeadObject), arg0) } -// HeadObjectRequest mocks base method +// HeadObjectRequest mocks base method. func (m *MockS3API) HeadObjectRequest(arg0 *s3.HeadObjectInput) (*request.Request, *s3.HeadObjectOutput) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "HeadObjectRequest", arg0) @@ -2612,13 +2712,13 @@ func (m *MockS3API) HeadObjectRequest(arg0 *s3.HeadObjectInput) (*request.Reques return ret0, ret1 } -// HeadObjectRequest indicates an expected call of HeadObjectRequest +// HeadObjectRequest indicates an expected call of HeadObjectRequest. func (mr *MockS3APIMockRecorder) HeadObjectRequest(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "HeadObjectRequest", reflect.TypeOf((*MockS3API)(nil).HeadObjectRequest), arg0) } -// HeadObjectWithContext mocks base method +// HeadObjectWithContext mocks base method. func (m *MockS3API) HeadObjectWithContext(arg0 context.Context, arg1 *s3.HeadObjectInput, arg2 ...request.Option) (*s3.HeadObjectOutput, error) { m.ctrl.T.Helper() varargs := []interface{}{arg0, arg1} @@ -2631,14 +2731,14 @@ func (m *MockS3API) HeadObjectWithContext(arg0 context.Context, arg1 *s3.HeadObj return ret0, ret1 } -// HeadObjectWithContext indicates an expected call of HeadObjectWithContext +// HeadObjectWithContext indicates an expected call of HeadObjectWithContext. func (mr *MockS3APIMockRecorder) HeadObjectWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{arg0, arg1}, arg2...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "HeadObjectWithContext", reflect.TypeOf((*MockS3API)(nil).HeadObjectWithContext), varargs...) } -// ListBucketAnalyticsConfigurations mocks base method +// ListBucketAnalyticsConfigurations mocks base method. func (m *MockS3API) ListBucketAnalyticsConfigurations(arg0 *s3.ListBucketAnalyticsConfigurationsInput) (*s3.ListBucketAnalyticsConfigurationsOutput, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "ListBucketAnalyticsConfigurations", arg0) @@ -2647,13 +2747,13 @@ func (m *MockS3API) ListBucketAnalyticsConfigurations(arg0 *s3.ListBucketAnalyti return ret0, ret1 } -// ListBucketAnalyticsConfigurations indicates an expected call of ListBucketAnalyticsConfigurations +// ListBucketAnalyticsConfigurations indicates an expected call of ListBucketAnalyticsConfigurations. func (mr *MockS3APIMockRecorder) ListBucketAnalyticsConfigurations(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListBucketAnalyticsConfigurations", reflect.TypeOf((*MockS3API)(nil).ListBucketAnalyticsConfigurations), arg0) } -// ListBucketAnalyticsConfigurationsRequest mocks base method +// ListBucketAnalyticsConfigurationsRequest mocks base method. func (m *MockS3API) ListBucketAnalyticsConfigurationsRequest(arg0 *s3.ListBucketAnalyticsConfigurationsInput) (*request.Request, *s3.ListBucketAnalyticsConfigurationsOutput) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "ListBucketAnalyticsConfigurationsRequest", arg0) @@ -2662,13 +2762,13 @@ func (m *MockS3API) ListBucketAnalyticsConfigurationsRequest(arg0 *s3.ListBucket return ret0, ret1 } -// ListBucketAnalyticsConfigurationsRequest indicates an expected call of ListBucketAnalyticsConfigurationsRequest +// ListBucketAnalyticsConfigurationsRequest indicates an expected call of ListBucketAnalyticsConfigurationsRequest. func (mr *MockS3APIMockRecorder) ListBucketAnalyticsConfigurationsRequest(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListBucketAnalyticsConfigurationsRequest", reflect.TypeOf((*MockS3API)(nil).ListBucketAnalyticsConfigurationsRequest), arg0) } -// ListBucketAnalyticsConfigurationsWithContext mocks base method +// ListBucketAnalyticsConfigurationsWithContext mocks base method. func (m *MockS3API) ListBucketAnalyticsConfigurationsWithContext(arg0 context.Context, arg1 *s3.ListBucketAnalyticsConfigurationsInput, arg2 ...request.Option) (*s3.ListBucketAnalyticsConfigurationsOutput, error) { m.ctrl.T.Helper() varargs := []interface{}{arg0, arg1} @@ -2681,14 +2781,64 @@ func (m *MockS3API) ListBucketAnalyticsConfigurationsWithContext(arg0 context.Co return ret0, ret1 } -// ListBucketAnalyticsConfigurationsWithContext indicates an expected call of ListBucketAnalyticsConfigurationsWithContext +// ListBucketAnalyticsConfigurationsWithContext indicates an expected call of ListBucketAnalyticsConfigurationsWithContext. func (mr *MockS3APIMockRecorder) ListBucketAnalyticsConfigurationsWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{arg0, arg1}, arg2...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListBucketAnalyticsConfigurationsWithContext", reflect.TypeOf((*MockS3API)(nil).ListBucketAnalyticsConfigurationsWithContext), varargs...) } -// ListBucketInventoryConfigurations mocks base method +// ListBucketIntelligentTieringConfigurations mocks base method. +func (m *MockS3API) ListBucketIntelligentTieringConfigurations(arg0 *s3.ListBucketIntelligentTieringConfigurationsInput) (*s3.ListBucketIntelligentTieringConfigurationsOutput, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "ListBucketIntelligentTieringConfigurations", arg0) + ret0, _ := ret[0].(*s3.ListBucketIntelligentTieringConfigurationsOutput) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// ListBucketIntelligentTieringConfigurations indicates an expected call of ListBucketIntelligentTieringConfigurations. +func (mr *MockS3APIMockRecorder) ListBucketIntelligentTieringConfigurations(arg0 interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListBucketIntelligentTieringConfigurations", reflect.TypeOf((*MockS3API)(nil).ListBucketIntelligentTieringConfigurations), arg0) +} + +// ListBucketIntelligentTieringConfigurationsRequest mocks base method. +func (m *MockS3API) ListBucketIntelligentTieringConfigurationsRequest(arg0 *s3.ListBucketIntelligentTieringConfigurationsInput) (*request.Request, *s3.ListBucketIntelligentTieringConfigurationsOutput) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "ListBucketIntelligentTieringConfigurationsRequest", arg0) + ret0, _ := ret[0].(*request.Request) + ret1, _ := ret[1].(*s3.ListBucketIntelligentTieringConfigurationsOutput) + return ret0, ret1 +} + +// ListBucketIntelligentTieringConfigurationsRequest indicates an expected call of ListBucketIntelligentTieringConfigurationsRequest. +func (mr *MockS3APIMockRecorder) ListBucketIntelligentTieringConfigurationsRequest(arg0 interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListBucketIntelligentTieringConfigurationsRequest", reflect.TypeOf((*MockS3API)(nil).ListBucketIntelligentTieringConfigurationsRequest), arg0) +} + +// ListBucketIntelligentTieringConfigurationsWithContext mocks base method. +func (m *MockS3API) ListBucketIntelligentTieringConfigurationsWithContext(arg0 context.Context, arg1 *s3.ListBucketIntelligentTieringConfigurationsInput, arg2 ...request.Option) (*s3.ListBucketIntelligentTieringConfigurationsOutput, error) { + m.ctrl.T.Helper() + varargs := []interface{}{arg0, arg1} + for _, a := range arg2 { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "ListBucketIntelligentTieringConfigurationsWithContext", varargs...) + ret0, _ := ret[0].(*s3.ListBucketIntelligentTieringConfigurationsOutput) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// ListBucketIntelligentTieringConfigurationsWithContext indicates an expected call of ListBucketIntelligentTieringConfigurationsWithContext. +func (mr *MockS3APIMockRecorder) ListBucketIntelligentTieringConfigurationsWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + varargs := append([]interface{}{arg0, arg1}, arg2...) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListBucketIntelligentTieringConfigurationsWithContext", reflect.TypeOf((*MockS3API)(nil).ListBucketIntelligentTieringConfigurationsWithContext), varargs...) +} + +// ListBucketInventoryConfigurations mocks base method. func (m *MockS3API) ListBucketInventoryConfigurations(arg0 *s3.ListBucketInventoryConfigurationsInput) (*s3.ListBucketInventoryConfigurationsOutput, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "ListBucketInventoryConfigurations", arg0) @@ -2697,13 +2847,13 @@ func (m *MockS3API) ListBucketInventoryConfigurations(arg0 *s3.ListBucketInvento return ret0, ret1 } -// ListBucketInventoryConfigurations indicates an expected call of ListBucketInventoryConfigurations +// ListBucketInventoryConfigurations indicates an expected call of ListBucketInventoryConfigurations. func (mr *MockS3APIMockRecorder) ListBucketInventoryConfigurations(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListBucketInventoryConfigurations", reflect.TypeOf((*MockS3API)(nil).ListBucketInventoryConfigurations), arg0) } -// ListBucketInventoryConfigurationsRequest mocks base method +// ListBucketInventoryConfigurationsRequest mocks base method. func (m *MockS3API) ListBucketInventoryConfigurationsRequest(arg0 *s3.ListBucketInventoryConfigurationsInput) (*request.Request, *s3.ListBucketInventoryConfigurationsOutput) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "ListBucketInventoryConfigurationsRequest", arg0) @@ -2712,13 +2862,13 @@ func (m *MockS3API) ListBucketInventoryConfigurationsRequest(arg0 *s3.ListBucket return ret0, ret1 } -// ListBucketInventoryConfigurationsRequest indicates an expected call of ListBucketInventoryConfigurationsRequest +// ListBucketInventoryConfigurationsRequest indicates an expected call of ListBucketInventoryConfigurationsRequest. func (mr *MockS3APIMockRecorder) ListBucketInventoryConfigurationsRequest(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListBucketInventoryConfigurationsRequest", reflect.TypeOf((*MockS3API)(nil).ListBucketInventoryConfigurationsRequest), arg0) } -// ListBucketInventoryConfigurationsWithContext mocks base method +// ListBucketInventoryConfigurationsWithContext mocks base method. func (m *MockS3API) ListBucketInventoryConfigurationsWithContext(arg0 context.Context, arg1 *s3.ListBucketInventoryConfigurationsInput, arg2 ...request.Option) (*s3.ListBucketInventoryConfigurationsOutput, error) { m.ctrl.T.Helper() varargs := []interface{}{arg0, arg1} @@ -2731,14 +2881,14 @@ func (m *MockS3API) ListBucketInventoryConfigurationsWithContext(arg0 context.Co return ret0, ret1 } -// ListBucketInventoryConfigurationsWithContext indicates an expected call of ListBucketInventoryConfigurationsWithContext +// ListBucketInventoryConfigurationsWithContext indicates an expected call of ListBucketInventoryConfigurationsWithContext. func (mr *MockS3APIMockRecorder) ListBucketInventoryConfigurationsWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{arg0, arg1}, arg2...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListBucketInventoryConfigurationsWithContext", reflect.TypeOf((*MockS3API)(nil).ListBucketInventoryConfigurationsWithContext), varargs...) } -// ListBucketMetricsConfigurations mocks base method +// ListBucketMetricsConfigurations mocks base method. func (m *MockS3API) ListBucketMetricsConfigurations(arg0 *s3.ListBucketMetricsConfigurationsInput) (*s3.ListBucketMetricsConfigurationsOutput, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "ListBucketMetricsConfigurations", arg0) @@ -2747,13 +2897,13 @@ func (m *MockS3API) ListBucketMetricsConfigurations(arg0 *s3.ListBucketMetricsCo return ret0, ret1 } -// ListBucketMetricsConfigurations indicates an expected call of ListBucketMetricsConfigurations +// ListBucketMetricsConfigurations indicates an expected call of ListBucketMetricsConfigurations. func (mr *MockS3APIMockRecorder) ListBucketMetricsConfigurations(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListBucketMetricsConfigurations", reflect.TypeOf((*MockS3API)(nil).ListBucketMetricsConfigurations), arg0) } -// ListBucketMetricsConfigurationsRequest mocks base method +// ListBucketMetricsConfigurationsRequest mocks base method. func (m *MockS3API) ListBucketMetricsConfigurationsRequest(arg0 *s3.ListBucketMetricsConfigurationsInput) (*request.Request, *s3.ListBucketMetricsConfigurationsOutput) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "ListBucketMetricsConfigurationsRequest", arg0) @@ -2762,13 +2912,13 @@ func (m *MockS3API) ListBucketMetricsConfigurationsRequest(arg0 *s3.ListBucketMe return ret0, ret1 } -// ListBucketMetricsConfigurationsRequest indicates an expected call of ListBucketMetricsConfigurationsRequest +// ListBucketMetricsConfigurationsRequest indicates an expected call of ListBucketMetricsConfigurationsRequest. func (mr *MockS3APIMockRecorder) ListBucketMetricsConfigurationsRequest(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListBucketMetricsConfigurationsRequest", reflect.TypeOf((*MockS3API)(nil).ListBucketMetricsConfigurationsRequest), arg0) } -// ListBucketMetricsConfigurationsWithContext mocks base method +// ListBucketMetricsConfigurationsWithContext mocks base method. func (m *MockS3API) ListBucketMetricsConfigurationsWithContext(arg0 context.Context, arg1 *s3.ListBucketMetricsConfigurationsInput, arg2 ...request.Option) (*s3.ListBucketMetricsConfigurationsOutput, error) { m.ctrl.T.Helper() varargs := []interface{}{arg0, arg1} @@ -2781,14 +2931,14 @@ func (m *MockS3API) ListBucketMetricsConfigurationsWithContext(arg0 context.Cont return ret0, ret1 } -// ListBucketMetricsConfigurationsWithContext indicates an expected call of ListBucketMetricsConfigurationsWithContext +// ListBucketMetricsConfigurationsWithContext indicates an expected call of ListBucketMetricsConfigurationsWithContext. func (mr *MockS3APIMockRecorder) ListBucketMetricsConfigurationsWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{arg0, arg1}, arg2...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListBucketMetricsConfigurationsWithContext", reflect.TypeOf((*MockS3API)(nil).ListBucketMetricsConfigurationsWithContext), varargs...) } -// ListBuckets mocks base method +// ListBuckets mocks base method. func (m *MockS3API) ListBuckets(arg0 *s3.ListBucketsInput) (*s3.ListBucketsOutput, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "ListBuckets", arg0) @@ -2797,13 +2947,13 @@ func (m *MockS3API) ListBuckets(arg0 *s3.ListBucketsInput) (*s3.ListBucketsOutpu return ret0, ret1 } -// ListBuckets indicates an expected call of ListBuckets +// ListBuckets indicates an expected call of ListBuckets. func (mr *MockS3APIMockRecorder) ListBuckets(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListBuckets", reflect.TypeOf((*MockS3API)(nil).ListBuckets), arg0) } -// ListBucketsRequest mocks base method +// ListBucketsRequest mocks base method. func (m *MockS3API) ListBucketsRequest(arg0 *s3.ListBucketsInput) (*request.Request, *s3.ListBucketsOutput) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "ListBucketsRequest", arg0) @@ -2812,13 +2962,13 @@ func (m *MockS3API) ListBucketsRequest(arg0 *s3.ListBucketsInput) (*request.Requ return ret0, ret1 } -// ListBucketsRequest indicates an expected call of ListBucketsRequest +// ListBucketsRequest indicates an expected call of ListBucketsRequest. func (mr *MockS3APIMockRecorder) ListBucketsRequest(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListBucketsRequest", reflect.TypeOf((*MockS3API)(nil).ListBucketsRequest), arg0) } -// ListBucketsWithContext mocks base method +// ListBucketsWithContext mocks base method. func (m *MockS3API) ListBucketsWithContext(arg0 context.Context, arg1 *s3.ListBucketsInput, arg2 ...request.Option) (*s3.ListBucketsOutput, error) { m.ctrl.T.Helper() varargs := []interface{}{arg0, arg1} @@ -2831,14 +2981,14 @@ func (m *MockS3API) ListBucketsWithContext(arg0 context.Context, arg1 *s3.ListBu return ret0, ret1 } -// ListBucketsWithContext indicates an expected call of ListBucketsWithContext +// ListBucketsWithContext indicates an expected call of ListBucketsWithContext. func (mr *MockS3APIMockRecorder) ListBucketsWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{arg0, arg1}, arg2...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListBucketsWithContext", reflect.TypeOf((*MockS3API)(nil).ListBucketsWithContext), varargs...) } -// ListMultipartUploads mocks base method +// ListMultipartUploads mocks base method. func (m *MockS3API) ListMultipartUploads(arg0 *s3.ListMultipartUploadsInput) (*s3.ListMultipartUploadsOutput, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "ListMultipartUploads", arg0) @@ -2847,13 +2997,13 @@ func (m *MockS3API) ListMultipartUploads(arg0 *s3.ListMultipartUploadsInput) (*s return ret0, ret1 } -// ListMultipartUploads indicates an expected call of ListMultipartUploads +// ListMultipartUploads indicates an expected call of ListMultipartUploads. func (mr *MockS3APIMockRecorder) ListMultipartUploads(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListMultipartUploads", reflect.TypeOf((*MockS3API)(nil).ListMultipartUploads), arg0) } -// ListMultipartUploadsPages mocks base method +// ListMultipartUploadsPages mocks base method. func (m *MockS3API) ListMultipartUploadsPages(arg0 *s3.ListMultipartUploadsInput, arg1 func(*s3.ListMultipartUploadsOutput, bool) bool) error { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "ListMultipartUploadsPages", arg0, arg1) @@ -2861,13 +3011,13 @@ func (m *MockS3API) ListMultipartUploadsPages(arg0 *s3.ListMultipartUploadsInput return ret0 } -// ListMultipartUploadsPages indicates an expected call of ListMultipartUploadsPages +// ListMultipartUploadsPages indicates an expected call of ListMultipartUploadsPages. func (mr *MockS3APIMockRecorder) ListMultipartUploadsPages(arg0, arg1 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListMultipartUploadsPages", reflect.TypeOf((*MockS3API)(nil).ListMultipartUploadsPages), arg0, arg1) } -// ListMultipartUploadsPagesWithContext mocks base method +// ListMultipartUploadsPagesWithContext mocks base method. func (m *MockS3API) ListMultipartUploadsPagesWithContext(arg0 context.Context, arg1 *s3.ListMultipartUploadsInput, arg2 func(*s3.ListMultipartUploadsOutput, bool) bool, arg3 ...request.Option) error { m.ctrl.T.Helper() varargs := []interface{}{arg0, arg1, arg2} @@ -2879,14 +3029,14 @@ func (m *MockS3API) ListMultipartUploadsPagesWithContext(arg0 context.Context, a return ret0 } -// ListMultipartUploadsPagesWithContext indicates an expected call of ListMultipartUploadsPagesWithContext +// ListMultipartUploadsPagesWithContext indicates an expected call of ListMultipartUploadsPagesWithContext. func (mr *MockS3APIMockRecorder) ListMultipartUploadsPagesWithContext(arg0, arg1, arg2 interface{}, arg3 ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{arg0, arg1, arg2}, arg3...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListMultipartUploadsPagesWithContext", reflect.TypeOf((*MockS3API)(nil).ListMultipartUploadsPagesWithContext), varargs...) } -// ListMultipartUploadsRequest mocks base method +// ListMultipartUploadsRequest mocks base method. func (m *MockS3API) ListMultipartUploadsRequest(arg0 *s3.ListMultipartUploadsInput) (*request.Request, *s3.ListMultipartUploadsOutput) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "ListMultipartUploadsRequest", arg0) @@ -2895,13 +3045,13 @@ func (m *MockS3API) ListMultipartUploadsRequest(arg0 *s3.ListMultipartUploadsInp return ret0, ret1 } -// ListMultipartUploadsRequest indicates an expected call of ListMultipartUploadsRequest +// ListMultipartUploadsRequest indicates an expected call of ListMultipartUploadsRequest. func (mr *MockS3APIMockRecorder) ListMultipartUploadsRequest(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListMultipartUploadsRequest", reflect.TypeOf((*MockS3API)(nil).ListMultipartUploadsRequest), arg0) } -// ListMultipartUploadsWithContext mocks base method +// ListMultipartUploadsWithContext mocks base method. func (m *MockS3API) ListMultipartUploadsWithContext(arg0 context.Context, arg1 *s3.ListMultipartUploadsInput, arg2 ...request.Option) (*s3.ListMultipartUploadsOutput, error) { m.ctrl.T.Helper() varargs := []interface{}{arg0, arg1} @@ -2914,14 +3064,14 @@ func (m *MockS3API) ListMultipartUploadsWithContext(arg0 context.Context, arg1 * return ret0, ret1 } -// ListMultipartUploadsWithContext indicates an expected call of ListMultipartUploadsWithContext +// ListMultipartUploadsWithContext indicates an expected call of ListMultipartUploadsWithContext. func (mr *MockS3APIMockRecorder) ListMultipartUploadsWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{arg0, arg1}, arg2...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListMultipartUploadsWithContext", reflect.TypeOf((*MockS3API)(nil).ListMultipartUploadsWithContext), varargs...) } -// ListObjectVersions mocks base method +// ListObjectVersions mocks base method. func (m *MockS3API) ListObjectVersions(arg0 *s3.ListObjectVersionsInput) (*s3.ListObjectVersionsOutput, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "ListObjectVersions", arg0) @@ -2930,13 +3080,13 @@ func (m *MockS3API) ListObjectVersions(arg0 *s3.ListObjectVersionsInput) (*s3.Li return ret0, ret1 } -// ListObjectVersions indicates an expected call of ListObjectVersions +// ListObjectVersions indicates an expected call of ListObjectVersions. func (mr *MockS3APIMockRecorder) ListObjectVersions(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListObjectVersions", reflect.TypeOf((*MockS3API)(nil).ListObjectVersions), arg0) } -// ListObjectVersionsPages mocks base method +// ListObjectVersionsPages mocks base method. func (m *MockS3API) ListObjectVersionsPages(arg0 *s3.ListObjectVersionsInput, arg1 func(*s3.ListObjectVersionsOutput, bool) bool) error { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "ListObjectVersionsPages", arg0, arg1) @@ -2944,13 +3094,13 @@ func (m *MockS3API) ListObjectVersionsPages(arg0 *s3.ListObjectVersionsInput, ar return ret0 } -// ListObjectVersionsPages indicates an expected call of ListObjectVersionsPages +// ListObjectVersionsPages indicates an expected call of ListObjectVersionsPages. func (mr *MockS3APIMockRecorder) ListObjectVersionsPages(arg0, arg1 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListObjectVersionsPages", reflect.TypeOf((*MockS3API)(nil).ListObjectVersionsPages), arg0, arg1) } -// ListObjectVersionsPagesWithContext mocks base method +// ListObjectVersionsPagesWithContext mocks base method. func (m *MockS3API) ListObjectVersionsPagesWithContext(arg0 context.Context, arg1 *s3.ListObjectVersionsInput, arg2 func(*s3.ListObjectVersionsOutput, bool) bool, arg3 ...request.Option) error { m.ctrl.T.Helper() varargs := []interface{}{arg0, arg1, arg2} @@ -2962,14 +3112,14 @@ func (m *MockS3API) ListObjectVersionsPagesWithContext(arg0 context.Context, arg return ret0 } -// ListObjectVersionsPagesWithContext indicates an expected call of ListObjectVersionsPagesWithContext +// ListObjectVersionsPagesWithContext indicates an expected call of ListObjectVersionsPagesWithContext. func (mr *MockS3APIMockRecorder) ListObjectVersionsPagesWithContext(arg0, arg1, arg2 interface{}, arg3 ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{arg0, arg1, arg2}, arg3...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListObjectVersionsPagesWithContext", reflect.TypeOf((*MockS3API)(nil).ListObjectVersionsPagesWithContext), varargs...) } -// ListObjectVersionsRequest mocks base method +// ListObjectVersionsRequest mocks base method. func (m *MockS3API) ListObjectVersionsRequest(arg0 *s3.ListObjectVersionsInput) (*request.Request, *s3.ListObjectVersionsOutput) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "ListObjectVersionsRequest", arg0) @@ -2978,13 +3128,13 @@ func (m *MockS3API) ListObjectVersionsRequest(arg0 *s3.ListObjectVersionsInput) return ret0, ret1 } -// ListObjectVersionsRequest indicates an expected call of ListObjectVersionsRequest +// ListObjectVersionsRequest indicates an expected call of ListObjectVersionsRequest. func (mr *MockS3APIMockRecorder) ListObjectVersionsRequest(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListObjectVersionsRequest", reflect.TypeOf((*MockS3API)(nil).ListObjectVersionsRequest), arg0) } -// ListObjectVersionsWithContext mocks base method +// ListObjectVersionsWithContext mocks base method. func (m *MockS3API) ListObjectVersionsWithContext(arg0 context.Context, arg1 *s3.ListObjectVersionsInput, arg2 ...request.Option) (*s3.ListObjectVersionsOutput, error) { m.ctrl.T.Helper() varargs := []interface{}{arg0, arg1} @@ -2997,14 +3147,14 @@ func (m *MockS3API) ListObjectVersionsWithContext(arg0 context.Context, arg1 *s3 return ret0, ret1 } -// ListObjectVersionsWithContext indicates an expected call of ListObjectVersionsWithContext +// ListObjectVersionsWithContext indicates an expected call of ListObjectVersionsWithContext. func (mr *MockS3APIMockRecorder) ListObjectVersionsWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{arg0, arg1}, arg2...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListObjectVersionsWithContext", reflect.TypeOf((*MockS3API)(nil).ListObjectVersionsWithContext), varargs...) } -// ListObjects mocks base method +// ListObjects mocks base method. func (m *MockS3API) ListObjects(arg0 *s3.ListObjectsInput) (*s3.ListObjectsOutput, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "ListObjects", arg0) @@ -3013,13 +3163,13 @@ func (m *MockS3API) ListObjects(arg0 *s3.ListObjectsInput) (*s3.ListObjectsOutpu return ret0, ret1 } -// ListObjects indicates an expected call of ListObjects +// ListObjects indicates an expected call of ListObjects. func (mr *MockS3APIMockRecorder) ListObjects(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListObjects", reflect.TypeOf((*MockS3API)(nil).ListObjects), arg0) } -// ListObjectsPages mocks base method +// ListObjectsPages mocks base method. func (m *MockS3API) ListObjectsPages(arg0 *s3.ListObjectsInput, arg1 func(*s3.ListObjectsOutput, bool) bool) error { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "ListObjectsPages", arg0, arg1) @@ -3027,13 +3177,13 @@ func (m *MockS3API) ListObjectsPages(arg0 *s3.ListObjectsInput, arg1 func(*s3.Li return ret0 } -// ListObjectsPages indicates an expected call of ListObjectsPages +// ListObjectsPages indicates an expected call of ListObjectsPages. func (mr *MockS3APIMockRecorder) ListObjectsPages(arg0, arg1 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListObjectsPages", reflect.TypeOf((*MockS3API)(nil).ListObjectsPages), arg0, arg1) } -// ListObjectsPagesWithContext mocks base method +// ListObjectsPagesWithContext mocks base method. func (m *MockS3API) ListObjectsPagesWithContext(arg0 context.Context, arg1 *s3.ListObjectsInput, arg2 func(*s3.ListObjectsOutput, bool) bool, arg3 ...request.Option) error { m.ctrl.T.Helper() varargs := []interface{}{arg0, arg1, arg2} @@ -3045,14 +3195,14 @@ func (m *MockS3API) ListObjectsPagesWithContext(arg0 context.Context, arg1 *s3.L return ret0 } -// ListObjectsPagesWithContext indicates an expected call of ListObjectsPagesWithContext +// ListObjectsPagesWithContext indicates an expected call of ListObjectsPagesWithContext. func (mr *MockS3APIMockRecorder) ListObjectsPagesWithContext(arg0, arg1, arg2 interface{}, arg3 ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{arg0, arg1, arg2}, arg3...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListObjectsPagesWithContext", reflect.TypeOf((*MockS3API)(nil).ListObjectsPagesWithContext), varargs...) } -// ListObjectsRequest mocks base method +// ListObjectsRequest mocks base method. func (m *MockS3API) ListObjectsRequest(arg0 *s3.ListObjectsInput) (*request.Request, *s3.ListObjectsOutput) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "ListObjectsRequest", arg0) @@ -3061,13 +3211,13 @@ func (m *MockS3API) ListObjectsRequest(arg0 *s3.ListObjectsInput) (*request.Requ return ret0, ret1 } -// ListObjectsRequest indicates an expected call of ListObjectsRequest +// ListObjectsRequest indicates an expected call of ListObjectsRequest. func (mr *MockS3APIMockRecorder) ListObjectsRequest(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListObjectsRequest", reflect.TypeOf((*MockS3API)(nil).ListObjectsRequest), arg0) } -// ListObjectsV2 mocks base method +// ListObjectsV2 mocks base method. func (m *MockS3API) ListObjectsV2(arg0 *s3.ListObjectsV2Input) (*s3.ListObjectsV2Output, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "ListObjectsV2", arg0) @@ -3076,13 +3226,13 @@ func (m *MockS3API) ListObjectsV2(arg0 *s3.ListObjectsV2Input) (*s3.ListObjectsV return ret0, ret1 } -// ListObjectsV2 indicates an expected call of ListObjectsV2 +// ListObjectsV2 indicates an expected call of ListObjectsV2. func (mr *MockS3APIMockRecorder) ListObjectsV2(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListObjectsV2", reflect.TypeOf((*MockS3API)(nil).ListObjectsV2), arg0) } -// ListObjectsV2Pages mocks base method +// ListObjectsV2Pages mocks base method. func (m *MockS3API) ListObjectsV2Pages(arg0 *s3.ListObjectsV2Input, arg1 func(*s3.ListObjectsV2Output, bool) bool) error { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "ListObjectsV2Pages", arg0, arg1) @@ -3090,13 +3240,13 @@ func (m *MockS3API) ListObjectsV2Pages(arg0 *s3.ListObjectsV2Input, arg1 func(*s return ret0 } -// ListObjectsV2Pages indicates an expected call of ListObjectsV2Pages +// ListObjectsV2Pages indicates an expected call of ListObjectsV2Pages. func (mr *MockS3APIMockRecorder) ListObjectsV2Pages(arg0, arg1 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListObjectsV2Pages", reflect.TypeOf((*MockS3API)(nil).ListObjectsV2Pages), arg0, arg1) } -// ListObjectsV2PagesWithContext mocks base method +// ListObjectsV2PagesWithContext mocks base method. func (m *MockS3API) ListObjectsV2PagesWithContext(arg0 context.Context, arg1 *s3.ListObjectsV2Input, arg2 func(*s3.ListObjectsV2Output, bool) bool, arg3 ...request.Option) error { m.ctrl.T.Helper() varargs := []interface{}{arg0, arg1, arg2} @@ -3108,14 +3258,14 @@ func (m *MockS3API) ListObjectsV2PagesWithContext(arg0 context.Context, arg1 *s3 return ret0 } -// ListObjectsV2PagesWithContext indicates an expected call of ListObjectsV2PagesWithContext +// ListObjectsV2PagesWithContext indicates an expected call of ListObjectsV2PagesWithContext. func (mr *MockS3APIMockRecorder) ListObjectsV2PagesWithContext(arg0, arg1, arg2 interface{}, arg3 ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{arg0, arg1, arg2}, arg3...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListObjectsV2PagesWithContext", reflect.TypeOf((*MockS3API)(nil).ListObjectsV2PagesWithContext), varargs...) } -// ListObjectsV2Request mocks base method +// ListObjectsV2Request mocks base method. func (m *MockS3API) ListObjectsV2Request(arg0 *s3.ListObjectsV2Input) (*request.Request, *s3.ListObjectsV2Output) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "ListObjectsV2Request", arg0) @@ -3124,13 +3274,13 @@ func (m *MockS3API) ListObjectsV2Request(arg0 *s3.ListObjectsV2Input) (*request. return ret0, ret1 } -// ListObjectsV2Request indicates an expected call of ListObjectsV2Request +// ListObjectsV2Request indicates an expected call of ListObjectsV2Request. func (mr *MockS3APIMockRecorder) ListObjectsV2Request(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListObjectsV2Request", reflect.TypeOf((*MockS3API)(nil).ListObjectsV2Request), arg0) } -// ListObjectsV2WithContext mocks base method +// ListObjectsV2WithContext mocks base method. func (m *MockS3API) ListObjectsV2WithContext(arg0 context.Context, arg1 *s3.ListObjectsV2Input, arg2 ...request.Option) (*s3.ListObjectsV2Output, error) { m.ctrl.T.Helper() varargs := []interface{}{arg0, arg1} @@ -3143,14 +3293,14 @@ func (m *MockS3API) ListObjectsV2WithContext(arg0 context.Context, arg1 *s3.List return ret0, ret1 } -// ListObjectsV2WithContext indicates an expected call of ListObjectsV2WithContext +// ListObjectsV2WithContext indicates an expected call of ListObjectsV2WithContext. func (mr *MockS3APIMockRecorder) ListObjectsV2WithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{arg0, arg1}, arg2...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListObjectsV2WithContext", reflect.TypeOf((*MockS3API)(nil).ListObjectsV2WithContext), varargs...) } -// ListObjectsWithContext mocks base method +// ListObjectsWithContext mocks base method. func (m *MockS3API) ListObjectsWithContext(arg0 context.Context, arg1 *s3.ListObjectsInput, arg2 ...request.Option) (*s3.ListObjectsOutput, error) { m.ctrl.T.Helper() varargs := []interface{}{arg0, arg1} @@ -3163,14 +3313,14 @@ func (m *MockS3API) ListObjectsWithContext(arg0 context.Context, arg1 *s3.ListOb return ret0, ret1 } -// ListObjectsWithContext indicates an expected call of ListObjectsWithContext +// ListObjectsWithContext indicates an expected call of ListObjectsWithContext. func (mr *MockS3APIMockRecorder) ListObjectsWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{arg0, arg1}, arg2...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListObjectsWithContext", reflect.TypeOf((*MockS3API)(nil).ListObjectsWithContext), varargs...) } -// ListParts mocks base method +// ListParts mocks base method. func (m *MockS3API) ListParts(arg0 *s3.ListPartsInput) (*s3.ListPartsOutput, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "ListParts", arg0) @@ -3179,13 +3329,13 @@ func (m *MockS3API) ListParts(arg0 *s3.ListPartsInput) (*s3.ListPartsOutput, err return ret0, ret1 } -// ListParts indicates an expected call of ListParts +// ListParts indicates an expected call of ListParts. func (mr *MockS3APIMockRecorder) ListParts(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListParts", reflect.TypeOf((*MockS3API)(nil).ListParts), arg0) } -// ListPartsPages mocks base method +// ListPartsPages mocks base method. func (m *MockS3API) ListPartsPages(arg0 *s3.ListPartsInput, arg1 func(*s3.ListPartsOutput, bool) bool) error { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "ListPartsPages", arg0, arg1) @@ -3193,13 +3343,13 @@ func (m *MockS3API) ListPartsPages(arg0 *s3.ListPartsInput, arg1 func(*s3.ListPa return ret0 } -// ListPartsPages indicates an expected call of ListPartsPages +// ListPartsPages indicates an expected call of ListPartsPages. func (mr *MockS3APIMockRecorder) ListPartsPages(arg0, arg1 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListPartsPages", reflect.TypeOf((*MockS3API)(nil).ListPartsPages), arg0, arg1) } -// ListPartsPagesWithContext mocks base method +// ListPartsPagesWithContext mocks base method. func (m *MockS3API) ListPartsPagesWithContext(arg0 context.Context, arg1 *s3.ListPartsInput, arg2 func(*s3.ListPartsOutput, bool) bool, arg3 ...request.Option) error { m.ctrl.T.Helper() varargs := []interface{}{arg0, arg1, arg2} @@ -3211,14 +3361,14 @@ func (m *MockS3API) ListPartsPagesWithContext(arg0 context.Context, arg1 *s3.Lis return ret0 } -// ListPartsPagesWithContext indicates an expected call of ListPartsPagesWithContext +// ListPartsPagesWithContext indicates an expected call of ListPartsPagesWithContext. func (mr *MockS3APIMockRecorder) ListPartsPagesWithContext(arg0, arg1, arg2 interface{}, arg3 ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{arg0, arg1, arg2}, arg3...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListPartsPagesWithContext", reflect.TypeOf((*MockS3API)(nil).ListPartsPagesWithContext), varargs...) } -// ListPartsRequest mocks base method +// ListPartsRequest mocks base method. func (m *MockS3API) ListPartsRequest(arg0 *s3.ListPartsInput) (*request.Request, *s3.ListPartsOutput) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "ListPartsRequest", arg0) @@ -3227,13 +3377,13 @@ func (m *MockS3API) ListPartsRequest(arg0 *s3.ListPartsInput) (*request.Request, return ret0, ret1 } -// ListPartsRequest indicates an expected call of ListPartsRequest +// ListPartsRequest indicates an expected call of ListPartsRequest. func (mr *MockS3APIMockRecorder) ListPartsRequest(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListPartsRequest", reflect.TypeOf((*MockS3API)(nil).ListPartsRequest), arg0) } -// ListPartsWithContext mocks base method +// ListPartsWithContext mocks base method. func (m *MockS3API) ListPartsWithContext(arg0 context.Context, arg1 *s3.ListPartsInput, arg2 ...request.Option) (*s3.ListPartsOutput, error) { m.ctrl.T.Helper() varargs := []interface{}{arg0, arg1} @@ -3246,14 +3396,14 @@ func (m *MockS3API) ListPartsWithContext(arg0 context.Context, arg1 *s3.ListPart return ret0, ret1 } -// ListPartsWithContext indicates an expected call of ListPartsWithContext +// ListPartsWithContext indicates an expected call of ListPartsWithContext. func (mr *MockS3APIMockRecorder) ListPartsWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{arg0, arg1}, arg2...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListPartsWithContext", reflect.TypeOf((*MockS3API)(nil).ListPartsWithContext), varargs...) } -// PutBucketAccelerateConfiguration mocks base method +// PutBucketAccelerateConfiguration mocks base method. func (m *MockS3API) PutBucketAccelerateConfiguration(arg0 *s3.PutBucketAccelerateConfigurationInput) (*s3.PutBucketAccelerateConfigurationOutput, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "PutBucketAccelerateConfiguration", arg0) @@ -3262,13 +3412,13 @@ func (m *MockS3API) PutBucketAccelerateConfiguration(arg0 *s3.PutBucketAccelerat return ret0, ret1 } -// PutBucketAccelerateConfiguration indicates an expected call of PutBucketAccelerateConfiguration +// PutBucketAccelerateConfiguration indicates an expected call of PutBucketAccelerateConfiguration. func (mr *MockS3APIMockRecorder) PutBucketAccelerateConfiguration(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PutBucketAccelerateConfiguration", reflect.TypeOf((*MockS3API)(nil).PutBucketAccelerateConfiguration), arg0) } -// PutBucketAccelerateConfigurationRequest mocks base method +// PutBucketAccelerateConfigurationRequest mocks base method. func (m *MockS3API) PutBucketAccelerateConfigurationRequest(arg0 *s3.PutBucketAccelerateConfigurationInput) (*request.Request, *s3.PutBucketAccelerateConfigurationOutput) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "PutBucketAccelerateConfigurationRequest", arg0) @@ -3277,13 +3427,13 @@ func (m *MockS3API) PutBucketAccelerateConfigurationRequest(arg0 *s3.PutBucketAc return ret0, ret1 } -// PutBucketAccelerateConfigurationRequest indicates an expected call of PutBucketAccelerateConfigurationRequest +// PutBucketAccelerateConfigurationRequest indicates an expected call of PutBucketAccelerateConfigurationRequest. func (mr *MockS3APIMockRecorder) PutBucketAccelerateConfigurationRequest(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PutBucketAccelerateConfigurationRequest", reflect.TypeOf((*MockS3API)(nil).PutBucketAccelerateConfigurationRequest), arg0) } -// PutBucketAccelerateConfigurationWithContext mocks base method +// PutBucketAccelerateConfigurationWithContext mocks base method. func (m *MockS3API) PutBucketAccelerateConfigurationWithContext(arg0 context.Context, arg1 *s3.PutBucketAccelerateConfigurationInput, arg2 ...request.Option) (*s3.PutBucketAccelerateConfigurationOutput, error) { m.ctrl.T.Helper() varargs := []interface{}{arg0, arg1} @@ -3296,14 +3446,14 @@ func (m *MockS3API) PutBucketAccelerateConfigurationWithContext(arg0 context.Con return ret0, ret1 } -// PutBucketAccelerateConfigurationWithContext indicates an expected call of PutBucketAccelerateConfigurationWithContext +// PutBucketAccelerateConfigurationWithContext indicates an expected call of PutBucketAccelerateConfigurationWithContext. func (mr *MockS3APIMockRecorder) PutBucketAccelerateConfigurationWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{arg0, arg1}, arg2...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PutBucketAccelerateConfigurationWithContext", reflect.TypeOf((*MockS3API)(nil).PutBucketAccelerateConfigurationWithContext), varargs...) } -// PutBucketAcl mocks base method +// PutBucketAcl mocks base method. func (m *MockS3API) PutBucketAcl(arg0 *s3.PutBucketAclInput) (*s3.PutBucketAclOutput, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "PutBucketAcl", arg0) @@ -3312,13 +3462,13 @@ func (m *MockS3API) PutBucketAcl(arg0 *s3.PutBucketAclInput) (*s3.PutBucketAclOu return ret0, ret1 } -// PutBucketAcl indicates an expected call of PutBucketAcl +// PutBucketAcl indicates an expected call of PutBucketAcl. func (mr *MockS3APIMockRecorder) PutBucketAcl(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PutBucketAcl", reflect.TypeOf((*MockS3API)(nil).PutBucketAcl), arg0) } -// PutBucketAclRequest mocks base method +// PutBucketAclRequest mocks base method. func (m *MockS3API) PutBucketAclRequest(arg0 *s3.PutBucketAclInput) (*request.Request, *s3.PutBucketAclOutput) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "PutBucketAclRequest", arg0) @@ -3327,13 +3477,13 @@ func (m *MockS3API) PutBucketAclRequest(arg0 *s3.PutBucketAclInput) (*request.Re return ret0, ret1 } -// PutBucketAclRequest indicates an expected call of PutBucketAclRequest +// PutBucketAclRequest indicates an expected call of PutBucketAclRequest. func (mr *MockS3APIMockRecorder) PutBucketAclRequest(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PutBucketAclRequest", reflect.TypeOf((*MockS3API)(nil).PutBucketAclRequest), arg0) } -// PutBucketAclWithContext mocks base method +// PutBucketAclWithContext mocks base method. func (m *MockS3API) PutBucketAclWithContext(arg0 context.Context, arg1 *s3.PutBucketAclInput, arg2 ...request.Option) (*s3.PutBucketAclOutput, error) { m.ctrl.T.Helper() varargs := []interface{}{arg0, arg1} @@ -3346,14 +3496,14 @@ func (m *MockS3API) PutBucketAclWithContext(arg0 context.Context, arg1 *s3.PutBu return ret0, ret1 } -// PutBucketAclWithContext indicates an expected call of PutBucketAclWithContext +// PutBucketAclWithContext indicates an expected call of PutBucketAclWithContext. func (mr *MockS3APIMockRecorder) PutBucketAclWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{arg0, arg1}, arg2...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PutBucketAclWithContext", reflect.TypeOf((*MockS3API)(nil).PutBucketAclWithContext), varargs...) } -// PutBucketAnalyticsConfiguration mocks base method +// PutBucketAnalyticsConfiguration mocks base method. func (m *MockS3API) PutBucketAnalyticsConfiguration(arg0 *s3.PutBucketAnalyticsConfigurationInput) (*s3.PutBucketAnalyticsConfigurationOutput, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "PutBucketAnalyticsConfiguration", arg0) @@ -3362,13 +3512,13 @@ func (m *MockS3API) PutBucketAnalyticsConfiguration(arg0 *s3.PutBucketAnalyticsC return ret0, ret1 } -// PutBucketAnalyticsConfiguration indicates an expected call of PutBucketAnalyticsConfiguration +// PutBucketAnalyticsConfiguration indicates an expected call of PutBucketAnalyticsConfiguration. func (mr *MockS3APIMockRecorder) PutBucketAnalyticsConfiguration(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PutBucketAnalyticsConfiguration", reflect.TypeOf((*MockS3API)(nil).PutBucketAnalyticsConfiguration), arg0) } -// PutBucketAnalyticsConfigurationRequest mocks base method +// PutBucketAnalyticsConfigurationRequest mocks base method. func (m *MockS3API) PutBucketAnalyticsConfigurationRequest(arg0 *s3.PutBucketAnalyticsConfigurationInput) (*request.Request, *s3.PutBucketAnalyticsConfigurationOutput) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "PutBucketAnalyticsConfigurationRequest", arg0) @@ -3377,13 +3527,13 @@ func (m *MockS3API) PutBucketAnalyticsConfigurationRequest(arg0 *s3.PutBucketAna return ret0, ret1 } -// PutBucketAnalyticsConfigurationRequest indicates an expected call of PutBucketAnalyticsConfigurationRequest +// PutBucketAnalyticsConfigurationRequest indicates an expected call of PutBucketAnalyticsConfigurationRequest. func (mr *MockS3APIMockRecorder) PutBucketAnalyticsConfigurationRequest(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PutBucketAnalyticsConfigurationRequest", reflect.TypeOf((*MockS3API)(nil).PutBucketAnalyticsConfigurationRequest), arg0) } -// PutBucketAnalyticsConfigurationWithContext mocks base method +// PutBucketAnalyticsConfigurationWithContext mocks base method. func (m *MockS3API) PutBucketAnalyticsConfigurationWithContext(arg0 context.Context, arg1 *s3.PutBucketAnalyticsConfigurationInput, arg2 ...request.Option) (*s3.PutBucketAnalyticsConfigurationOutput, error) { m.ctrl.T.Helper() varargs := []interface{}{arg0, arg1} @@ -3396,14 +3546,14 @@ func (m *MockS3API) PutBucketAnalyticsConfigurationWithContext(arg0 context.Cont return ret0, ret1 } -// PutBucketAnalyticsConfigurationWithContext indicates an expected call of PutBucketAnalyticsConfigurationWithContext +// PutBucketAnalyticsConfigurationWithContext indicates an expected call of PutBucketAnalyticsConfigurationWithContext. func (mr *MockS3APIMockRecorder) PutBucketAnalyticsConfigurationWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{arg0, arg1}, arg2...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PutBucketAnalyticsConfigurationWithContext", reflect.TypeOf((*MockS3API)(nil).PutBucketAnalyticsConfigurationWithContext), varargs...) } -// PutBucketCors mocks base method +// PutBucketCors mocks base method. func (m *MockS3API) PutBucketCors(arg0 *s3.PutBucketCorsInput) (*s3.PutBucketCorsOutput, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "PutBucketCors", arg0) @@ -3412,13 +3562,13 @@ func (m *MockS3API) PutBucketCors(arg0 *s3.PutBucketCorsInput) (*s3.PutBucketCor return ret0, ret1 } -// PutBucketCors indicates an expected call of PutBucketCors +// PutBucketCors indicates an expected call of PutBucketCors. func (mr *MockS3APIMockRecorder) PutBucketCors(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PutBucketCors", reflect.TypeOf((*MockS3API)(nil).PutBucketCors), arg0) } -// PutBucketCorsRequest mocks base method +// PutBucketCorsRequest mocks base method. func (m *MockS3API) PutBucketCorsRequest(arg0 *s3.PutBucketCorsInput) (*request.Request, *s3.PutBucketCorsOutput) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "PutBucketCorsRequest", arg0) @@ -3427,13 +3577,13 @@ func (m *MockS3API) PutBucketCorsRequest(arg0 *s3.PutBucketCorsInput) (*request. return ret0, ret1 } -// PutBucketCorsRequest indicates an expected call of PutBucketCorsRequest +// PutBucketCorsRequest indicates an expected call of PutBucketCorsRequest. func (mr *MockS3APIMockRecorder) PutBucketCorsRequest(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PutBucketCorsRequest", reflect.TypeOf((*MockS3API)(nil).PutBucketCorsRequest), arg0) } -// PutBucketCorsWithContext mocks base method +// PutBucketCorsWithContext mocks base method. func (m *MockS3API) PutBucketCorsWithContext(arg0 context.Context, arg1 *s3.PutBucketCorsInput, arg2 ...request.Option) (*s3.PutBucketCorsOutput, error) { m.ctrl.T.Helper() varargs := []interface{}{arg0, arg1} @@ -3446,14 +3596,14 @@ func (m *MockS3API) PutBucketCorsWithContext(arg0 context.Context, arg1 *s3.PutB return ret0, ret1 } -// PutBucketCorsWithContext indicates an expected call of PutBucketCorsWithContext +// PutBucketCorsWithContext indicates an expected call of PutBucketCorsWithContext. func (mr *MockS3APIMockRecorder) PutBucketCorsWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{arg0, arg1}, arg2...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PutBucketCorsWithContext", reflect.TypeOf((*MockS3API)(nil).PutBucketCorsWithContext), varargs...) } -// PutBucketEncryption mocks base method +// PutBucketEncryption mocks base method. func (m *MockS3API) PutBucketEncryption(arg0 *s3.PutBucketEncryptionInput) (*s3.PutBucketEncryptionOutput, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "PutBucketEncryption", arg0) @@ -3462,13 +3612,13 @@ func (m *MockS3API) PutBucketEncryption(arg0 *s3.PutBucketEncryptionInput) (*s3. return ret0, ret1 } -// PutBucketEncryption indicates an expected call of PutBucketEncryption +// PutBucketEncryption indicates an expected call of PutBucketEncryption. func (mr *MockS3APIMockRecorder) PutBucketEncryption(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PutBucketEncryption", reflect.TypeOf((*MockS3API)(nil).PutBucketEncryption), arg0) } -// PutBucketEncryptionRequest mocks base method +// PutBucketEncryptionRequest mocks base method. func (m *MockS3API) PutBucketEncryptionRequest(arg0 *s3.PutBucketEncryptionInput) (*request.Request, *s3.PutBucketEncryptionOutput) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "PutBucketEncryptionRequest", arg0) @@ -3477,13 +3627,13 @@ func (m *MockS3API) PutBucketEncryptionRequest(arg0 *s3.PutBucketEncryptionInput return ret0, ret1 } -// PutBucketEncryptionRequest indicates an expected call of PutBucketEncryptionRequest +// PutBucketEncryptionRequest indicates an expected call of PutBucketEncryptionRequest. func (mr *MockS3APIMockRecorder) PutBucketEncryptionRequest(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PutBucketEncryptionRequest", reflect.TypeOf((*MockS3API)(nil).PutBucketEncryptionRequest), arg0) } -// PutBucketEncryptionWithContext mocks base method +// PutBucketEncryptionWithContext mocks base method. func (m *MockS3API) PutBucketEncryptionWithContext(arg0 context.Context, arg1 *s3.PutBucketEncryptionInput, arg2 ...request.Option) (*s3.PutBucketEncryptionOutput, error) { m.ctrl.T.Helper() varargs := []interface{}{arg0, arg1} @@ -3496,14 +3646,64 @@ func (m *MockS3API) PutBucketEncryptionWithContext(arg0 context.Context, arg1 *s return ret0, ret1 } -// PutBucketEncryptionWithContext indicates an expected call of PutBucketEncryptionWithContext +// PutBucketEncryptionWithContext indicates an expected call of PutBucketEncryptionWithContext. func (mr *MockS3APIMockRecorder) PutBucketEncryptionWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{arg0, arg1}, arg2...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PutBucketEncryptionWithContext", reflect.TypeOf((*MockS3API)(nil).PutBucketEncryptionWithContext), varargs...) } -// PutBucketInventoryConfiguration mocks base method +// PutBucketIntelligentTieringConfiguration mocks base method. +func (m *MockS3API) PutBucketIntelligentTieringConfiguration(arg0 *s3.PutBucketIntelligentTieringConfigurationInput) (*s3.PutBucketIntelligentTieringConfigurationOutput, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "PutBucketIntelligentTieringConfiguration", arg0) + ret0, _ := ret[0].(*s3.PutBucketIntelligentTieringConfigurationOutput) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// PutBucketIntelligentTieringConfiguration indicates an expected call of PutBucketIntelligentTieringConfiguration. +func (mr *MockS3APIMockRecorder) PutBucketIntelligentTieringConfiguration(arg0 interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PutBucketIntelligentTieringConfiguration", reflect.TypeOf((*MockS3API)(nil).PutBucketIntelligentTieringConfiguration), arg0) +} + +// PutBucketIntelligentTieringConfigurationRequest mocks base method. +func (m *MockS3API) PutBucketIntelligentTieringConfigurationRequest(arg0 *s3.PutBucketIntelligentTieringConfigurationInput) (*request.Request, *s3.PutBucketIntelligentTieringConfigurationOutput) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "PutBucketIntelligentTieringConfigurationRequest", arg0) + ret0, _ := ret[0].(*request.Request) + ret1, _ := ret[1].(*s3.PutBucketIntelligentTieringConfigurationOutput) + return ret0, ret1 +} + +// PutBucketIntelligentTieringConfigurationRequest indicates an expected call of PutBucketIntelligentTieringConfigurationRequest. +func (mr *MockS3APIMockRecorder) PutBucketIntelligentTieringConfigurationRequest(arg0 interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PutBucketIntelligentTieringConfigurationRequest", reflect.TypeOf((*MockS3API)(nil).PutBucketIntelligentTieringConfigurationRequest), arg0) +} + +// PutBucketIntelligentTieringConfigurationWithContext mocks base method. +func (m *MockS3API) PutBucketIntelligentTieringConfigurationWithContext(arg0 context.Context, arg1 *s3.PutBucketIntelligentTieringConfigurationInput, arg2 ...request.Option) (*s3.PutBucketIntelligentTieringConfigurationOutput, error) { + m.ctrl.T.Helper() + varargs := []interface{}{arg0, arg1} + for _, a := range arg2 { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "PutBucketIntelligentTieringConfigurationWithContext", varargs...) + ret0, _ := ret[0].(*s3.PutBucketIntelligentTieringConfigurationOutput) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// PutBucketIntelligentTieringConfigurationWithContext indicates an expected call of PutBucketIntelligentTieringConfigurationWithContext. +func (mr *MockS3APIMockRecorder) PutBucketIntelligentTieringConfigurationWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + varargs := append([]interface{}{arg0, arg1}, arg2...) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PutBucketIntelligentTieringConfigurationWithContext", reflect.TypeOf((*MockS3API)(nil).PutBucketIntelligentTieringConfigurationWithContext), varargs...) +} + +// PutBucketInventoryConfiguration mocks base method. func (m *MockS3API) PutBucketInventoryConfiguration(arg0 *s3.PutBucketInventoryConfigurationInput) (*s3.PutBucketInventoryConfigurationOutput, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "PutBucketInventoryConfiguration", arg0) @@ -3512,13 +3712,13 @@ func (m *MockS3API) PutBucketInventoryConfiguration(arg0 *s3.PutBucketInventoryC return ret0, ret1 } -// PutBucketInventoryConfiguration indicates an expected call of PutBucketInventoryConfiguration +// PutBucketInventoryConfiguration indicates an expected call of PutBucketInventoryConfiguration. func (mr *MockS3APIMockRecorder) PutBucketInventoryConfiguration(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PutBucketInventoryConfiguration", reflect.TypeOf((*MockS3API)(nil).PutBucketInventoryConfiguration), arg0) } -// PutBucketInventoryConfigurationRequest mocks base method +// PutBucketInventoryConfigurationRequest mocks base method. func (m *MockS3API) PutBucketInventoryConfigurationRequest(arg0 *s3.PutBucketInventoryConfigurationInput) (*request.Request, *s3.PutBucketInventoryConfigurationOutput) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "PutBucketInventoryConfigurationRequest", arg0) @@ -3527,13 +3727,13 @@ func (m *MockS3API) PutBucketInventoryConfigurationRequest(arg0 *s3.PutBucketInv return ret0, ret1 } -// PutBucketInventoryConfigurationRequest indicates an expected call of PutBucketInventoryConfigurationRequest +// PutBucketInventoryConfigurationRequest indicates an expected call of PutBucketInventoryConfigurationRequest. func (mr *MockS3APIMockRecorder) PutBucketInventoryConfigurationRequest(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PutBucketInventoryConfigurationRequest", reflect.TypeOf((*MockS3API)(nil).PutBucketInventoryConfigurationRequest), arg0) } -// PutBucketInventoryConfigurationWithContext mocks base method +// PutBucketInventoryConfigurationWithContext mocks base method. func (m *MockS3API) PutBucketInventoryConfigurationWithContext(arg0 context.Context, arg1 *s3.PutBucketInventoryConfigurationInput, arg2 ...request.Option) (*s3.PutBucketInventoryConfigurationOutput, error) { m.ctrl.T.Helper() varargs := []interface{}{arg0, arg1} @@ -3546,14 +3746,14 @@ func (m *MockS3API) PutBucketInventoryConfigurationWithContext(arg0 context.Cont return ret0, ret1 } -// PutBucketInventoryConfigurationWithContext indicates an expected call of PutBucketInventoryConfigurationWithContext +// PutBucketInventoryConfigurationWithContext indicates an expected call of PutBucketInventoryConfigurationWithContext. func (mr *MockS3APIMockRecorder) PutBucketInventoryConfigurationWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{arg0, arg1}, arg2...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PutBucketInventoryConfigurationWithContext", reflect.TypeOf((*MockS3API)(nil).PutBucketInventoryConfigurationWithContext), varargs...) } -// PutBucketLifecycle mocks base method +// PutBucketLifecycle mocks base method. func (m *MockS3API) PutBucketLifecycle(arg0 *s3.PutBucketLifecycleInput) (*s3.PutBucketLifecycleOutput, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "PutBucketLifecycle", arg0) @@ -3562,13 +3762,13 @@ func (m *MockS3API) PutBucketLifecycle(arg0 *s3.PutBucketLifecycleInput) (*s3.Pu return ret0, ret1 } -// PutBucketLifecycle indicates an expected call of PutBucketLifecycle +// PutBucketLifecycle indicates an expected call of PutBucketLifecycle. func (mr *MockS3APIMockRecorder) PutBucketLifecycle(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PutBucketLifecycle", reflect.TypeOf((*MockS3API)(nil).PutBucketLifecycle), arg0) } -// PutBucketLifecycleConfiguration mocks base method +// PutBucketLifecycleConfiguration mocks base method. func (m *MockS3API) PutBucketLifecycleConfiguration(arg0 *s3.PutBucketLifecycleConfigurationInput) (*s3.PutBucketLifecycleConfigurationOutput, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "PutBucketLifecycleConfiguration", arg0) @@ -3577,13 +3777,13 @@ func (m *MockS3API) PutBucketLifecycleConfiguration(arg0 *s3.PutBucketLifecycleC return ret0, ret1 } -// PutBucketLifecycleConfiguration indicates an expected call of PutBucketLifecycleConfiguration +// PutBucketLifecycleConfiguration indicates an expected call of PutBucketLifecycleConfiguration. func (mr *MockS3APIMockRecorder) PutBucketLifecycleConfiguration(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PutBucketLifecycleConfiguration", reflect.TypeOf((*MockS3API)(nil).PutBucketLifecycleConfiguration), arg0) } -// PutBucketLifecycleConfigurationRequest mocks base method +// PutBucketLifecycleConfigurationRequest mocks base method. func (m *MockS3API) PutBucketLifecycleConfigurationRequest(arg0 *s3.PutBucketLifecycleConfigurationInput) (*request.Request, *s3.PutBucketLifecycleConfigurationOutput) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "PutBucketLifecycleConfigurationRequest", arg0) @@ -3592,13 +3792,13 @@ func (m *MockS3API) PutBucketLifecycleConfigurationRequest(arg0 *s3.PutBucketLif return ret0, ret1 } -// PutBucketLifecycleConfigurationRequest indicates an expected call of PutBucketLifecycleConfigurationRequest +// PutBucketLifecycleConfigurationRequest indicates an expected call of PutBucketLifecycleConfigurationRequest. func (mr *MockS3APIMockRecorder) PutBucketLifecycleConfigurationRequest(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PutBucketLifecycleConfigurationRequest", reflect.TypeOf((*MockS3API)(nil).PutBucketLifecycleConfigurationRequest), arg0) } -// PutBucketLifecycleConfigurationWithContext mocks base method +// PutBucketLifecycleConfigurationWithContext mocks base method. func (m *MockS3API) PutBucketLifecycleConfigurationWithContext(arg0 context.Context, arg1 *s3.PutBucketLifecycleConfigurationInput, arg2 ...request.Option) (*s3.PutBucketLifecycleConfigurationOutput, error) { m.ctrl.T.Helper() varargs := []interface{}{arg0, arg1} @@ -3611,14 +3811,14 @@ func (m *MockS3API) PutBucketLifecycleConfigurationWithContext(arg0 context.Cont return ret0, ret1 } -// PutBucketLifecycleConfigurationWithContext indicates an expected call of PutBucketLifecycleConfigurationWithContext +// PutBucketLifecycleConfigurationWithContext indicates an expected call of PutBucketLifecycleConfigurationWithContext. func (mr *MockS3APIMockRecorder) PutBucketLifecycleConfigurationWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{arg0, arg1}, arg2...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PutBucketLifecycleConfigurationWithContext", reflect.TypeOf((*MockS3API)(nil).PutBucketLifecycleConfigurationWithContext), varargs...) } -// PutBucketLifecycleRequest mocks base method +// PutBucketLifecycleRequest mocks base method. func (m *MockS3API) PutBucketLifecycleRequest(arg0 *s3.PutBucketLifecycleInput) (*request.Request, *s3.PutBucketLifecycleOutput) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "PutBucketLifecycleRequest", arg0) @@ -3627,13 +3827,13 @@ func (m *MockS3API) PutBucketLifecycleRequest(arg0 *s3.PutBucketLifecycleInput) return ret0, ret1 } -// PutBucketLifecycleRequest indicates an expected call of PutBucketLifecycleRequest +// PutBucketLifecycleRequest indicates an expected call of PutBucketLifecycleRequest. func (mr *MockS3APIMockRecorder) PutBucketLifecycleRequest(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PutBucketLifecycleRequest", reflect.TypeOf((*MockS3API)(nil).PutBucketLifecycleRequest), arg0) } -// PutBucketLifecycleWithContext mocks base method +// PutBucketLifecycleWithContext mocks base method. func (m *MockS3API) PutBucketLifecycleWithContext(arg0 context.Context, arg1 *s3.PutBucketLifecycleInput, arg2 ...request.Option) (*s3.PutBucketLifecycleOutput, error) { m.ctrl.T.Helper() varargs := []interface{}{arg0, arg1} @@ -3646,14 +3846,14 @@ func (m *MockS3API) PutBucketLifecycleWithContext(arg0 context.Context, arg1 *s3 return ret0, ret1 } -// PutBucketLifecycleWithContext indicates an expected call of PutBucketLifecycleWithContext +// PutBucketLifecycleWithContext indicates an expected call of PutBucketLifecycleWithContext. func (mr *MockS3APIMockRecorder) PutBucketLifecycleWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{arg0, arg1}, arg2...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PutBucketLifecycleWithContext", reflect.TypeOf((*MockS3API)(nil).PutBucketLifecycleWithContext), varargs...) } -// PutBucketLogging mocks base method +// PutBucketLogging mocks base method. func (m *MockS3API) PutBucketLogging(arg0 *s3.PutBucketLoggingInput) (*s3.PutBucketLoggingOutput, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "PutBucketLogging", arg0) @@ -3662,13 +3862,13 @@ func (m *MockS3API) PutBucketLogging(arg0 *s3.PutBucketLoggingInput) (*s3.PutBuc return ret0, ret1 } -// PutBucketLogging indicates an expected call of PutBucketLogging +// PutBucketLogging indicates an expected call of PutBucketLogging. func (mr *MockS3APIMockRecorder) PutBucketLogging(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PutBucketLogging", reflect.TypeOf((*MockS3API)(nil).PutBucketLogging), arg0) } -// PutBucketLoggingRequest mocks base method +// PutBucketLoggingRequest mocks base method. func (m *MockS3API) PutBucketLoggingRequest(arg0 *s3.PutBucketLoggingInput) (*request.Request, *s3.PutBucketLoggingOutput) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "PutBucketLoggingRequest", arg0) @@ -3677,13 +3877,13 @@ func (m *MockS3API) PutBucketLoggingRequest(arg0 *s3.PutBucketLoggingInput) (*re return ret0, ret1 } -// PutBucketLoggingRequest indicates an expected call of PutBucketLoggingRequest +// PutBucketLoggingRequest indicates an expected call of PutBucketLoggingRequest. func (mr *MockS3APIMockRecorder) PutBucketLoggingRequest(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PutBucketLoggingRequest", reflect.TypeOf((*MockS3API)(nil).PutBucketLoggingRequest), arg0) } -// PutBucketLoggingWithContext mocks base method +// PutBucketLoggingWithContext mocks base method. func (m *MockS3API) PutBucketLoggingWithContext(arg0 context.Context, arg1 *s3.PutBucketLoggingInput, arg2 ...request.Option) (*s3.PutBucketLoggingOutput, error) { m.ctrl.T.Helper() varargs := []interface{}{arg0, arg1} @@ -3696,14 +3896,14 @@ func (m *MockS3API) PutBucketLoggingWithContext(arg0 context.Context, arg1 *s3.P return ret0, ret1 } -// PutBucketLoggingWithContext indicates an expected call of PutBucketLoggingWithContext +// PutBucketLoggingWithContext indicates an expected call of PutBucketLoggingWithContext. func (mr *MockS3APIMockRecorder) PutBucketLoggingWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{arg0, arg1}, arg2...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PutBucketLoggingWithContext", reflect.TypeOf((*MockS3API)(nil).PutBucketLoggingWithContext), varargs...) } -// PutBucketMetricsConfiguration mocks base method +// PutBucketMetricsConfiguration mocks base method. func (m *MockS3API) PutBucketMetricsConfiguration(arg0 *s3.PutBucketMetricsConfigurationInput) (*s3.PutBucketMetricsConfigurationOutput, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "PutBucketMetricsConfiguration", arg0) @@ -3712,13 +3912,13 @@ func (m *MockS3API) PutBucketMetricsConfiguration(arg0 *s3.PutBucketMetricsConfi return ret0, ret1 } -// PutBucketMetricsConfiguration indicates an expected call of PutBucketMetricsConfiguration +// PutBucketMetricsConfiguration indicates an expected call of PutBucketMetricsConfiguration. func (mr *MockS3APIMockRecorder) PutBucketMetricsConfiguration(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PutBucketMetricsConfiguration", reflect.TypeOf((*MockS3API)(nil).PutBucketMetricsConfiguration), arg0) } -// PutBucketMetricsConfigurationRequest mocks base method +// PutBucketMetricsConfigurationRequest mocks base method. func (m *MockS3API) PutBucketMetricsConfigurationRequest(arg0 *s3.PutBucketMetricsConfigurationInput) (*request.Request, *s3.PutBucketMetricsConfigurationOutput) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "PutBucketMetricsConfigurationRequest", arg0) @@ -3727,13 +3927,13 @@ func (m *MockS3API) PutBucketMetricsConfigurationRequest(arg0 *s3.PutBucketMetri return ret0, ret1 } -// PutBucketMetricsConfigurationRequest indicates an expected call of PutBucketMetricsConfigurationRequest +// PutBucketMetricsConfigurationRequest indicates an expected call of PutBucketMetricsConfigurationRequest. func (mr *MockS3APIMockRecorder) PutBucketMetricsConfigurationRequest(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PutBucketMetricsConfigurationRequest", reflect.TypeOf((*MockS3API)(nil).PutBucketMetricsConfigurationRequest), arg0) } -// PutBucketMetricsConfigurationWithContext mocks base method +// PutBucketMetricsConfigurationWithContext mocks base method. func (m *MockS3API) PutBucketMetricsConfigurationWithContext(arg0 context.Context, arg1 *s3.PutBucketMetricsConfigurationInput, arg2 ...request.Option) (*s3.PutBucketMetricsConfigurationOutput, error) { m.ctrl.T.Helper() varargs := []interface{}{arg0, arg1} @@ -3746,14 +3946,14 @@ func (m *MockS3API) PutBucketMetricsConfigurationWithContext(arg0 context.Contex return ret0, ret1 } -// PutBucketMetricsConfigurationWithContext indicates an expected call of PutBucketMetricsConfigurationWithContext +// PutBucketMetricsConfigurationWithContext indicates an expected call of PutBucketMetricsConfigurationWithContext. func (mr *MockS3APIMockRecorder) PutBucketMetricsConfigurationWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{arg0, arg1}, arg2...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PutBucketMetricsConfigurationWithContext", reflect.TypeOf((*MockS3API)(nil).PutBucketMetricsConfigurationWithContext), varargs...) } -// PutBucketNotification mocks base method +// PutBucketNotification mocks base method. func (m *MockS3API) PutBucketNotification(arg0 *s3.PutBucketNotificationInput) (*s3.PutBucketNotificationOutput, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "PutBucketNotification", arg0) @@ -3762,13 +3962,13 @@ func (m *MockS3API) PutBucketNotification(arg0 *s3.PutBucketNotificationInput) ( return ret0, ret1 } -// PutBucketNotification indicates an expected call of PutBucketNotification +// PutBucketNotification indicates an expected call of PutBucketNotification. func (mr *MockS3APIMockRecorder) PutBucketNotification(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PutBucketNotification", reflect.TypeOf((*MockS3API)(nil).PutBucketNotification), arg0) } -// PutBucketNotificationConfiguration mocks base method +// PutBucketNotificationConfiguration mocks base method. func (m *MockS3API) PutBucketNotificationConfiguration(arg0 *s3.PutBucketNotificationConfigurationInput) (*s3.PutBucketNotificationConfigurationOutput, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "PutBucketNotificationConfiguration", arg0) @@ -3777,13 +3977,13 @@ func (m *MockS3API) PutBucketNotificationConfiguration(arg0 *s3.PutBucketNotific return ret0, ret1 } -// PutBucketNotificationConfiguration indicates an expected call of PutBucketNotificationConfiguration +// PutBucketNotificationConfiguration indicates an expected call of PutBucketNotificationConfiguration. func (mr *MockS3APIMockRecorder) PutBucketNotificationConfiguration(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PutBucketNotificationConfiguration", reflect.TypeOf((*MockS3API)(nil).PutBucketNotificationConfiguration), arg0) } -// PutBucketNotificationConfigurationRequest mocks base method +// PutBucketNotificationConfigurationRequest mocks base method. func (m *MockS3API) PutBucketNotificationConfigurationRequest(arg0 *s3.PutBucketNotificationConfigurationInput) (*request.Request, *s3.PutBucketNotificationConfigurationOutput) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "PutBucketNotificationConfigurationRequest", arg0) @@ -3792,13 +3992,13 @@ func (m *MockS3API) PutBucketNotificationConfigurationRequest(arg0 *s3.PutBucket return ret0, ret1 } -// PutBucketNotificationConfigurationRequest indicates an expected call of PutBucketNotificationConfigurationRequest +// PutBucketNotificationConfigurationRequest indicates an expected call of PutBucketNotificationConfigurationRequest. func (mr *MockS3APIMockRecorder) PutBucketNotificationConfigurationRequest(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PutBucketNotificationConfigurationRequest", reflect.TypeOf((*MockS3API)(nil).PutBucketNotificationConfigurationRequest), arg0) } -// PutBucketNotificationConfigurationWithContext mocks base method +// PutBucketNotificationConfigurationWithContext mocks base method. func (m *MockS3API) PutBucketNotificationConfigurationWithContext(arg0 context.Context, arg1 *s3.PutBucketNotificationConfigurationInput, arg2 ...request.Option) (*s3.PutBucketNotificationConfigurationOutput, error) { m.ctrl.T.Helper() varargs := []interface{}{arg0, arg1} @@ -3811,14 +4011,14 @@ func (m *MockS3API) PutBucketNotificationConfigurationWithContext(arg0 context.C return ret0, ret1 } -// PutBucketNotificationConfigurationWithContext indicates an expected call of PutBucketNotificationConfigurationWithContext +// PutBucketNotificationConfigurationWithContext indicates an expected call of PutBucketNotificationConfigurationWithContext. func (mr *MockS3APIMockRecorder) PutBucketNotificationConfigurationWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{arg0, arg1}, arg2...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PutBucketNotificationConfigurationWithContext", reflect.TypeOf((*MockS3API)(nil).PutBucketNotificationConfigurationWithContext), varargs...) } -// PutBucketNotificationRequest mocks base method +// PutBucketNotificationRequest mocks base method. func (m *MockS3API) PutBucketNotificationRequest(arg0 *s3.PutBucketNotificationInput) (*request.Request, *s3.PutBucketNotificationOutput) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "PutBucketNotificationRequest", arg0) @@ -3827,13 +4027,13 @@ func (m *MockS3API) PutBucketNotificationRequest(arg0 *s3.PutBucketNotificationI return ret0, ret1 } -// PutBucketNotificationRequest indicates an expected call of PutBucketNotificationRequest +// PutBucketNotificationRequest indicates an expected call of PutBucketNotificationRequest. func (mr *MockS3APIMockRecorder) PutBucketNotificationRequest(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PutBucketNotificationRequest", reflect.TypeOf((*MockS3API)(nil).PutBucketNotificationRequest), arg0) } -// PutBucketNotificationWithContext mocks base method +// PutBucketNotificationWithContext mocks base method. func (m *MockS3API) PutBucketNotificationWithContext(arg0 context.Context, arg1 *s3.PutBucketNotificationInput, arg2 ...request.Option) (*s3.PutBucketNotificationOutput, error) { m.ctrl.T.Helper() varargs := []interface{}{arg0, arg1} @@ -3846,14 +4046,14 @@ func (m *MockS3API) PutBucketNotificationWithContext(arg0 context.Context, arg1 return ret0, ret1 } -// PutBucketNotificationWithContext indicates an expected call of PutBucketNotificationWithContext +// PutBucketNotificationWithContext indicates an expected call of PutBucketNotificationWithContext. func (mr *MockS3APIMockRecorder) PutBucketNotificationWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{arg0, arg1}, arg2...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PutBucketNotificationWithContext", reflect.TypeOf((*MockS3API)(nil).PutBucketNotificationWithContext), varargs...) } -// PutBucketOwnershipControls mocks base method +// PutBucketOwnershipControls mocks base method. func (m *MockS3API) PutBucketOwnershipControls(arg0 *s3.PutBucketOwnershipControlsInput) (*s3.PutBucketOwnershipControlsOutput, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "PutBucketOwnershipControls", arg0) @@ -3862,13 +4062,13 @@ func (m *MockS3API) PutBucketOwnershipControls(arg0 *s3.PutBucketOwnershipContro return ret0, ret1 } -// PutBucketOwnershipControls indicates an expected call of PutBucketOwnershipControls +// PutBucketOwnershipControls indicates an expected call of PutBucketOwnershipControls. func (mr *MockS3APIMockRecorder) PutBucketOwnershipControls(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PutBucketOwnershipControls", reflect.TypeOf((*MockS3API)(nil).PutBucketOwnershipControls), arg0) } -// PutBucketOwnershipControlsRequest mocks base method +// PutBucketOwnershipControlsRequest mocks base method. func (m *MockS3API) PutBucketOwnershipControlsRequest(arg0 *s3.PutBucketOwnershipControlsInput) (*request.Request, *s3.PutBucketOwnershipControlsOutput) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "PutBucketOwnershipControlsRequest", arg0) @@ -3877,13 +4077,13 @@ func (m *MockS3API) PutBucketOwnershipControlsRequest(arg0 *s3.PutBucketOwnershi return ret0, ret1 } -// PutBucketOwnershipControlsRequest indicates an expected call of PutBucketOwnershipControlsRequest +// PutBucketOwnershipControlsRequest indicates an expected call of PutBucketOwnershipControlsRequest. func (mr *MockS3APIMockRecorder) PutBucketOwnershipControlsRequest(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PutBucketOwnershipControlsRequest", reflect.TypeOf((*MockS3API)(nil).PutBucketOwnershipControlsRequest), arg0) } -// PutBucketOwnershipControlsWithContext mocks base method +// PutBucketOwnershipControlsWithContext mocks base method. func (m *MockS3API) PutBucketOwnershipControlsWithContext(arg0 context.Context, arg1 *s3.PutBucketOwnershipControlsInput, arg2 ...request.Option) (*s3.PutBucketOwnershipControlsOutput, error) { m.ctrl.T.Helper() varargs := []interface{}{arg0, arg1} @@ -3896,14 +4096,14 @@ func (m *MockS3API) PutBucketOwnershipControlsWithContext(arg0 context.Context, return ret0, ret1 } -// PutBucketOwnershipControlsWithContext indicates an expected call of PutBucketOwnershipControlsWithContext +// PutBucketOwnershipControlsWithContext indicates an expected call of PutBucketOwnershipControlsWithContext. func (mr *MockS3APIMockRecorder) PutBucketOwnershipControlsWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{arg0, arg1}, arg2...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PutBucketOwnershipControlsWithContext", reflect.TypeOf((*MockS3API)(nil).PutBucketOwnershipControlsWithContext), varargs...) } -// PutBucketPolicy mocks base method +// PutBucketPolicy mocks base method. func (m *MockS3API) PutBucketPolicy(arg0 *s3.PutBucketPolicyInput) (*s3.PutBucketPolicyOutput, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "PutBucketPolicy", arg0) @@ -3912,13 +4112,13 @@ func (m *MockS3API) PutBucketPolicy(arg0 *s3.PutBucketPolicyInput) (*s3.PutBucke return ret0, ret1 } -// PutBucketPolicy indicates an expected call of PutBucketPolicy +// PutBucketPolicy indicates an expected call of PutBucketPolicy. func (mr *MockS3APIMockRecorder) PutBucketPolicy(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PutBucketPolicy", reflect.TypeOf((*MockS3API)(nil).PutBucketPolicy), arg0) } -// PutBucketPolicyRequest mocks base method +// PutBucketPolicyRequest mocks base method. func (m *MockS3API) PutBucketPolicyRequest(arg0 *s3.PutBucketPolicyInput) (*request.Request, *s3.PutBucketPolicyOutput) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "PutBucketPolicyRequest", arg0) @@ -3927,13 +4127,13 @@ func (m *MockS3API) PutBucketPolicyRequest(arg0 *s3.PutBucketPolicyInput) (*requ return ret0, ret1 } -// PutBucketPolicyRequest indicates an expected call of PutBucketPolicyRequest +// PutBucketPolicyRequest indicates an expected call of PutBucketPolicyRequest. func (mr *MockS3APIMockRecorder) PutBucketPolicyRequest(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PutBucketPolicyRequest", reflect.TypeOf((*MockS3API)(nil).PutBucketPolicyRequest), arg0) } -// PutBucketPolicyWithContext mocks base method +// PutBucketPolicyWithContext mocks base method. func (m *MockS3API) PutBucketPolicyWithContext(arg0 context.Context, arg1 *s3.PutBucketPolicyInput, arg2 ...request.Option) (*s3.PutBucketPolicyOutput, error) { m.ctrl.T.Helper() varargs := []interface{}{arg0, arg1} @@ -3946,14 +4146,14 @@ func (m *MockS3API) PutBucketPolicyWithContext(arg0 context.Context, arg1 *s3.Pu return ret0, ret1 } -// PutBucketPolicyWithContext indicates an expected call of PutBucketPolicyWithContext +// PutBucketPolicyWithContext indicates an expected call of PutBucketPolicyWithContext. func (mr *MockS3APIMockRecorder) PutBucketPolicyWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{arg0, arg1}, arg2...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PutBucketPolicyWithContext", reflect.TypeOf((*MockS3API)(nil).PutBucketPolicyWithContext), varargs...) } -// PutBucketReplication mocks base method +// PutBucketReplication mocks base method. func (m *MockS3API) PutBucketReplication(arg0 *s3.PutBucketReplicationInput) (*s3.PutBucketReplicationOutput, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "PutBucketReplication", arg0) @@ -3962,13 +4162,13 @@ func (m *MockS3API) PutBucketReplication(arg0 *s3.PutBucketReplicationInput) (*s return ret0, ret1 } -// PutBucketReplication indicates an expected call of PutBucketReplication +// PutBucketReplication indicates an expected call of PutBucketReplication. func (mr *MockS3APIMockRecorder) PutBucketReplication(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PutBucketReplication", reflect.TypeOf((*MockS3API)(nil).PutBucketReplication), arg0) } -// PutBucketReplicationRequest mocks base method +// PutBucketReplicationRequest mocks base method. func (m *MockS3API) PutBucketReplicationRequest(arg0 *s3.PutBucketReplicationInput) (*request.Request, *s3.PutBucketReplicationOutput) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "PutBucketReplicationRequest", arg0) @@ -3977,13 +4177,13 @@ func (m *MockS3API) PutBucketReplicationRequest(arg0 *s3.PutBucketReplicationInp return ret0, ret1 } -// PutBucketReplicationRequest indicates an expected call of PutBucketReplicationRequest +// PutBucketReplicationRequest indicates an expected call of PutBucketReplicationRequest. func (mr *MockS3APIMockRecorder) PutBucketReplicationRequest(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PutBucketReplicationRequest", reflect.TypeOf((*MockS3API)(nil).PutBucketReplicationRequest), arg0) } -// PutBucketReplicationWithContext mocks base method +// PutBucketReplicationWithContext mocks base method. func (m *MockS3API) PutBucketReplicationWithContext(arg0 context.Context, arg1 *s3.PutBucketReplicationInput, arg2 ...request.Option) (*s3.PutBucketReplicationOutput, error) { m.ctrl.T.Helper() varargs := []interface{}{arg0, arg1} @@ -3996,14 +4196,14 @@ func (m *MockS3API) PutBucketReplicationWithContext(arg0 context.Context, arg1 * return ret0, ret1 } -// PutBucketReplicationWithContext indicates an expected call of PutBucketReplicationWithContext +// PutBucketReplicationWithContext indicates an expected call of PutBucketReplicationWithContext. func (mr *MockS3APIMockRecorder) PutBucketReplicationWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{arg0, arg1}, arg2...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PutBucketReplicationWithContext", reflect.TypeOf((*MockS3API)(nil).PutBucketReplicationWithContext), varargs...) } -// PutBucketRequestPayment mocks base method +// PutBucketRequestPayment mocks base method. func (m *MockS3API) PutBucketRequestPayment(arg0 *s3.PutBucketRequestPaymentInput) (*s3.PutBucketRequestPaymentOutput, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "PutBucketRequestPayment", arg0) @@ -4012,13 +4212,13 @@ func (m *MockS3API) PutBucketRequestPayment(arg0 *s3.PutBucketRequestPaymentInpu return ret0, ret1 } -// PutBucketRequestPayment indicates an expected call of PutBucketRequestPayment +// PutBucketRequestPayment indicates an expected call of PutBucketRequestPayment. func (mr *MockS3APIMockRecorder) PutBucketRequestPayment(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PutBucketRequestPayment", reflect.TypeOf((*MockS3API)(nil).PutBucketRequestPayment), arg0) } -// PutBucketRequestPaymentRequest mocks base method +// PutBucketRequestPaymentRequest mocks base method. func (m *MockS3API) PutBucketRequestPaymentRequest(arg0 *s3.PutBucketRequestPaymentInput) (*request.Request, *s3.PutBucketRequestPaymentOutput) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "PutBucketRequestPaymentRequest", arg0) @@ -4027,13 +4227,13 @@ func (m *MockS3API) PutBucketRequestPaymentRequest(arg0 *s3.PutBucketRequestPaym return ret0, ret1 } -// PutBucketRequestPaymentRequest indicates an expected call of PutBucketRequestPaymentRequest +// PutBucketRequestPaymentRequest indicates an expected call of PutBucketRequestPaymentRequest. func (mr *MockS3APIMockRecorder) PutBucketRequestPaymentRequest(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PutBucketRequestPaymentRequest", reflect.TypeOf((*MockS3API)(nil).PutBucketRequestPaymentRequest), arg0) } -// PutBucketRequestPaymentWithContext mocks base method +// PutBucketRequestPaymentWithContext mocks base method. func (m *MockS3API) PutBucketRequestPaymentWithContext(arg0 context.Context, arg1 *s3.PutBucketRequestPaymentInput, arg2 ...request.Option) (*s3.PutBucketRequestPaymentOutput, error) { m.ctrl.T.Helper() varargs := []interface{}{arg0, arg1} @@ -4046,14 +4246,14 @@ func (m *MockS3API) PutBucketRequestPaymentWithContext(arg0 context.Context, arg return ret0, ret1 } -// PutBucketRequestPaymentWithContext indicates an expected call of PutBucketRequestPaymentWithContext +// PutBucketRequestPaymentWithContext indicates an expected call of PutBucketRequestPaymentWithContext. func (mr *MockS3APIMockRecorder) PutBucketRequestPaymentWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{arg0, arg1}, arg2...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PutBucketRequestPaymentWithContext", reflect.TypeOf((*MockS3API)(nil).PutBucketRequestPaymentWithContext), varargs...) } -// PutBucketTagging mocks base method +// PutBucketTagging mocks base method. func (m *MockS3API) PutBucketTagging(arg0 *s3.PutBucketTaggingInput) (*s3.PutBucketTaggingOutput, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "PutBucketTagging", arg0) @@ -4062,13 +4262,13 @@ func (m *MockS3API) PutBucketTagging(arg0 *s3.PutBucketTaggingInput) (*s3.PutBuc return ret0, ret1 } -// PutBucketTagging indicates an expected call of PutBucketTagging +// PutBucketTagging indicates an expected call of PutBucketTagging. func (mr *MockS3APIMockRecorder) PutBucketTagging(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PutBucketTagging", reflect.TypeOf((*MockS3API)(nil).PutBucketTagging), arg0) } -// PutBucketTaggingRequest mocks base method +// PutBucketTaggingRequest mocks base method. func (m *MockS3API) PutBucketTaggingRequest(arg0 *s3.PutBucketTaggingInput) (*request.Request, *s3.PutBucketTaggingOutput) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "PutBucketTaggingRequest", arg0) @@ -4077,13 +4277,13 @@ func (m *MockS3API) PutBucketTaggingRequest(arg0 *s3.PutBucketTaggingInput) (*re return ret0, ret1 } -// PutBucketTaggingRequest indicates an expected call of PutBucketTaggingRequest +// PutBucketTaggingRequest indicates an expected call of PutBucketTaggingRequest. func (mr *MockS3APIMockRecorder) PutBucketTaggingRequest(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PutBucketTaggingRequest", reflect.TypeOf((*MockS3API)(nil).PutBucketTaggingRequest), arg0) } -// PutBucketTaggingWithContext mocks base method +// PutBucketTaggingWithContext mocks base method. func (m *MockS3API) PutBucketTaggingWithContext(arg0 context.Context, arg1 *s3.PutBucketTaggingInput, arg2 ...request.Option) (*s3.PutBucketTaggingOutput, error) { m.ctrl.T.Helper() varargs := []interface{}{arg0, arg1} @@ -4096,14 +4296,14 @@ func (m *MockS3API) PutBucketTaggingWithContext(arg0 context.Context, arg1 *s3.P return ret0, ret1 } -// PutBucketTaggingWithContext indicates an expected call of PutBucketTaggingWithContext +// PutBucketTaggingWithContext indicates an expected call of PutBucketTaggingWithContext. func (mr *MockS3APIMockRecorder) PutBucketTaggingWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{arg0, arg1}, arg2...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PutBucketTaggingWithContext", reflect.TypeOf((*MockS3API)(nil).PutBucketTaggingWithContext), varargs...) } -// PutBucketVersioning mocks base method +// PutBucketVersioning mocks base method. func (m *MockS3API) PutBucketVersioning(arg0 *s3.PutBucketVersioningInput) (*s3.PutBucketVersioningOutput, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "PutBucketVersioning", arg0) @@ -4112,13 +4312,13 @@ func (m *MockS3API) PutBucketVersioning(arg0 *s3.PutBucketVersioningInput) (*s3. return ret0, ret1 } -// PutBucketVersioning indicates an expected call of PutBucketVersioning +// PutBucketVersioning indicates an expected call of PutBucketVersioning. func (mr *MockS3APIMockRecorder) PutBucketVersioning(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PutBucketVersioning", reflect.TypeOf((*MockS3API)(nil).PutBucketVersioning), arg0) } -// PutBucketVersioningRequest mocks base method +// PutBucketVersioningRequest mocks base method. func (m *MockS3API) PutBucketVersioningRequest(arg0 *s3.PutBucketVersioningInput) (*request.Request, *s3.PutBucketVersioningOutput) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "PutBucketVersioningRequest", arg0) @@ -4127,13 +4327,13 @@ func (m *MockS3API) PutBucketVersioningRequest(arg0 *s3.PutBucketVersioningInput return ret0, ret1 } -// PutBucketVersioningRequest indicates an expected call of PutBucketVersioningRequest +// PutBucketVersioningRequest indicates an expected call of PutBucketVersioningRequest. func (mr *MockS3APIMockRecorder) PutBucketVersioningRequest(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PutBucketVersioningRequest", reflect.TypeOf((*MockS3API)(nil).PutBucketVersioningRequest), arg0) } -// PutBucketVersioningWithContext mocks base method +// PutBucketVersioningWithContext mocks base method. func (m *MockS3API) PutBucketVersioningWithContext(arg0 context.Context, arg1 *s3.PutBucketVersioningInput, arg2 ...request.Option) (*s3.PutBucketVersioningOutput, error) { m.ctrl.T.Helper() varargs := []interface{}{arg0, arg1} @@ -4146,14 +4346,14 @@ func (m *MockS3API) PutBucketVersioningWithContext(arg0 context.Context, arg1 *s return ret0, ret1 } -// PutBucketVersioningWithContext indicates an expected call of PutBucketVersioningWithContext +// PutBucketVersioningWithContext indicates an expected call of PutBucketVersioningWithContext. func (mr *MockS3APIMockRecorder) PutBucketVersioningWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{arg0, arg1}, arg2...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PutBucketVersioningWithContext", reflect.TypeOf((*MockS3API)(nil).PutBucketVersioningWithContext), varargs...) } -// PutBucketWebsite mocks base method +// PutBucketWebsite mocks base method. func (m *MockS3API) PutBucketWebsite(arg0 *s3.PutBucketWebsiteInput) (*s3.PutBucketWebsiteOutput, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "PutBucketWebsite", arg0) @@ -4162,13 +4362,13 @@ func (m *MockS3API) PutBucketWebsite(arg0 *s3.PutBucketWebsiteInput) (*s3.PutBuc return ret0, ret1 } -// PutBucketWebsite indicates an expected call of PutBucketWebsite +// PutBucketWebsite indicates an expected call of PutBucketWebsite. func (mr *MockS3APIMockRecorder) PutBucketWebsite(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PutBucketWebsite", reflect.TypeOf((*MockS3API)(nil).PutBucketWebsite), arg0) } -// PutBucketWebsiteRequest mocks base method +// PutBucketWebsiteRequest mocks base method. func (m *MockS3API) PutBucketWebsiteRequest(arg0 *s3.PutBucketWebsiteInput) (*request.Request, *s3.PutBucketWebsiteOutput) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "PutBucketWebsiteRequest", arg0) @@ -4177,13 +4377,13 @@ func (m *MockS3API) PutBucketWebsiteRequest(arg0 *s3.PutBucketWebsiteInput) (*re return ret0, ret1 } -// PutBucketWebsiteRequest indicates an expected call of PutBucketWebsiteRequest +// PutBucketWebsiteRequest indicates an expected call of PutBucketWebsiteRequest. func (mr *MockS3APIMockRecorder) PutBucketWebsiteRequest(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PutBucketWebsiteRequest", reflect.TypeOf((*MockS3API)(nil).PutBucketWebsiteRequest), arg0) } -// PutBucketWebsiteWithContext mocks base method +// PutBucketWebsiteWithContext mocks base method. func (m *MockS3API) PutBucketWebsiteWithContext(arg0 context.Context, arg1 *s3.PutBucketWebsiteInput, arg2 ...request.Option) (*s3.PutBucketWebsiteOutput, error) { m.ctrl.T.Helper() varargs := []interface{}{arg0, arg1} @@ -4196,14 +4396,14 @@ func (m *MockS3API) PutBucketWebsiteWithContext(arg0 context.Context, arg1 *s3.P return ret0, ret1 } -// PutBucketWebsiteWithContext indicates an expected call of PutBucketWebsiteWithContext +// PutBucketWebsiteWithContext indicates an expected call of PutBucketWebsiteWithContext. func (mr *MockS3APIMockRecorder) PutBucketWebsiteWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{arg0, arg1}, arg2...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PutBucketWebsiteWithContext", reflect.TypeOf((*MockS3API)(nil).PutBucketWebsiteWithContext), varargs...) } -// PutObject mocks base method +// PutObject mocks base method. func (m *MockS3API) PutObject(arg0 *s3.PutObjectInput) (*s3.PutObjectOutput, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "PutObject", arg0) @@ -4212,13 +4412,13 @@ func (m *MockS3API) PutObject(arg0 *s3.PutObjectInput) (*s3.PutObjectOutput, err return ret0, ret1 } -// PutObject indicates an expected call of PutObject +// PutObject indicates an expected call of PutObject. func (mr *MockS3APIMockRecorder) PutObject(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PutObject", reflect.TypeOf((*MockS3API)(nil).PutObject), arg0) } -// PutObjectAcl mocks base method +// PutObjectAcl mocks base method. func (m *MockS3API) PutObjectAcl(arg0 *s3.PutObjectAclInput) (*s3.PutObjectAclOutput, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "PutObjectAcl", arg0) @@ -4227,13 +4427,13 @@ func (m *MockS3API) PutObjectAcl(arg0 *s3.PutObjectAclInput) (*s3.PutObjectAclOu return ret0, ret1 } -// PutObjectAcl indicates an expected call of PutObjectAcl +// PutObjectAcl indicates an expected call of PutObjectAcl. func (mr *MockS3APIMockRecorder) PutObjectAcl(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PutObjectAcl", reflect.TypeOf((*MockS3API)(nil).PutObjectAcl), arg0) } -// PutObjectAclRequest mocks base method +// PutObjectAclRequest mocks base method. func (m *MockS3API) PutObjectAclRequest(arg0 *s3.PutObjectAclInput) (*request.Request, *s3.PutObjectAclOutput) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "PutObjectAclRequest", arg0) @@ -4242,13 +4442,13 @@ func (m *MockS3API) PutObjectAclRequest(arg0 *s3.PutObjectAclInput) (*request.Re return ret0, ret1 } -// PutObjectAclRequest indicates an expected call of PutObjectAclRequest +// PutObjectAclRequest indicates an expected call of PutObjectAclRequest. func (mr *MockS3APIMockRecorder) PutObjectAclRequest(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PutObjectAclRequest", reflect.TypeOf((*MockS3API)(nil).PutObjectAclRequest), arg0) } -// PutObjectAclWithContext mocks base method +// PutObjectAclWithContext mocks base method. func (m *MockS3API) PutObjectAclWithContext(arg0 context.Context, arg1 *s3.PutObjectAclInput, arg2 ...request.Option) (*s3.PutObjectAclOutput, error) { m.ctrl.T.Helper() varargs := []interface{}{arg0, arg1} @@ -4261,14 +4461,14 @@ func (m *MockS3API) PutObjectAclWithContext(arg0 context.Context, arg1 *s3.PutOb return ret0, ret1 } -// PutObjectAclWithContext indicates an expected call of PutObjectAclWithContext +// PutObjectAclWithContext indicates an expected call of PutObjectAclWithContext. func (mr *MockS3APIMockRecorder) PutObjectAclWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{arg0, arg1}, arg2...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PutObjectAclWithContext", reflect.TypeOf((*MockS3API)(nil).PutObjectAclWithContext), varargs...) } -// PutObjectLegalHold mocks base method +// PutObjectLegalHold mocks base method. func (m *MockS3API) PutObjectLegalHold(arg0 *s3.PutObjectLegalHoldInput) (*s3.PutObjectLegalHoldOutput, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "PutObjectLegalHold", arg0) @@ -4277,13 +4477,13 @@ func (m *MockS3API) PutObjectLegalHold(arg0 *s3.PutObjectLegalHoldInput) (*s3.Pu return ret0, ret1 } -// PutObjectLegalHold indicates an expected call of PutObjectLegalHold +// PutObjectLegalHold indicates an expected call of PutObjectLegalHold. func (mr *MockS3APIMockRecorder) PutObjectLegalHold(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PutObjectLegalHold", reflect.TypeOf((*MockS3API)(nil).PutObjectLegalHold), arg0) } -// PutObjectLegalHoldRequest mocks base method +// PutObjectLegalHoldRequest mocks base method. func (m *MockS3API) PutObjectLegalHoldRequest(arg0 *s3.PutObjectLegalHoldInput) (*request.Request, *s3.PutObjectLegalHoldOutput) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "PutObjectLegalHoldRequest", arg0) @@ -4292,13 +4492,13 @@ func (m *MockS3API) PutObjectLegalHoldRequest(arg0 *s3.PutObjectLegalHoldInput) return ret0, ret1 } -// PutObjectLegalHoldRequest indicates an expected call of PutObjectLegalHoldRequest +// PutObjectLegalHoldRequest indicates an expected call of PutObjectLegalHoldRequest. func (mr *MockS3APIMockRecorder) PutObjectLegalHoldRequest(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PutObjectLegalHoldRequest", reflect.TypeOf((*MockS3API)(nil).PutObjectLegalHoldRequest), arg0) } -// PutObjectLegalHoldWithContext mocks base method +// PutObjectLegalHoldWithContext mocks base method. func (m *MockS3API) PutObjectLegalHoldWithContext(arg0 context.Context, arg1 *s3.PutObjectLegalHoldInput, arg2 ...request.Option) (*s3.PutObjectLegalHoldOutput, error) { m.ctrl.T.Helper() varargs := []interface{}{arg0, arg1} @@ -4311,14 +4511,14 @@ func (m *MockS3API) PutObjectLegalHoldWithContext(arg0 context.Context, arg1 *s3 return ret0, ret1 } -// PutObjectLegalHoldWithContext indicates an expected call of PutObjectLegalHoldWithContext +// PutObjectLegalHoldWithContext indicates an expected call of PutObjectLegalHoldWithContext. func (mr *MockS3APIMockRecorder) PutObjectLegalHoldWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{arg0, arg1}, arg2...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PutObjectLegalHoldWithContext", reflect.TypeOf((*MockS3API)(nil).PutObjectLegalHoldWithContext), varargs...) } -// PutObjectLockConfiguration mocks base method +// PutObjectLockConfiguration mocks base method. func (m *MockS3API) PutObjectLockConfiguration(arg0 *s3.PutObjectLockConfigurationInput) (*s3.PutObjectLockConfigurationOutput, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "PutObjectLockConfiguration", arg0) @@ -4327,13 +4527,13 @@ func (m *MockS3API) PutObjectLockConfiguration(arg0 *s3.PutObjectLockConfigurati return ret0, ret1 } -// PutObjectLockConfiguration indicates an expected call of PutObjectLockConfiguration +// PutObjectLockConfiguration indicates an expected call of PutObjectLockConfiguration. func (mr *MockS3APIMockRecorder) PutObjectLockConfiguration(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PutObjectLockConfiguration", reflect.TypeOf((*MockS3API)(nil).PutObjectLockConfiguration), arg0) } -// PutObjectLockConfigurationRequest mocks base method +// PutObjectLockConfigurationRequest mocks base method. func (m *MockS3API) PutObjectLockConfigurationRequest(arg0 *s3.PutObjectLockConfigurationInput) (*request.Request, *s3.PutObjectLockConfigurationOutput) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "PutObjectLockConfigurationRequest", arg0) @@ -4342,13 +4542,13 @@ func (m *MockS3API) PutObjectLockConfigurationRequest(arg0 *s3.PutObjectLockConf return ret0, ret1 } -// PutObjectLockConfigurationRequest indicates an expected call of PutObjectLockConfigurationRequest +// PutObjectLockConfigurationRequest indicates an expected call of PutObjectLockConfigurationRequest. func (mr *MockS3APIMockRecorder) PutObjectLockConfigurationRequest(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PutObjectLockConfigurationRequest", reflect.TypeOf((*MockS3API)(nil).PutObjectLockConfigurationRequest), arg0) } -// PutObjectLockConfigurationWithContext mocks base method +// PutObjectLockConfigurationWithContext mocks base method. func (m *MockS3API) PutObjectLockConfigurationWithContext(arg0 context.Context, arg1 *s3.PutObjectLockConfigurationInput, arg2 ...request.Option) (*s3.PutObjectLockConfigurationOutput, error) { m.ctrl.T.Helper() varargs := []interface{}{arg0, arg1} @@ -4361,14 +4561,14 @@ func (m *MockS3API) PutObjectLockConfigurationWithContext(arg0 context.Context, return ret0, ret1 } -// PutObjectLockConfigurationWithContext indicates an expected call of PutObjectLockConfigurationWithContext +// PutObjectLockConfigurationWithContext indicates an expected call of PutObjectLockConfigurationWithContext. func (mr *MockS3APIMockRecorder) PutObjectLockConfigurationWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{arg0, arg1}, arg2...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PutObjectLockConfigurationWithContext", reflect.TypeOf((*MockS3API)(nil).PutObjectLockConfigurationWithContext), varargs...) } -// PutObjectRequest mocks base method +// PutObjectRequest mocks base method. func (m *MockS3API) PutObjectRequest(arg0 *s3.PutObjectInput) (*request.Request, *s3.PutObjectOutput) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "PutObjectRequest", arg0) @@ -4377,13 +4577,13 @@ func (m *MockS3API) PutObjectRequest(arg0 *s3.PutObjectInput) (*request.Request, return ret0, ret1 } -// PutObjectRequest indicates an expected call of PutObjectRequest +// PutObjectRequest indicates an expected call of PutObjectRequest. func (mr *MockS3APIMockRecorder) PutObjectRequest(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PutObjectRequest", reflect.TypeOf((*MockS3API)(nil).PutObjectRequest), arg0) } -// PutObjectRetention mocks base method +// PutObjectRetention mocks base method. func (m *MockS3API) PutObjectRetention(arg0 *s3.PutObjectRetentionInput) (*s3.PutObjectRetentionOutput, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "PutObjectRetention", arg0) @@ -4392,13 +4592,13 @@ func (m *MockS3API) PutObjectRetention(arg0 *s3.PutObjectRetentionInput) (*s3.Pu return ret0, ret1 } -// PutObjectRetention indicates an expected call of PutObjectRetention +// PutObjectRetention indicates an expected call of PutObjectRetention. func (mr *MockS3APIMockRecorder) PutObjectRetention(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PutObjectRetention", reflect.TypeOf((*MockS3API)(nil).PutObjectRetention), arg0) } -// PutObjectRetentionRequest mocks base method +// PutObjectRetentionRequest mocks base method. func (m *MockS3API) PutObjectRetentionRequest(arg0 *s3.PutObjectRetentionInput) (*request.Request, *s3.PutObjectRetentionOutput) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "PutObjectRetentionRequest", arg0) @@ -4407,13 +4607,13 @@ func (m *MockS3API) PutObjectRetentionRequest(arg0 *s3.PutObjectRetentionInput) return ret0, ret1 } -// PutObjectRetentionRequest indicates an expected call of PutObjectRetentionRequest +// PutObjectRetentionRequest indicates an expected call of PutObjectRetentionRequest. func (mr *MockS3APIMockRecorder) PutObjectRetentionRequest(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PutObjectRetentionRequest", reflect.TypeOf((*MockS3API)(nil).PutObjectRetentionRequest), arg0) } -// PutObjectRetentionWithContext mocks base method +// PutObjectRetentionWithContext mocks base method. func (m *MockS3API) PutObjectRetentionWithContext(arg0 context.Context, arg1 *s3.PutObjectRetentionInput, arg2 ...request.Option) (*s3.PutObjectRetentionOutput, error) { m.ctrl.T.Helper() varargs := []interface{}{arg0, arg1} @@ -4426,14 +4626,14 @@ func (m *MockS3API) PutObjectRetentionWithContext(arg0 context.Context, arg1 *s3 return ret0, ret1 } -// PutObjectRetentionWithContext indicates an expected call of PutObjectRetentionWithContext +// PutObjectRetentionWithContext indicates an expected call of PutObjectRetentionWithContext. func (mr *MockS3APIMockRecorder) PutObjectRetentionWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{arg0, arg1}, arg2...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PutObjectRetentionWithContext", reflect.TypeOf((*MockS3API)(nil).PutObjectRetentionWithContext), varargs...) } -// PutObjectTagging mocks base method +// PutObjectTagging mocks base method. func (m *MockS3API) PutObjectTagging(arg0 *s3.PutObjectTaggingInput) (*s3.PutObjectTaggingOutput, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "PutObjectTagging", arg0) @@ -4442,13 +4642,13 @@ func (m *MockS3API) PutObjectTagging(arg0 *s3.PutObjectTaggingInput) (*s3.PutObj return ret0, ret1 } -// PutObjectTagging indicates an expected call of PutObjectTagging +// PutObjectTagging indicates an expected call of PutObjectTagging. func (mr *MockS3APIMockRecorder) PutObjectTagging(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PutObjectTagging", reflect.TypeOf((*MockS3API)(nil).PutObjectTagging), arg0) } -// PutObjectTaggingRequest mocks base method +// PutObjectTaggingRequest mocks base method. func (m *MockS3API) PutObjectTaggingRequest(arg0 *s3.PutObjectTaggingInput) (*request.Request, *s3.PutObjectTaggingOutput) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "PutObjectTaggingRequest", arg0) @@ -4457,13 +4657,13 @@ func (m *MockS3API) PutObjectTaggingRequest(arg0 *s3.PutObjectTaggingInput) (*re return ret0, ret1 } -// PutObjectTaggingRequest indicates an expected call of PutObjectTaggingRequest +// PutObjectTaggingRequest indicates an expected call of PutObjectTaggingRequest. func (mr *MockS3APIMockRecorder) PutObjectTaggingRequest(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PutObjectTaggingRequest", reflect.TypeOf((*MockS3API)(nil).PutObjectTaggingRequest), arg0) } -// PutObjectTaggingWithContext mocks base method +// PutObjectTaggingWithContext mocks base method. func (m *MockS3API) PutObjectTaggingWithContext(arg0 context.Context, arg1 *s3.PutObjectTaggingInput, arg2 ...request.Option) (*s3.PutObjectTaggingOutput, error) { m.ctrl.T.Helper() varargs := []interface{}{arg0, arg1} @@ -4476,14 +4676,14 @@ func (m *MockS3API) PutObjectTaggingWithContext(arg0 context.Context, arg1 *s3.P return ret0, ret1 } -// PutObjectTaggingWithContext indicates an expected call of PutObjectTaggingWithContext +// PutObjectTaggingWithContext indicates an expected call of PutObjectTaggingWithContext. func (mr *MockS3APIMockRecorder) PutObjectTaggingWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{arg0, arg1}, arg2...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PutObjectTaggingWithContext", reflect.TypeOf((*MockS3API)(nil).PutObjectTaggingWithContext), varargs...) } -// PutObjectWithContext mocks base method +// PutObjectWithContext mocks base method. func (m *MockS3API) PutObjectWithContext(arg0 context.Context, arg1 *s3.PutObjectInput, arg2 ...request.Option) (*s3.PutObjectOutput, error) { m.ctrl.T.Helper() varargs := []interface{}{arg0, arg1} @@ -4496,14 +4696,14 @@ func (m *MockS3API) PutObjectWithContext(arg0 context.Context, arg1 *s3.PutObjec return ret0, ret1 } -// PutObjectWithContext indicates an expected call of PutObjectWithContext +// PutObjectWithContext indicates an expected call of PutObjectWithContext. func (mr *MockS3APIMockRecorder) PutObjectWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{arg0, arg1}, arg2...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PutObjectWithContext", reflect.TypeOf((*MockS3API)(nil).PutObjectWithContext), varargs...) } -// PutPublicAccessBlock mocks base method +// PutPublicAccessBlock mocks base method. func (m *MockS3API) PutPublicAccessBlock(arg0 *s3.PutPublicAccessBlockInput) (*s3.PutPublicAccessBlockOutput, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "PutPublicAccessBlock", arg0) @@ -4512,13 +4712,13 @@ func (m *MockS3API) PutPublicAccessBlock(arg0 *s3.PutPublicAccessBlockInput) (*s return ret0, ret1 } -// PutPublicAccessBlock indicates an expected call of PutPublicAccessBlock +// PutPublicAccessBlock indicates an expected call of PutPublicAccessBlock. func (mr *MockS3APIMockRecorder) PutPublicAccessBlock(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PutPublicAccessBlock", reflect.TypeOf((*MockS3API)(nil).PutPublicAccessBlock), arg0) } -// PutPublicAccessBlockRequest mocks base method +// PutPublicAccessBlockRequest mocks base method. func (m *MockS3API) PutPublicAccessBlockRequest(arg0 *s3.PutPublicAccessBlockInput) (*request.Request, *s3.PutPublicAccessBlockOutput) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "PutPublicAccessBlockRequest", arg0) @@ -4527,13 +4727,13 @@ func (m *MockS3API) PutPublicAccessBlockRequest(arg0 *s3.PutPublicAccessBlockInp return ret0, ret1 } -// PutPublicAccessBlockRequest indicates an expected call of PutPublicAccessBlockRequest +// PutPublicAccessBlockRequest indicates an expected call of PutPublicAccessBlockRequest. func (mr *MockS3APIMockRecorder) PutPublicAccessBlockRequest(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PutPublicAccessBlockRequest", reflect.TypeOf((*MockS3API)(nil).PutPublicAccessBlockRequest), arg0) } -// PutPublicAccessBlockWithContext mocks base method +// PutPublicAccessBlockWithContext mocks base method. func (m *MockS3API) PutPublicAccessBlockWithContext(arg0 context.Context, arg1 *s3.PutPublicAccessBlockInput, arg2 ...request.Option) (*s3.PutPublicAccessBlockOutput, error) { m.ctrl.T.Helper() varargs := []interface{}{arg0, arg1} @@ -4546,14 +4746,14 @@ func (m *MockS3API) PutPublicAccessBlockWithContext(arg0 context.Context, arg1 * return ret0, ret1 } -// PutPublicAccessBlockWithContext indicates an expected call of PutPublicAccessBlockWithContext +// PutPublicAccessBlockWithContext indicates an expected call of PutPublicAccessBlockWithContext. func (mr *MockS3APIMockRecorder) PutPublicAccessBlockWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{arg0, arg1}, arg2...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PutPublicAccessBlockWithContext", reflect.TypeOf((*MockS3API)(nil).PutPublicAccessBlockWithContext), varargs...) } -// RestoreObject mocks base method +// RestoreObject mocks base method. func (m *MockS3API) RestoreObject(arg0 *s3.RestoreObjectInput) (*s3.RestoreObjectOutput, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "RestoreObject", arg0) @@ -4562,13 +4762,13 @@ func (m *MockS3API) RestoreObject(arg0 *s3.RestoreObjectInput) (*s3.RestoreObjec return ret0, ret1 } -// RestoreObject indicates an expected call of RestoreObject +// RestoreObject indicates an expected call of RestoreObject. func (mr *MockS3APIMockRecorder) RestoreObject(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RestoreObject", reflect.TypeOf((*MockS3API)(nil).RestoreObject), arg0) } -// RestoreObjectRequest mocks base method +// RestoreObjectRequest mocks base method. func (m *MockS3API) RestoreObjectRequest(arg0 *s3.RestoreObjectInput) (*request.Request, *s3.RestoreObjectOutput) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "RestoreObjectRequest", arg0) @@ -4577,13 +4777,13 @@ func (m *MockS3API) RestoreObjectRequest(arg0 *s3.RestoreObjectInput) (*request. return ret0, ret1 } -// RestoreObjectRequest indicates an expected call of RestoreObjectRequest +// RestoreObjectRequest indicates an expected call of RestoreObjectRequest. func (mr *MockS3APIMockRecorder) RestoreObjectRequest(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RestoreObjectRequest", reflect.TypeOf((*MockS3API)(nil).RestoreObjectRequest), arg0) } -// RestoreObjectWithContext mocks base method +// RestoreObjectWithContext mocks base method. func (m *MockS3API) RestoreObjectWithContext(arg0 context.Context, arg1 *s3.RestoreObjectInput, arg2 ...request.Option) (*s3.RestoreObjectOutput, error) { m.ctrl.T.Helper() varargs := []interface{}{arg0, arg1} @@ -4596,14 +4796,14 @@ func (m *MockS3API) RestoreObjectWithContext(arg0 context.Context, arg1 *s3.Rest return ret0, ret1 } -// RestoreObjectWithContext indicates an expected call of RestoreObjectWithContext +// RestoreObjectWithContext indicates an expected call of RestoreObjectWithContext. func (mr *MockS3APIMockRecorder) RestoreObjectWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{arg0, arg1}, arg2...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RestoreObjectWithContext", reflect.TypeOf((*MockS3API)(nil).RestoreObjectWithContext), varargs...) } -// SelectObjectContent mocks base method +// SelectObjectContent mocks base method. func (m *MockS3API) SelectObjectContent(arg0 *s3.SelectObjectContentInput) (*s3.SelectObjectContentOutput, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "SelectObjectContent", arg0) @@ -4612,13 +4812,13 @@ func (m *MockS3API) SelectObjectContent(arg0 *s3.SelectObjectContentInput) (*s3. return ret0, ret1 } -// SelectObjectContent indicates an expected call of SelectObjectContent +// SelectObjectContent indicates an expected call of SelectObjectContent. func (mr *MockS3APIMockRecorder) SelectObjectContent(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SelectObjectContent", reflect.TypeOf((*MockS3API)(nil).SelectObjectContent), arg0) } -// SelectObjectContentRequest mocks base method +// SelectObjectContentRequest mocks base method. func (m *MockS3API) SelectObjectContentRequest(arg0 *s3.SelectObjectContentInput) (*request.Request, *s3.SelectObjectContentOutput) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "SelectObjectContentRequest", arg0) @@ -4627,13 +4827,13 @@ func (m *MockS3API) SelectObjectContentRequest(arg0 *s3.SelectObjectContentInput return ret0, ret1 } -// SelectObjectContentRequest indicates an expected call of SelectObjectContentRequest +// SelectObjectContentRequest indicates an expected call of SelectObjectContentRequest. func (mr *MockS3APIMockRecorder) SelectObjectContentRequest(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SelectObjectContentRequest", reflect.TypeOf((*MockS3API)(nil).SelectObjectContentRequest), arg0) } -// SelectObjectContentWithContext mocks base method +// SelectObjectContentWithContext mocks base method. func (m *MockS3API) SelectObjectContentWithContext(arg0 context.Context, arg1 *s3.SelectObjectContentInput, arg2 ...request.Option) (*s3.SelectObjectContentOutput, error) { m.ctrl.T.Helper() varargs := []interface{}{arg0, arg1} @@ -4646,14 +4846,14 @@ func (m *MockS3API) SelectObjectContentWithContext(arg0 context.Context, arg1 *s return ret0, ret1 } -// SelectObjectContentWithContext indicates an expected call of SelectObjectContentWithContext +// SelectObjectContentWithContext indicates an expected call of SelectObjectContentWithContext. func (mr *MockS3APIMockRecorder) SelectObjectContentWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{arg0, arg1}, arg2...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SelectObjectContentWithContext", reflect.TypeOf((*MockS3API)(nil).SelectObjectContentWithContext), varargs...) } -// UploadPart mocks base method +// UploadPart mocks base method. func (m *MockS3API) UploadPart(arg0 *s3.UploadPartInput) (*s3.UploadPartOutput, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "UploadPart", arg0) @@ -4662,13 +4862,13 @@ func (m *MockS3API) UploadPart(arg0 *s3.UploadPartInput) (*s3.UploadPartOutput, return ret0, ret1 } -// UploadPart indicates an expected call of UploadPart +// UploadPart indicates an expected call of UploadPart. func (mr *MockS3APIMockRecorder) UploadPart(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UploadPart", reflect.TypeOf((*MockS3API)(nil).UploadPart), arg0) } -// UploadPartCopy mocks base method +// UploadPartCopy mocks base method. func (m *MockS3API) UploadPartCopy(arg0 *s3.UploadPartCopyInput) (*s3.UploadPartCopyOutput, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "UploadPartCopy", arg0) @@ -4677,13 +4877,13 @@ func (m *MockS3API) UploadPartCopy(arg0 *s3.UploadPartCopyInput) (*s3.UploadPart return ret0, ret1 } -// UploadPartCopy indicates an expected call of UploadPartCopy +// UploadPartCopy indicates an expected call of UploadPartCopy. func (mr *MockS3APIMockRecorder) UploadPartCopy(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UploadPartCopy", reflect.TypeOf((*MockS3API)(nil).UploadPartCopy), arg0) } -// UploadPartCopyRequest mocks base method +// UploadPartCopyRequest mocks base method. func (m *MockS3API) UploadPartCopyRequest(arg0 *s3.UploadPartCopyInput) (*request.Request, *s3.UploadPartCopyOutput) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "UploadPartCopyRequest", arg0) @@ -4692,13 +4892,13 @@ func (m *MockS3API) UploadPartCopyRequest(arg0 *s3.UploadPartCopyInput) (*reques return ret0, ret1 } -// UploadPartCopyRequest indicates an expected call of UploadPartCopyRequest +// UploadPartCopyRequest indicates an expected call of UploadPartCopyRequest. func (mr *MockS3APIMockRecorder) UploadPartCopyRequest(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UploadPartCopyRequest", reflect.TypeOf((*MockS3API)(nil).UploadPartCopyRequest), arg0) } -// UploadPartCopyWithContext mocks base method +// UploadPartCopyWithContext mocks base method. func (m *MockS3API) UploadPartCopyWithContext(arg0 context.Context, arg1 *s3.UploadPartCopyInput, arg2 ...request.Option) (*s3.UploadPartCopyOutput, error) { m.ctrl.T.Helper() varargs := []interface{}{arg0, arg1} @@ -4711,14 +4911,14 @@ func (m *MockS3API) UploadPartCopyWithContext(arg0 context.Context, arg1 *s3.Upl return ret0, ret1 } -// UploadPartCopyWithContext indicates an expected call of UploadPartCopyWithContext +// UploadPartCopyWithContext indicates an expected call of UploadPartCopyWithContext. func (mr *MockS3APIMockRecorder) UploadPartCopyWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{arg0, arg1}, arg2...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UploadPartCopyWithContext", reflect.TypeOf((*MockS3API)(nil).UploadPartCopyWithContext), varargs...) } -// UploadPartRequest mocks base method +// UploadPartRequest mocks base method. func (m *MockS3API) UploadPartRequest(arg0 *s3.UploadPartInput) (*request.Request, *s3.UploadPartOutput) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "UploadPartRequest", arg0) @@ -4727,13 +4927,13 @@ func (m *MockS3API) UploadPartRequest(arg0 *s3.UploadPartInput) (*request.Reques return ret0, ret1 } -// UploadPartRequest indicates an expected call of UploadPartRequest +// UploadPartRequest indicates an expected call of UploadPartRequest. func (mr *MockS3APIMockRecorder) UploadPartRequest(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UploadPartRequest", reflect.TypeOf((*MockS3API)(nil).UploadPartRequest), arg0) } -// UploadPartWithContext mocks base method +// UploadPartWithContext mocks base method. func (m *MockS3API) UploadPartWithContext(arg0 context.Context, arg1 *s3.UploadPartInput, arg2 ...request.Option) (*s3.UploadPartOutput, error) { m.ctrl.T.Helper() varargs := []interface{}{arg0, arg1} @@ -4746,14 +4946,14 @@ func (m *MockS3API) UploadPartWithContext(arg0 context.Context, arg1 *s3.UploadP return ret0, ret1 } -// UploadPartWithContext indicates an expected call of UploadPartWithContext +// UploadPartWithContext indicates an expected call of UploadPartWithContext. func (mr *MockS3APIMockRecorder) UploadPartWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{arg0, arg1}, arg2...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UploadPartWithContext", reflect.TypeOf((*MockS3API)(nil).UploadPartWithContext), varargs...) } -// WaitUntilBucketExists mocks base method +// WaitUntilBucketExists mocks base method. func (m *MockS3API) WaitUntilBucketExists(arg0 *s3.HeadBucketInput) error { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "WaitUntilBucketExists", arg0) @@ -4761,13 +4961,13 @@ func (m *MockS3API) WaitUntilBucketExists(arg0 *s3.HeadBucketInput) error { return ret0 } -// WaitUntilBucketExists indicates an expected call of WaitUntilBucketExists +// WaitUntilBucketExists indicates an expected call of WaitUntilBucketExists. func (mr *MockS3APIMockRecorder) WaitUntilBucketExists(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "WaitUntilBucketExists", reflect.TypeOf((*MockS3API)(nil).WaitUntilBucketExists), arg0) } -// WaitUntilBucketExistsWithContext mocks base method +// WaitUntilBucketExistsWithContext mocks base method. func (m *MockS3API) WaitUntilBucketExistsWithContext(arg0 context.Context, arg1 *s3.HeadBucketInput, arg2 ...request.WaiterOption) error { m.ctrl.T.Helper() varargs := []interface{}{arg0, arg1} @@ -4779,14 +4979,14 @@ func (m *MockS3API) WaitUntilBucketExistsWithContext(arg0 context.Context, arg1 return ret0 } -// WaitUntilBucketExistsWithContext indicates an expected call of WaitUntilBucketExistsWithContext +// WaitUntilBucketExistsWithContext indicates an expected call of WaitUntilBucketExistsWithContext. func (mr *MockS3APIMockRecorder) WaitUntilBucketExistsWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{arg0, arg1}, arg2...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "WaitUntilBucketExistsWithContext", reflect.TypeOf((*MockS3API)(nil).WaitUntilBucketExistsWithContext), varargs...) } -// WaitUntilBucketNotExists mocks base method +// WaitUntilBucketNotExists mocks base method. func (m *MockS3API) WaitUntilBucketNotExists(arg0 *s3.HeadBucketInput) error { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "WaitUntilBucketNotExists", arg0) @@ -4794,13 +4994,13 @@ func (m *MockS3API) WaitUntilBucketNotExists(arg0 *s3.HeadBucketInput) error { return ret0 } -// WaitUntilBucketNotExists indicates an expected call of WaitUntilBucketNotExists +// WaitUntilBucketNotExists indicates an expected call of WaitUntilBucketNotExists. func (mr *MockS3APIMockRecorder) WaitUntilBucketNotExists(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "WaitUntilBucketNotExists", reflect.TypeOf((*MockS3API)(nil).WaitUntilBucketNotExists), arg0) } -// WaitUntilBucketNotExistsWithContext mocks base method +// WaitUntilBucketNotExistsWithContext mocks base method. func (m *MockS3API) WaitUntilBucketNotExistsWithContext(arg0 context.Context, arg1 *s3.HeadBucketInput, arg2 ...request.WaiterOption) error { m.ctrl.T.Helper() varargs := []interface{}{arg0, arg1} @@ -4812,14 +5012,14 @@ func (m *MockS3API) WaitUntilBucketNotExistsWithContext(arg0 context.Context, ar return ret0 } -// WaitUntilBucketNotExistsWithContext indicates an expected call of WaitUntilBucketNotExistsWithContext +// WaitUntilBucketNotExistsWithContext indicates an expected call of WaitUntilBucketNotExistsWithContext. func (mr *MockS3APIMockRecorder) WaitUntilBucketNotExistsWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{arg0, arg1}, arg2...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "WaitUntilBucketNotExistsWithContext", reflect.TypeOf((*MockS3API)(nil).WaitUntilBucketNotExistsWithContext), varargs...) } -// WaitUntilObjectExists mocks base method +// WaitUntilObjectExists mocks base method. func (m *MockS3API) WaitUntilObjectExists(arg0 *s3.HeadObjectInput) error { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "WaitUntilObjectExists", arg0) @@ -4827,13 +5027,13 @@ func (m *MockS3API) WaitUntilObjectExists(arg0 *s3.HeadObjectInput) error { return ret0 } -// WaitUntilObjectExists indicates an expected call of WaitUntilObjectExists +// WaitUntilObjectExists indicates an expected call of WaitUntilObjectExists. func (mr *MockS3APIMockRecorder) WaitUntilObjectExists(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "WaitUntilObjectExists", reflect.TypeOf((*MockS3API)(nil).WaitUntilObjectExists), arg0) } -// WaitUntilObjectExistsWithContext mocks base method +// WaitUntilObjectExistsWithContext mocks base method. func (m *MockS3API) WaitUntilObjectExistsWithContext(arg0 context.Context, arg1 *s3.HeadObjectInput, arg2 ...request.WaiterOption) error { m.ctrl.T.Helper() varargs := []interface{}{arg0, arg1} @@ -4845,14 +5045,14 @@ func (m *MockS3API) WaitUntilObjectExistsWithContext(arg0 context.Context, arg1 return ret0 } -// WaitUntilObjectExistsWithContext indicates an expected call of WaitUntilObjectExistsWithContext +// WaitUntilObjectExistsWithContext indicates an expected call of WaitUntilObjectExistsWithContext. func (mr *MockS3APIMockRecorder) WaitUntilObjectExistsWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{arg0, arg1}, arg2...) return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "WaitUntilObjectExistsWithContext", reflect.TypeOf((*MockS3API)(nil).WaitUntilObjectExistsWithContext), varargs...) } -// WaitUntilObjectNotExists mocks base method +// WaitUntilObjectNotExists mocks base method. func (m *MockS3API) WaitUntilObjectNotExists(arg0 *s3.HeadObjectInput) error { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "WaitUntilObjectNotExists", arg0) @@ -4860,13 +5060,13 @@ func (m *MockS3API) WaitUntilObjectNotExists(arg0 *s3.HeadObjectInput) error { return ret0 } -// WaitUntilObjectNotExists indicates an expected call of WaitUntilObjectNotExists +// WaitUntilObjectNotExists indicates an expected call of WaitUntilObjectNotExists. func (mr *MockS3APIMockRecorder) WaitUntilObjectNotExists(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "WaitUntilObjectNotExists", reflect.TypeOf((*MockS3API)(nil).WaitUntilObjectNotExists), arg0) } -// WaitUntilObjectNotExistsWithContext mocks base method +// WaitUntilObjectNotExistsWithContext mocks base method. func (m *MockS3API) WaitUntilObjectNotExistsWithContext(arg0 context.Context, arg1 *s3.HeadObjectInput, arg2 ...request.WaiterOption) error { m.ctrl.T.Helper() varargs := []interface{}{arg0, arg1} @@ -4878,7 +5078,7 @@ func (m *MockS3API) WaitUntilObjectNotExistsWithContext(arg0 context.Context, ar return ret0 } -// WaitUntilObjectNotExistsWithContext indicates an expected call of WaitUntilObjectNotExistsWithContext +// WaitUntilObjectNotExistsWithContext indicates an expected call of WaitUntilObjectNotExistsWithContext. func (mr *MockS3APIMockRecorder) WaitUntilObjectNotExistsWithContext(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{arg0, arg1}, arg2...) diff --git a/br/pkg/pdutil/BUILD.bazel b/br/pkg/pdutil/BUILD.bazel index 128b4b6b31cda..b206e06d974b5 100644 --- a/br/pkg/pdutil/BUILD.bazel +++ b/br/pkg/pdutil/BUILD.bazel @@ -35,6 +35,7 @@ go_test( "pd_serial_test.go", ], embed = [":pdutil"], + flaky = True, deps = [ "//store/pdtypes", "//testkit/testsetup", diff --git a/br/pkg/pdutil/pd.go b/br/pkg/pdutil/pd.go index 1c2d8dd6754bc..07853096c5d34 100755 --- a/br/pkg/pdutil/pd.go +++ b/br/pkg/pdutil/pd.go @@ -631,7 +631,7 @@ func (p *PdController) RemoveSchedulers(ctx context.Context) (undo UndoFunc, err } // RemoveSchedulersWithOrigin pause and remove br related schedule configs and return the origin and modified configs -func (p *PdController) RemoveSchedulersWithOrigin(ctx context.Context) (ClusterConfig, ClusterConfig, error) { +func (p *PdController) RemoveSchedulersWithOrigin(ctx context.Context) (origin ClusterConfig, modified ClusterConfig, err error) { if span := opentracing.SpanFromContext(ctx); span != nil && span.Tracer() != nil { span1 := span.Tracer().StartSpan("PdController.RemoveSchedulers", opentracing.ChildOf(span.Context())) defer span1.Finish() @@ -765,6 +765,7 @@ func (p *PdController) CreateOrUpdateRegionLabelRule(ctx context.Context, rule L return errors.Trace(lastErr) } +// DeleteRegionLabelRule deletes a region label rule. func (p *PdController) DeleteRegionLabelRule(ctx context.Context, ruleID string) error { var lastErr error for i, addr := range p.addrs { diff --git a/br/pkg/redact/BUILD.bazel b/br/pkg/redact/BUILD.bazel index 90e747acbc261..799aa8fe22736 100644 --- a/br/pkg/redact/BUILD.bazel +++ b/br/pkg/redact/BUILD.bazel @@ -11,6 +11,7 @@ go_library( go_test( name = "redact_test", srcs = ["redact_test.go"], + flaky = True, deps = [ ":redact", "@com_github_stretchr_testify//require", diff --git a/br/pkg/restore/BUILD.bazel b/br/pkg/restore/BUILD.bazel index 4f242d49de7e5..47ab1f822e13b 100644 --- a/br/pkg/restore/BUILD.bazel +++ b/br/pkg/restore/BUILD.bazel @@ -12,6 +12,7 @@ go_library( "pipeline_items.go", "range.go", "rawkv_client.go", + "search.go", "split.go", "split_client.go", "stream_metas.go", @@ -36,6 +37,7 @@ go_library( "//br/pkg/stream", "//br/pkg/summary", "//br/pkg/utils", + "//config", "//ddl/util", "//domain", "//kv", @@ -95,12 +97,14 @@ go_test( "merge_test.go", "range_test.go", "rawkv_client_test.go", + "search_test.go", "split_test.go", "stream_metas_test.go", "util_test.go", ], + embed = [":restore"], + flaky = True, deps = [ - ":restore", "//br/pkg/backup", "//br/pkg/conn", "//br/pkg/errors", diff --git a/br/pkg/restore/client.go b/br/pkg/restore/client.go index e5f382233f94a..d67adb90dffe5 100644 --- a/br/pkg/restore/client.go +++ b/br/pkg/restore/client.go @@ -37,11 +37,13 @@ import ( "github.com/pingcap/tidb/br/pkg/stream" "github.com/pingcap/tidb/br/pkg/summary" "github.com/pingcap/tidb/br/pkg/utils" + "github.com/pingcap/tidb/config" ddlutil "github.com/pingcap/tidb/ddl/util" "github.com/pingcap/tidb/domain" "github.com/pingcap/tidb/kv" "github.com/pingcap/tidb/meta" "github.com/pingcap/tidb/parser/model" + "github.com/pingcap/tidb/parser/mysql" "github.com/pingcap/tidb/statistics/handle" "github.com/pingcap/tidb/store/pdtypes" "github.com/pingcap/tidb/tablecodec" @@ -147,6 +149,16 @@ type Client struct { storage storage.ExternalStorage + // if fullClusterRestore = true: + // - if there's system tables in the backup(backup data since br 5.1.0), the cluster should be a fresh cluster + // without user database or table. and system tables about privileges is restored together with user data. + // - if there no system tables in the backup(backup data from br < 5.1.0), restore all user data just like + // previous version did. + // if fullClusterRestore = false, restore all user data just like previous version did. + // fullClusterRestore = true when there is no explicit filter setting, and it's full restore or point command + // with a full backup data. + // todo: maybe change to an enum + fullClusterRestore bool // the query to insert rows into table `gc_delete_range`, lack of ts. deleteRangeQuery []string deleteRangeQueryCh chan string @@ -494,6 +506,14 @@ func (rc *Client) GetDatabase(name string) *utils.Database { return rc.databases[name] } +// HasBackedUpSysDB whether we have backed up system tables +// br backs system tables up since 5.1.0 +func (rc *Client) HasBackedUpSysDB() bool { + temporaryDB := utils.TemporaryDBName(mysql.SystemDB) + _, backedUp := rc.databases[temporaryDB.O] + return backedUp +} + // GetPlacementPolicies returns policies. func (rc *Client) GetPlacementPolicies() (*sync.Map, error) { policies := &sync.Map{} @@ -834,6 +854,101 @@ func (rc *Client) createTablesInWorkerPool(ctx context.Context, dom *domain.Doma return eg.Wait() } +// CheckTargetClusterFresh check whether the target cluster is fresh or not +// if there's no user dbs or tables, we take it as a fresh cluster, although +// user may have created some users or made other changes. +func (rc *Client) CheckTargetClusterFresh(ctx context.Context) error { + log.Info("checking whether target cluster is fresh") + userDBs := GetExistedUserDBs(rc.dom) + if len(userDBs) == 0 { + return nil + } + + const maxPrintCount = 10 + userTableOrDBNames := make([]string, 0, maxPrintCount+1) + addName := func(name string) bool { + if len(userTableOrDBNames) == maxPrintCount { + userTableOrDBNames = append(userTableOrDBNames, "...") + return false + } + userTableOrDBNames = append(userTableOrDBNames, name) + return true + } +outer: + for _, db := range userDBs { + if !addName(db.Name.L) { + break outer + } + for _, tbl := range db.Tables { + if !addName(tbl.Name.L) { + break outer + } + } + } + log.Error("not fresh cluster", zap.Strings("user tables", userTableOrDBNames)) + return errors.Annotate(berrors.ErrRestoreNotFreshCluster, "user db/tables: "+strings.Join(userTableOrDBNames, ", ")) +} + +func (rc *Client) CheckSysTableCompatibility(dom *domain.Domain, tables []*metautil.Table) error { + log.Info("checking target cluster system table compatibility with backed up data") + privilegeTablesInBackup := make([]*metautil.Table, 0) + for _, table := range tables { + decodedSysDBName, ok := utils.GetSysDBCIStrName(table.DB.Name) + if ok && utils.IsSysDB(decodedSysDBName.L) && sysPrivilegeTableSet[table.Info.Name.L] { + privilegeTablesInBackup = append(privilegeTablesInBackup, table) + } + } + sysDB := model.NewCIStr(mysql.SystemDB) + for _, table := range privilegeTablesInBackup { + ti, err := rc.GetTableSchema(dom, sysDB, table.Info.Name) + if err != nil { + log.Error("missing table on target cluster", zap.Stringer("table", table.Info.Name)) + return errors.Annotate(berrors.ErrRestoreIncompatibleSys, "missed system table: "+table.Info.Name.O) + } + backupTi := table.Info + if len(ti.Columns) != len(backupTi.Columns) { + log.Error("column count mismatch", + zap.Stringer("table", table.Info.Name), + zap.Int("col in cluster", len(ti.Columns)), + zap.Int("col in backup", len(backupTi.Columns))) + return errors.Annotatef(berrors.ErrRestoreIncompatibleSys, + "column count mismatch, table: %s, col in cluster: %d, col in backup: %d", + table.Info.Name.O, len(ti.Columns), len(backupTi.Columns)) + } + backupColMap := make(map[string]*model.ColumnInfo) + for i := range backupTi.Columns { + col := backupTi.Columns[i] + backupColMap[col.Name.L] = col + } + // order can be different but type must compatible + for i := range ti.Columns { + col := ti.Columns[i] + backupCol := backupColMap[col.Name.L] + if backupCol == nil { + log.Error("missing column in backup data", + zap.Stringer("table", table.Info.Name), + zap.String("col", fmt.Sprintf("%s %s", col.Name, col.FieldType.String()))) + return errors.Annotatef(berrors.ErrRestoreIncompatibleSys, + "missing column in backup data, table: %s, col: %s %s", + table.Info.Name.O, + col.Name, col.FieldType.String()) + } + if !utils.IsTypeCompatible(backupCol.FieldType, col.FieldType) { + log.Error("incompatible column", + zap.Stringer("table", table.Info.Name), + zap.String("col in cluster", fmt.Sprintf("%s %s", col.Name, col.FieldType.String())), + zap.String("col in backup", fmt.Sprintf("%s %s", backupCol.Name, backupCol.FieldType.String()))) + return errors.Annotatef(berrors.ErrRestoreIncompatibleSys, + "incompatible column, table: %s, col in cluster: %s %s, col in backup: %s %s", + table.Info.Name.O, + col.Name, col.FieldType.String(), + backupCol.Name, backupCol.FieldType.String()) + } + } + } + return nil +} + // ExecDDLs executes the queries of the ddl jobs. func (rc *Client) ExecDDLs(ctx context.Context, ddlJobs []*model.Job) error { // Sort the ddl jobs by schema version in ascending order. @@ -1467,6 +1582,14 @@ func (rc *Client) getRuleID(tableID int64) string { return "restore-t" + strconv.FormatInt(tableID, 10) } +// IsFull returns whether this backup is full. +func (rc *Client) IsFull() bool { + failpoint.Inject("mock-incr-backup-data", func() { + failpoint.Return(false) + }) + return !rc.IsIncremental() +} + // IsIncremental returns whether this backup is incremental. func (rc *Client) IsIncremental() bool { return !(rc.backupMeta.StartVersion == rc.backupMeta.EndVersion || @@ -1842,7 +1965,7 @@ func (rc *Client) InitSchemasReplaceForDDL( }()...) } - return stream.NewSchemasReplace(dbMap, rc.currentTS, tableFilter, rc.GenGlobalID, rc.GenGlobalIDs), nil + return stream.NewSchemasReplace(dbMap, rc.currentTS, tableFilter, rc.GenGlobalID, rc.GenGlobalIDs, rc.InsertDeleteRangeForTable, rc.InsertDeleteRangeForIndex), nil } // RestoreMetaKVFiles tries to restore files about meta kv-event from stream-backup. @@ -1952,7 +2075,7 @@ func (rc *Client) RestoreMetaKVFile( } log.Debug("txn entry", zap.Uint64("key-ts", ts), zap.Int("txnKey-len", len(txnEntry.Key)), zap.Int("txnValue-len", len(txnEntry.Value)), zap.ByteString("txnKey", txnEntry.Key)) - newEntry, err := sr.RewriteKvEntry(&txnEntry, file.Cf, rc.InsertDeleteRangeForTable, rc.InsertDeleteRangeForIndex) + newEntry, err := sr.RewriteKvEntry(&txnEntry, file.Cf) if err != nil { log.Error("rewrite txn entry failed", zap.Int("klen", len(txnEntry.Key)), logutil.Key("txn-key", txnEntry.Key)) @@ -2188,6 +2311,22 @@ func (rc *Client) SaveSchemas( return nil } +// InitFullClusterRestore init fullClusterRestore and set SkipGrantTable as needed +func (rc *Client) InitFullClusterRestore(explicitFilter bool) { + rc.fullClusterRestore = !explicitFilter && rc.IsFull() + + log.Info("full cluster restore", zap.Bool("value", rc.fullClusterRestore)) + + if rc.fullClusterRestore { + // have to skip grant table, in order to NotifyUpdatePrivilege + config.GetGlobalConfig().Security.SkipGrantTable = true + } +} + +func (rc *Client) IsFullClusterRestore() bool { + return rc.fullClusterRestore +} + // MockClient create a fake client used to test. func MockClient(dbs map[string]*utils.Database) *Client { return &Client{databases: dbs} diff --git a/br/pkg/restore/client_test.go b/br/pkg/restore/client_test.go index c7374351b2d4f..64da7f2a9e579 100644 --- a/br/pkg/restore/client_test.go +++ b/br/pkg/restore/client_test.go @@ -12,12 +12,15 @@ import ( "testing" "time" + "github.com/pingcap/failpoint" "github.com/pingcap/kvproto/pkg/import_sstpb" "github.com/pingcap/kvproto/pkg/metapb" + berrors "github.com/pingcap/tidb/br/pkg/errors" "github.com/pingcap/tidb/br/pkg/gluetidb" "github.com/pingcap/tidb/br/pkg/metautil" "github.com/pingcap/tidb/br/pkg/mock" "github.com/pingcap/tidb/br/pkg/restore" + "github.com/pingcap/tidb/br/pkg/utils" "github.com/pingcap/tidb/parser/model" "github.com/pingcap/tidb/parser/mysql" "github.com/pingcap/tidb/parser/types" @@ -105,6 +108,157 @@ func TestIsOnline(t *testing.T) { require.True(t, client.IsOnline()) } +func getStartedMockedCluster(t *testing.T) *mock.Cluster { + t.Helper() + cluster, err := mock.NewCluster() + require.NoError(t, err) + err = cluster.Start() + require.NoError(t, err) + return cluster +} + +func TestCheckTargetClusterFresh(t *testing.T) { + // cannot use shared `mc`, other parallel case may change it. + cluster := getStartedMockedCluster(t) + defer cluster.Stop() + + g := gluetidb.New() + client := restore.NewRestoreClient(cluster.PDClient, nil, defaultKeepaliveCfg, false) + err := client.Init(g, cluster.Storage) + require.NoError(t, err) + + ctx := context.Background() + require.NoError(t, client.CheckTargetClusterFresh(ctx)) + + require.NoError(t, client.CreateDatabase(ctx, &model.DBInfo{Name: model.NewCIStr("user_db")})) + require.True(t, berrors.ErrRestoreNotFreshCluster.Equal(client.CheckTargetClusterFresh(ctx))) +} + +func TestCheckTargetClusterFreshWithTable(t *testing.T) { + // cannot use shared `mc`, other parallel case may change it. + cluster := getStartedMockedCluster(t) + defer cluster.Stop() + + g := gluetidb.New() + client := restore.NewRestoreClient(cluster.PDClient, nil, defaultKeepaliveCfg, false) + err := client.Init(g, cluster.Storage) + require.NoError(t, err) + + ctx := context.Background() + info, err := cluster.Domain.GetSnapshotInfoSchema(math.MaxUint64) + require.NoError(t, err) + dbSchema, isExist := info.SchemaByName(model.NewCIStr("test")) + require.True(t, isExist) + intField := types.NewFieldType(mysql.TypeLong) + intField.SetCharset("binary") + table := &metautil.Table{ + DB: dbSchema, + Info: &model.TableInfo{ + ID: int64(1), + Name: model.NewCIStr("t"), + Columns: []*model.ColumnInfo{{ + ID: 1, + Name: model.NewCIStr("id"), + FieldType: *intField, + State: model.StatePublic, + }}, + Charset: "utf8mb4", + Collate: "utf8mb4_bin", + }, + } + _, _, err = client.CreateTables(cluster.Domain, []*metautil.Table{table}, 0) + require.NoError(t, err) + + require.True(t, berrors.ErrRestoreNotFreshCluster.Equal(client.CheckTargetClusterFresh(ctx))) +} + +func TestCheckSysTableCompatibility(t *testing.T) { + cluster := mc + g := gluetidb.New() + client := restore.NewRestoreClient(cluster.PDClient, nil, defaultKeepaliveCfg, false) + err := client.Init(g, cluster.Storage) + require.NoError(t, err) + + info, err := cluster.Domain.GetSnapshotInfoSchema(math.MaxUint64) + require.NoError(t, err) + dbSchema, isExist := info.SchemaByName(model.NewCIStr(mysql.SystemDB)) + require.True(t, isExist) + tmpSysDB := dbSchema.Clone() + tmpSysDB.Name = utils.TemporaryDBName(mysql.SystemDB) + sysDB := model.NewCIStr(mysql.SystemDB) + userTI, err := client.GetTableSchema(cluster.Domain, sysDB, model.NewCIStr("user")) + require.NoError(t, err) + + // column count mismatch + mockedUserTI := userTI.Clone() + mockedUserTI.Columns = mockedUserTI.Columns[:len(mockedUserTI.Columns)-1] + err = client.CheckSysTableCompatibility(cluster.Domain, []*metautil.Table{{ + DB: tmpSysDB, + Info: mockedUserTI, + }}) + require.True(t, berrors.ErrRestoreIncompatibleSys.Equal(err)) + + // column order mismatch(success) + mockedUserTI = userTI.Clone() + mockedUserTI.Columns[4], mockedUserTI.Columns[5] = mockedUserTI.Columns[5], mockedUserTI.Columns[4] + err = client.CheckSysTableCompatibility(cluster.Domain, []*metautil.Table{{ + DB: tmpSysDB, + Info: mockedUserTI, + }}) + require.NoError(t, err) + + // missing column + mockedUserTI = userTI.Clone() + mockedUserTI.Columns[0].Name = model.NewCIStr("new-name") + err = client.CheckSysTableCompatibility(cluster.Domain, []*metautil.Table{{ + DB: tmpSysDB, + Info: mockedUserTI, + }}) + require.True(t, berrors.ErrRestoreIncompatibleSys.Equal(err)) + + // incompatible column type + mockedUserTI = userTI.Clone() + mockedUserTI.Columns[0].FieldType.SetFlen(2000) // Columns[0] is `Host` char(255) + err = client.CheckSysTableCompatibility(cluster.Domain, []*metautil.Table{{ + DB: tmpSysDB, + Info: mockedUserTI, + }}) + require.True(t, berrors.ErrRestoreIncompatibleSys.Equal(err)) + + // compatible + mockedUserTI = userTI.Clone() + err = client.CheckSysTableCompatibility(cluster.Domain, []*metautil.Table{{ + DB: tmpSysDB, + Info: mockedUserTI, + }}) + require.NoError(t, err) +} + +func TestInitFullClusterRestore(t *testing.T) { + cluster := mc + g := gluetidb.New() + client := restore.NewRestoreClient(cluster.PDClient, nil, defaultKeepaliveCfg, false) + err := client.Init(g, cluster.Storage) + require.NoError(t, err) + + // explicit filter + client.InitFullClusterRestore(true) + require.False(t, client.IsFullClusterRestore()) + + client.InitFullClusterRestore(false) + require.True(t, client.IsFullClusterRestore()) + // set it to false again + client.InitFullClusterRestore(true) + require.False(t, client.IsFullClusterRestore()) + + require.NoError(t, failpoint.Enable("github.com/pingcap/tidb/br/pkg/restore/mock-incr-backup-data", "return(true)")) + defer func() { + require.NoError(t, failpoint.Disable("github.com/pingcap/tidb/br/pkg/restore/mock-incr-backup-data")) + }() + client.InitFullClusterRestore(false) + require.False(t, client.IsFullClusterRestore()) +} + func TestPreCheckTableClusterIndex(t *testing.T) { m := mc g := gluetidb.New() diff --git a/br/pkg/restore/db.go b/br/pkg/restore/db.go index a7b29a3e90a00..1e45725f920fc 100644 --- a/br/pkg/restore/db.go +++ b/br/pkg/restore/db.go @@ -461,6 +461,8 @@ func GetExistedUserDBs(dom *domain.Domain) []*model.DBInfo { if tidbutil.IsMemOrSysDB(dbName) { continue } else if dbName == "test" && len(db.Tables) == 0 { + // tidb create test db on fresh cluster + // if it's empty we don't take it as user db continue } else { existedDatabases = append(existedDatabases, db) diff --git a/br/pkg/restore/db_test.go b/br/pkg/restore/db_test.go index a3279ddaad3d9..89ff7a9ab62a4 100644 --- a/br/pkg/restore/db_test.go +++ b/br/pkg/restore/db_test.go @@ -194,7 +194,7 @@ func TestFilterDDLJobs(t *testing.T) { metaWriter := metautil.NewMetaWriter(s.storage, metautil.MetaFileSize, false, "", &cipher) ctx := context.Background() metaWriter.StartWriteMetasAsync(ctx, metautil.AppendDDL) - err = backup.WriteBackupDDLJobs(metaWriter, s.mock.Storage, lastTS, ts) + err = backup.WriteBackupDDLJobs(metaWriter, tk.Session(), s.mock.Storage, lastTS, ts) require.NoErrorf(t, err, "Error get ddl jobs: %s", err) err = metaWriter.FinishWriteMetas(ctx, metautil.AppendDDL) require.NoErrorf(t, err, "Flush failed", err) @@ -258,7 +258,7 @@ func TestFilterDDLJobsV2(t *testing.T) { metaWriter := metautil.NewMetaWriter(s.storage, metautil.MetaFileSize, true, "", &cipher) ctx := context.Background() metaWriter.StartWriteMetasAsync(ctx, metautil.AppendDDL) - err = backup.WriteBackupDDLJobs(metaWriter, s.mock.Storage, lastTS, ts) + err = backup.WriteBackupDDLJobs(metaWriter, tk.Session(), s.mock.Storage, lastTS, ts) require.NoErrorf(t, err, "Error get ddl jobs: %s", err) err = metaWriter.FinishWriteMetas(ctx, metautil.AppendDDL) require.NoErrorf(t, err, "Flush failed", err) diff --git a/br/pkg/restore/search.go b/br/pkg/restore/search.go new file mode 100644 index 0000000000000..65078f5b6af1e --- /dev/null +++ b/br/pkg/restore/search.go @@ -0,0 +1,309 @@ +// Copyright 2022 PingCAP, Inc. Licensed under Apache-2.0. + +package restore + +import ( + "bytes" + "context" + "crypto/sha256" + "encoding/base64" + "encoding/hex" + "sort" + "strings" + "sync" + + "github.com/pingcap/errors" + backuppb "github.com/pingcap/kvproto/pkg/brpb" + "github.com/pingcap/log" + "github.com/pingcap/tidb/br/pkg/storage" + "github.com/pingcap/tidb/br/pkg/stream" + "github.com/pingcap/tidb/br/pkg/utils" + "github.com/pingcap/tidb/util/codec" + "go.uber.org/zap" + "golang.org/x/sync/errgroup" +) + +// Comparator is used for comparing the relationship of src and dst +type Comparator interface { + Compare(src, dst []byte) bool +} + +// startWithComparator is used for comparing whether src starts with dst +type startWithComparator struct{} + +// NewStartWithComparator create a comparator to compare whether src starts with dst +func NewStartWithComparator() Comparator { + return new(startWithComparator) +} + +// Compare whether src starts with dst +func (ec *startWithComparator) Compare(src, dst []byte) bool { + return bytes.HasPrefix(src, dst) +} + +// StreamKVInfo stores kv info searched from log data files +type StreamKVInfo struct { + Key string `json:"key"` + EncodedKey string `json:"-"` + WriteType byte `json:"write-type"` + StartTs uint64 `json:"start-ts"` + CommitTs uint64 `json:"commit-ts"` + CFName string `json:"cf-name"` + Value string `json:"value,omitempty"` + ShortValue string `json:"short-value,omitempty"` +} + +// StreamBackupSearch is used for searching key from log data files +type StreamBackupSearch struct { + storage storage.ExternalStorage + comparator Comparator + searchKey []byte // hex string + startTs uint64 + endTs uint64 +} + +// NewStreamBackupSearch creates an instance of StreamBackupSearch +func NewStreamBackupSearch(storage storage.ExternalStorage, comparator Comparator, searchKey []byte) *StreamBackupSearch { + bs := &StreamBackupSearch{ + storage: storage, + comparator: comparator, + } + + bs.searchKey = codec.EncodeBytes([]byte{}, searchKey) + return bs +} + +// SetStartTS set start timestamp searched from +func (s *StreamBackupSearch) SetStartTS(startTs uint64) { + s.startTs = startTs +} + +// SetEndTs set end timestamp searched to +func (s *StreamBackupSearch) SetEndTs(endTs uint64) { + s.endTs = endTs +} + +func (s *StreamBackupSearch) readDataFiles(ctx context.Context, ch chan<- *backuppb.DataFileInfo) error { + opt := &storage.WalkOption{SubDir: stream.GetStreamBackupMetaPrefix()} + pool := utils.NewWorkerPool(64, "read backup meta") + eg, egCtx := errgroup.WithContext(ctx) + err := s.storage.WalkDir(egCtx, opt, func(path string, size int64) error { + if !strings.Contains(path, stream.GetStreamBackupMetaPrefix()) { + return nil + } + + pool.ApplyOnErrorGroup(eg, func() error { + m := &backuppb.Metadata{} + b, err := s.storage.ReadFile(egCtx, path) + if err != nil { + return errors.Trace(err) + } + err = m.Unmarshal(b) + if err != nil { + return errors.Trace(err) + } + + s.resolveMetaData(egCtx, m, ch) + log.Debug("read backup meta file", zap.String("path", path)) + return nil + }) + + return nil + }) + + if err != nil { + return errors.Trace(err) + } + + return eg.Wait() +} + +func (s *StreamBackupSearch) resolveMetaData(ctx context.Context, metaData *backuppb.Metadata, ch chan<- *backuppb.DataFileInfo) { + for _, file := range metaData.Files { + if file.IsMeta { + continue + } + + // TODO dynamically configure filter policy + if bytes.Compare(s.searchKey, file.StartKey) < 0 { + continue + } + if bytes.Compare(s.searchKey, file.EndKey) > 0 { + continue + } + + if s.startTs > 0 { + if file.MaxTs < s.startTs { + continue + } + } + if s.endTs > 0 { + if file.MinTs > s.endTs { + continue + } + } + + ch <- file + } +} + +// Search kv entries from log data files +func (s *StreamBackupSearch) Search(ctx context.Context) ([]*StreamKVInfo, error) { + dataFilesCh := make(chan *backuppb.DataFileInfo, 32) + entriesCh, errCh := make(chan *StreamKVInfo, 64), make(chan error, 8) + go func() { + defer close(dataFilesCh) + if err := s.readDataFiles(ctx, dataFilesCh); err != nil { + errCh <- err + } + }() + + pool := utils.NewWorkerPool(16, "search key") + var wg sync.WaitGroup + + for dataFile := range dataFilesCh { + wg.Add(1) + file := dataFile + pool.Apply(func() { + defer wg.Done() + if err := s.searchFromDataFile(ctx, file, entriesCh); err != nil { + errCh <- err + } + }) + } + + go func() { + wg.Wait() + close(entriesCh) + close(errCh) + }() + + for err := range errCh { + return nil, errors.Trace(err) + } + + defaultCFEntries := make(map[string]*StreamKVInfo, 64) + writeCFEntries := make(map[string]*StreamKVInfo, 64) + + for entry := range entriesCh { + if entry.CFName == writeCFName { + writeCFEntries[entry.EncodedKey] = entry + } else if entry.CFName == defaultCFName { + defaultCFEntries[entry.EncodedKey] = entry + } + } + + entries := s.mergeCFEntries(defaultCFEntries, writeCFEntries) + return entries, nil +} + +func (s *StreamBackupSearch) searchFromDataFile(ctx context.Context, dataFile *backuppb.DataFileInfo, ch chan<- *StreamKVInfo) error { + buff, err := s.storage.ReadFile(ctx, dataFile.Path) + if err != nil { + return errors.Annotatef(err, "read data file error, file: %s", dataFile.Path) + } + + if checksum := sha256.Sum256(buff); !bytes.Equal(checksum[:], dataFile.GetSha256()) { + return errors.Annotatef(err, "validate checksum failed, file: %s", dataFile.Path) + } + + iter := stream.NewEventIterator(buff) + for iter.Valid() { + iter.Next() + if err := iter.GetError(); err != nil { + return errors.Trace(err) + } + + k, v := iter.Key(), iter.Value() + if !s.comparator.Compare(k, s.searchKey) { + continue + } + + _, ts, err := codec.DecodeUintDesc(k[len(k)-8:]) + if err != nil { + return errors.Annotatef(err, "decode ts from key error, file: %s", dataFile.Path) + } + + k = k[:len(k)-8] + _, rawKey, err := codec.DecodeBytes(k, nil) + if err != nil { + return errors.Annotatef(err, "decode raw key error, file: %s", dataFile.Path) + } + + if dataFile.Cf == writeCFName { + rawWriteCFValue := new(stream.RawWriteCFValue) + if err := rawWriteCFValue.ParseFrom(v); err != nil { + return errors.Annotatef(err, "parse raw write cf value error, file: %s", dataFile.Path) + } + + valueStr := "" + if rawWriteCFValue.HasShortValue() { + valueStr = base64.StdEncoding.EncodeToString(rawWriteCFValue.GetShortValue()) + } + + kvInfo := &StreamKVInfo{ + WriteType: rawWriteCFValue.GetWriteType(), + CFName: dataFile.Cf, + CommitTs: ts, + StartTs: rawWriteCFValue.GetStartTs(), + Key: strings.ToUpper(hex.EncodeToString(rawKey)), + EncodedKey: hex.EncodeToString(iter.Key()), + ShortValue: valueStr, + } + ch <- kvInfo + } else if dataFile.Cf == defaultCFName { + kvInfo := &StreamKVInfo{ + CFName: dataFile.Cf, + StartTs: ts, + Key: strings.ToUpper(hex.EncodeToString(rawKey)), + EncodedKey: hex.EncodeToString(iter.Key()), + Value: base64.StdEncoding.EncodeToString(v), + } + ch <- kvInfo + } + } + + log.Info("finish search data file", zap.String("file", dataFile.Path)) + return nil +} + +func (s *StreamBackupSearch) mergeCFEntries(defaultCFEntries, writeCFEntries map[string]*StreamKVInfo) []*StreamKVInfo { + entries := make([]*StreamKVInfo, 0, len(defaultCFEntries)+len(writeCFEntries)) + mergedDefaultCFKeys := make(map[string]struct{}, 16) + for _, entry := range writeCFEntries { + entries = append(entries, entry) + if entry.ShortValue != "" { + continue + } + + keyBytes, err := hex.DecodeString(entry.Key) + if err != nil { + log.Warn("hex decode key failed", zap.String("key", entry.Key), zap.String("encode-key", entry.EncodedKey), zap.Error(err)) + continue + } + + encodedKey := codec.EncodeBytes([]byte{}, keyBytes) + defaultCFKey := hex.EncodeToString(codec.EncodeUintDesc(encodedKey, entry.StartTs)) + defaultCFEntry, ok := defaultCFEntries[defaultCFKey] + if !ok { + continue + } + + entry.Value = defaultCFEntry.Value + mergedDefaultCFKeys[defaultCFKey] = struct{}{} + } + + for key, entry := range defaultCFEntries { + if _, ok := mergedDefaultCFKeys[key]; ok { + continue + } + + entries = append(entries, entry) + } + + sort.Slice(entries, func(i, j int) bool { + return entries[i].CommitTs < entries[j].CommitTs + }) + + return entries +} diff --git a/br/pkg/restore/search_test.go b/br/pkg/restore/search_test.go new file mode 100644 index 0000000000000..6af96b10b3536 --- /dev/null +++ b/br/pkg/restore/search_test.go @@ -0,0 +1,203 @@ +// Copyright 2022 PingCAP, Inc. Licensed under Apache-2.0. + +package restore + +import ( + "bytes" + "context" + "crypto/sha256" + "encoding/hex" + "strings" + "testing" + "time" + + backuppb "github.com/pingcap/kvproto/pkg/brpb" + "github.com/pingcap/tidb/br/pkg/storage" + "github.com/pingcap/tidb/br/pkg/stream" + "github.com/pingcap/tidb/util/codec" + "github.com/stretchr/testify/require" +) + +func TestStartWithComparator(t *testing.T) { + comparator := NewStartWithComparator() + require.True(t, comparator.Compare([]byte("aa_key"), []byte("aa"))) + require.False(t, comparator.Compare([]byte("aa_key"), []byte("aak"))) + require.False(t, comparator.Compare([]byte("aa_key"), []byte("bb"))) +} + +func fakeStorage(t *testing.T) storage.ExternalStorage { + baseDir := t.TempDir() + s, err := storage.NewLocalStorage(baseDir) + require.NoError(t, err) + return s +} + +func encodeKey(key string, ts int64) []byte { + encodedKey := codec.EncodeBytes([]byte{}, []byte(key)) + return codec.EncodeUintDesc(encodedKey, uint64(ts)) +} + +func encodeShortValue(val string, ts int64) []byte { + flagShortValuePrefix := byte('v') + valBytes := []byte(val) + buff := make([]byte, 0, 11+len(valBytes)) + buff = append(buff, byte('P')) + buff = codec.EncodeUvarint(buff, uint64(ts)) + buff = append(buff, flagShortValuePrefix) + buff = append(buff, byte(len(valBytes))) + buff = append(buff, valBytes...) + return buff +} + +type cf struct { + key string + startTs int64 + commitTS int64 + val string +} + +func fakeCFs() (defaultCFs, writeCFs []*cf) { + defaultCFs = []*cf{ + { + key: "aa_big_key_1", + startTs: time.Now().UnixNano(), + val: "aa_big_val_1", + }, + { + key: "bb_big_key_1", + startTs: time.Now().UnixNano(), + val: "bb_big_val_1", + }, + { + key: "cc_big_key_1", + startTs: time.Now().UnixNano(), + val: "cc_big_val_1", + }, + } + + writeCFs = []*cf{ + { + key: "aa_small_key_1", + startTs: time.Now().UnixNano(), + commitTS: time.Now().UnixNano(), + val: "aa_small_val_1", + }, + { + key: "aa_big_key_1", + startTs: defaultCFs[0].startTs, + commitTS: time.Now().UnixNano(), + val: "aa_short_val_1", + }, + { + key: "bb_small_key_1", + startTs: time.Now().UnixNano(), + commitTS: time.Now().UnixNano(), + val: "bb_small_val_1", + }, + { + key: "bb_big_key_1", + startTs: defaultCFs[1].startTs, + commitTS: time.Now().UnixNano(), + val: "bb_short_val_1", + }, + } + + return +} + +func fakeDataFile(t *testing.T, s storage.ExternalStorage) (defaultCFDataFile, writeCFDataFile *backuppb.DataFileInfo) { + const ( + defaultCFFile = "default_cf" + writeCFFile = "write_cf" + ) + defaultCFs, writeCFs := fakeCFs() + ctx := context.Background() + defaultCFBuf := bytes.NewBuffer([]byte{}) + for _, defaultCF := range defaultCFs { + defaultCFBuf.Write(stream.EncodeKVEntry(encodeKey(defaultCF.key, defaultCF.startTs), []byte(defaultCF.val))) + } + + err := s.WriteFile(ctx, defaultCFFile, defaultCFBuf.Bytes()) + require.NoError(t, err) + defaultCFCheckSum := sha256.Sum256(defaultCFBuf.Bytes()) + defaultCFDataFile = &backuppb.DataFileInfo{ + Path: defaultCFFile, + Cf: defaultCFName, + Sha256: defaultCFCheckSum[:], + } + + writeCFBuf := bytes.NewBuffer([]byte{}) + for _, writeCF := range writeCFs { + writeCFBuf.Write(stream.EncodeKVEntry(encodeKey(writeCF.key, writeCF.commitTS), encodeShortValue(writeCF.val, writeCF.startTs))) + } + + err = s.WriteFile(ctx, writeCFFile, writeCFBuf.Bytes()) + require.NoError(t, err) + writeCFCheckSum := sha256.Sum256(writeCFBuf.Bytes()) + writeCFDataFile = &backuppb.DataFileInfo{ + Path: writeCFFile, + Cf: writeCFName, + Sha256: writeCFCheckSum[:], + } + + return +} + +func TestSearchFromDataFile(t *testing.T) { + s := fakeStorage(t) + defaultCFDataFile, writeCFDataFile := fakeDataFile(t, s) + comparator := NewStartWithComparator() + searchKey := []byte("aa_big_key_1") + bs := NewStreamBackupSearch(s, comparator, searchKey) + ch := make(chan *StreamKVInfo, 16) + ctx := context.Background() + + err := bs.searchFromDataFile(ctx, defaultCFDataFile, ch) + require.NoError(t, err) + err = bs.searchFromDataFile(ctx, writeCFDataFile, ch) + require.NoError(t, err) + close(ch) + + hexSearchKey := strings.ToUpper(hex.EncodeToString(searchKey)) + searchKeyCount := 0 + for kvEntry := range ch { + require.True(t, strings.HasPrefix(kvEntry.Key, hexSearchKey)) + searchKeyCount++ + } + + require.Equal(t, 2, searchKeyCount) +} + +func TestMergeCFEntries(t *testing.T) { + defaultCFs, writeCFs := fakeCFs() + defaultCFEntries := make(map[string]*StreamKVInfo, 8) + writeCFEntries := make(map[string]*StreamKVInfo, 8) + + for _, defaultCF := range defaultCFs { + encodedKey := hex.EncodeToString(encodeKey(defaultCF.key, defaultCF.startTs)) + defaultCFEntries[encodedKey] = &StreamKVInfo{ + Key: hex.EncodeToString([]byte(defaultCF.key)), + EncodedKey: encodedKey, + StartTs: uint64(defaultCF.startTs), + CFName: defaultCFName, + Value: defaultCF.val, + } + } + for _, writeCF := range writeCFs { + encodedKey := hex.EncodeToString(encodeKey(writeCF.key, writeCF.commitTS)) + writeCFEntries[encodedKey] = &StreamKVInfo{ + Key: hex.EncodeToString([]byte(writeCF.key)), + EncodedKey: encodedKey, + StartTs: uint64(writeCF.startTs), + CommitTs: uint64(writeCF.commitTS), + CFName: writeCFName, + Value: writeCF.val, + } + } + + s := fakeStorage(t) + comparator := NewStartWithComparator() + bs := NewStreamBackupSearch(s, comparator, []byte{}) + kvEntries := bs.mergeCFEntries(defaultCFEntries, writeCFEntries) + require.Equal(t, len(writeCFs)+1, len(kvEntries)) +} diff --git a/br/pkg/restore/systable_restore.go b/br/pkg/restore/systable_restore.go index b0f588fa2286c..edbf1629f2e80 100644 --- a/br/pkg/restore/systable_restore.go +++ b/br/pkg/restore/systable_restore.go @@ -5,6 +5,7 @@ package restore import ( "context" "fmt" + "strings" "github.com/pingcap/errors" "github.com/pingcap/log" @@ -33,16 +34,7 @@ var unRecoverableTable = map[string]struct{}{ "tidb": {}, "global_variables": {}, - // all user related tables cannot be recovered for now. "column_stats_usage": {}, - "columns_priv": {}, - "db": {}, - "default_roles": {}, - "global_grants": {}, - "global_priv": {}, - "role_edges": {}, - "tables_priv": {}, - "user": {}, "capture_plan_baselines_blacklist": {}, // gc info don't need to recover. "gc_delete_range": {}, @@ -52,6 +44,17 @@ var unRecoverableTable = map[string]struct{}{ "schema_index_usage": {}, } +var sysPrivilegeTableSet = map[string]bool{ + "user": true, // since v1.0.0 + "db": true, // since v1.0.0 + "tables_priv": true, // since v1.0.0 + "columns_priv": true, // since v1.0.0 + "default_roles": true, // since v3.0.0 + "role_edges": true, // since v3.0.0 + "global_priv": true, // since v3.0.8 + "global_grants": true, // since v5.0.3 +} + func isUnrecoverableTable(tableName string) bool { _, ok := unRecoverableTable[tableName] return ok @@ -90,7 +93,7 @@ func (rc *Client) RestoreSystemSchemas(ctx context.Context, f filter.Filter) { for _, table := range originDatabase.Tables { tableName := table.Info.Name if f.MatchTable(sysDB, tableName.O) { - if err := rc.replaceTemporaryTableToSystable(ctx, tableName.L, db); err != nil { + if err := rc.replaceTemporaryTableToSystable(ctx, table.Info, db); err != nil { log.Warn("error during merging temporary tables into system tables", logutil.ShortError(err), zap.Stringer("table", tableName), @@ -139,18 +142,24 @@ func (rc *Client) afterSystemTablesReplaced(tables []string) error { for _, table := range tables { switch { case table == "user": - // We cannot execute `rc.dom.NotifyUpdatePrivilege` here, because there isn't - // sessionctx.Context provided by the glue. - // TODO: update the glue type and allow we retrieve a session context from it. - err = multierr.Append(err, errors.Annotatef(berrors.ErrUnsupportedSystemTable, - "restored user info may not take effect, until you should execute `FLUSH PRIVILEGES` manually")) + if rc.fullClusterRestore { + log.Info("privilege system table restored, please reconnect to make it effective") + err = rc.dom.NotifyUpdatePrivilege() + } else { + // to make it compatible with older version + // todo: should we allow restore system table in non-fresh cluster in later br version? + // if we don't, we can check it at first place. + err = multierr.Append(err, errors.Annotatef(berrors.ErrUnsupportedSystemTable, + "restored user info may not take effect, until you should execute `FLUSH PRIVILEGES` manually")) + } } } return err } // replaceTemporaryTableToSystable replaces the temporary table to real system table. -func (rc *Client) replaceTemporaryTableToSystable(ctx context.Context, tableName string, db *database) error { +func (rc *Client) replaceTemporaryTableToSystable(ctx context.Context, ti *model.TableInfo, db *database) error { + tableName := ti.Name.L execSQL := func(sql string) error { // SQLs here only contain table name and database name, seems it is no need to redact them. if err := rc.db.se.Execute(ctx, sql); err != nil { @@ -188,11 +197,26 @@ func (rc *Client) replaceTemporaryTableToSystable(ctx context.Context, tableName } if db.ExistingTables[tableName] != nil { - log.Info("table existing, using replace into for restore", + if rc.fullClusterRestore && sysPrivilegeTableSet[tableName] { + log.Info("full cluster restore, delete existing data", + zap.String("table", tableName), zap.Stringer("schema", db.Name)) + deleteSQL := fmt.Sprintf("DELETE FROM %s;", utils.EncloseDBAndTable(db.Name.L, tableName)) + if err := execSQL(deleteSQL); err != nil { + return err + } + } + log.Info("replace into existing table", zap.String("table", tableName), zap.Stringer("schema", db.Name)) - replaceIntoSQL := fmt.Sprintf("REPLACE INTO %s SELECT * FROM %s;", + // target column order may different with source cluster + columnNames := make([]string, 0, len(ti.Columns)) + for _, col := range ti.Columns { + columnNames = append(columnNames, utils.EncloseName(col.Name.L)) + } + colListStr := strings.Join(columnNames, ",") + replaceIntoSQL := fmt.Sprintf("REPLACE INTO %s(%s) SELECT %s FROM %s;", utils.EncloseDBAndTable(db.Name.L, tableName), + colListStr, colListStr, utils.EncloseDBAndTable(db.TemporaryName.L, tableName)) return execSQL(replaceIntoSQL) } diff --git a/br/pkg/rtree/BUILD.bazel b/br/pkg/rtree/BUILD.bazel index 5c5b0546ab03b..7356d7ccf98ff 100644 --- a/br/pkg/rtree/BUILD.bazel +++ b/br/pkg/rtree/BUILD.bazel @@ -26,6 +26,7 @@ go_test( "main_test.go", "rtree_test.go", ], + flaky = True, deps = [ ":rtree", "//testkit/testsetup", diff --git a/br/pkg/storage/BUILD.bazel b/br/pkg/storage/BUILD.bazel index 762df1ae59957..0f0f4cc17d2c6 100644 --- a/br/pkg/storage/BUILD.bazel +++ b/br/pkg/storage/BUILD.bazel @@ -63,6 +63,7 @@ go_test( "writer_test.go", ], embed = [":storage"], + flaky = True, deps = [ "//br/pkg/mock", "@com_github_aws_aws_sdk_go//aws", diff --git a/br/pkg/storage/azblob.go b/br/pkg/storage/azblob.go index 24c3b06930025..e96a9fe8f9e5a 100644 --- a/br/pkg/storage/azblob.go +++ b/br/pkg/storage/azblob.go @@ -30,6 +30,7 @@ const ( azblobAccountKey = "azblob.account-key" ) +// AzblobBackendOptions is the options for Azure Blob storage. type AzblobBackendOptions struct { Endpoint string `json:"endpoint" toml:"endpoint"` AccountName string `json:"account-name" toml:"account-name"` @@ -83,6 +84,7 @@ func (options *AzblobBackendOptions) parseFromFlags(flags *pflag.FlagSet) error return nil } +// ClientBuilder provides common method to build a service client. type ClientBuilder interface { // Example of serviceURL: https://.blob.core.windows.net GetServiceClient() (azblob.ServiceClient, error) @@ -119,7 +121,7 @@ func (b *tokenClientBuilder) GetAccountName() string { return b.accountName } -func getAuthorizerFromEnvironment() (clientId, tenantId, clientSecret string) { +func getAuthorizerFromEnvironment() (clientID, tenantID, clientSecret string) { return os.Getenv("AZURE_CLIENT_ID"), os.Getenv("AZURE_TENANT_ID"), os.Getenv("AZURE_CLIENT_SECRET") @@ -149,11 +151,11 @@ func getAzureServiceClientBuilder(options *backuppb.AzureBlobStorage, opts *Exte accountName := options.AccountName if len(accountName) == 0 { - if val := os.Getenv("AZURE_STORAGE_ACCOUNT"); len(val) > 0 { - accountName = val - } else { + val := os.Getenv("AZURE_STORAGE_ACCOUNT") + if len(val) <= 0 { return nil, errors.New("account name cannot be empty to access azure blob storage") } + accountName = val } serviceURL := options.Endpoint @@ -161,11 +163,9 @@ func getAzureServiceClientBuilder(options *backuppb.AzureBlobStorage, opts *Exte serviceURL = fmt.Sprintf("https://%s.blob.core.windows.net", accountName) } - if clientId, tenantId, clientSecret := getAuthorizerFromEnvironment(); len(clientId) > 0 && len(tenantId) > 0 && len(clientSecret) > 0 { - cred, err := azidentity.NewClientSecretCredential(tenantId, clientId, clientSecret, nil) - if err != nil { - log.Warn("Failed to get azure token credential but environment variables exist, try to use shared key.", zap.String("tenantId", tenantId), zap.String("clientId", clientId), zap.String("clientSecret", "?")) - } else { + if clientID, tenantID, clientSecret := getAuthorizerFromEnvironment(); len(clientID) > 0 && len(tenantID) > 0 && len(clientSecret) > 0 { + cred, err := azidentity.NewClientSecretCredential(tenantID, clientID, clientSecret, nil) + if err == nil { // send account-name to TiKV if opts != nil && opts.SendCredentials { options.AccountName = accountName @@ -176,15 +176,16 @@ func getAzureServiceClientBuilder(options *backuppb.AzureBlobStorage, opts *Exte serviceURL, }, nil } + log.Warn("Failed to get azure token credential but environment variables exist, try to use shared key.", zap.String("tenantId", tenantID), zap.String("clientId", clientID), zap.String("clientSecret", "?")) } var sharedKey string - if val := os.Getenv("AZURE_STORAGE_KEY"); len(val) > 0 { - log.Info("Get azure sharedKey from environment variable $AZURE_STORAGE_KEY") - sharedKey = val - } else { + val := os.Getenv("AZURE_STORAGE_KEY") + if len(val) <= 0 { return nil, errors.New("cannot find any credential info to access azure blob storage") } + log.Info("Get azure sharedKey from environment variable $AZURE_STORAGE_KEY") + sharedKey = val cred, err := azblob.NewSharedKeyCredential(accountName, sharedKey) if err != nil { @@ -203,6 +204,7 @@ func getAzureServiceClientBuilder(options *backuppb.AzureBlobStorage, opts *Exte }, nil } +// AzureBlobStorage is a storage engine that stores data in Azure Blob Storage. type AzureBlobStorage struct { options *backuppb.AzureBlobStorage @@ -221,7 +223,6 @@ func newAzureBlobStorage(ctx context.Context, options *backuppb.AzureBlobStorage } func newAzureBlobStorageWithClientBuilder(ctx context.Context, options *backuppb.AzureBlobStorage, clientBuilder ClientBuilder) (*AzureBlobStorage, error) { - serviceClient, err := clientBuilder.GetServiceClient() if err != nil { return nil, errors.Annotate(err, "Failed to create azure service client") @@ -231,13 +232,12 @@ func newAzureBlobStorageWithClientBuilder(ctx context.Context, options *backuppb _, err = containerClient.Create(ctx, nil) if err != nil { var errResp *azblob.StorageError - if internalErr, ok := err.(*azblob.InternalError); ok && internalErr.As(&errResp) { - if errResp.ErrorCode != azblob.StorageErrorCodeContainerAlreadyExists { - return nil, errors.Annotate(err, fmt.Sprintf("Failed to create the container: %s", errResp.ErrorCode)) - } - } else { + if internalErr, ok := err.(*azblob.InternalError); !(ok && internalErr.As(&errResp)) { return nil, errors.Annotate(err, "Failed to create the container: error can not be parsed") } + if errResp.ErrorCode != azblob.StorageErrorCodeContainerAlreadyExists { + return nil, errors.Annotate(err, fmt.Sprintf("Failed to create the container: %s", errResp.ErrorCode)) + } } // parse storage access-tier @@ -266,6 +266,7 @@ func (s *AzureBlobStorage) withPrefix(name string) string { return path.Join(s.options.Prefix, name) } +// WriteFile writes a file to Azure Blob Storage. func (s *AzureBlobStorage) WriteFile(ctx context.Context, name string, data []byte) error { client := s.containerClient.NewBlockBlobClient(s.withPrefix(name)) resp, err := client.UploadBufferToBlockBlob(ctx, data, azblob.HighLevelUploadToBlockBlobOption{AccessTier: &s.accessTier}) @@ -276,6 +277,7 @@ func (s *AzureBlobStorage) WriteFile(ctx context.Context, name string, data []by return nil } +// ReadFile reads a file from Azure Blob Storage. func (s *AzureBlobStorage) ReadFile(ctx context.Context, name string) ([]byte, error) { client := s.containerClient.NewBlockBlobClient(s.withPrefix(name)) resp, err := client.Download(ctx, nil) @@ -290,6 +292,7 @@ func (s *AzureBlobStorage) ReadFile(ctx context.Context, name string) ([]byte, e return data, err } +// FileExists checks if a file exists in Azure Blob Storage. func (s *AzureBlobStorage) FileExists(ctx context.Context, name string) (bool, error) { client := s.containerClient.NewBlockBlobClient(s.withPrefix(name)) _, err := client.GetProperties(ctx, nil) @@ -305,6 +308,7 @@ func (s *AzureBlobStorage) FileExists(ctx context.Context, name string) (bool, e return true, nil } +// DeleteFile deletes the file with the given name. func (s *AzureBlobStorage) DeleteFile(ctx context.Context, name string) error { client := s.containerClient.NewBlockBlobClient(s.withPrefix(name)) _, err := client.Delete(ctx, nil) @@ -314,6 +318,7 @@ func (s *AzureBlobStorage) DeleteFile(ctx context.Context, name string) error { return nil } +// Open implements the StorageReader interface. func (s *AzureBlobStorage) Open(ctx context.Context, name string) (ExternalFileReader, error) { client := s.containerClient.NewBlockBlobClient(s.withPrefix(name)) return &azblobObjectReader{ @@ -325,6 +330,7 @@ func (s *AzureBlobStorage) Open(ctx context.Context, name string) (ExternalFileR }, nil } +// WalkDir implements the StorageReader interface. func (s *AzureBlobStorage) WalkDir(ctx context.Context, opt *WalkOption, fn func(path string, size int64) error) error { if opt == nil { opt = &WalkOption{} @@ -371,11 +377,13 @@ func (s *AzureBlobStorage) WalkDir(ctx context.Context, opt *WalkOption, fn func return nil } +// URI implements the StorageReader interface. func (s *AzureBlobStorage) URI() string { return "azure://" + s.options.Bucket + "/" + s.options.Prefix } -func (s *AzureBlobStorage) Create(ctx context.Context, name string) (ExternalFileWriter, error) { +// Create implements the StorageWriter interface. +func (s *AzureBlobStorage) Create(_ context.Context, name string) (ExternalFileWriter, error) { client := s.containerClient.NewBlockBlobClient(s.withPrefix(name)) uploader := &azblobUploader{ blobClient: client, @@ -389,6 +397,7 @@ func (s *AzureBlobStorage) Create(ctx context.Context, name string) (ExternalFil return uploaderWriter, nil } +// Rename implements the StorageWriter interface. func (s *AzureBlobStorage) Rename(ctx context.Context, oldFileName, newFileName string) error { data, err := s.ReadFile(ctx, oldFileName) if err != nil { @@ -425,7 +434,7 @@ func (r *azblobObjectReader) Read(p []byte) (n int, err error) { } // Close implement the io.Closer interface. -func (r *azblobObjectReader) Close() error { +func (*azblobObjectReader) Close() error { return nil } @@ -476,7 +485,7 @@ func newNopCloser(r io.ReadSeeker) nopCloser { return nopCloser{r} } -func (r nopCloser) Close() error { +func (nopCloser) Close() error { return nil } @@ -489,17 +498,17 @@ type azblobUploader struct { } func (u *azblobUploader) Write(ctx context.Context, data []byte) (int, error) { - generatedUuid, err := uuid.NewUUID() + generatedUUID, err := uuid.NewUUID() if err != nil { return 0, errors.Annotate(err, "Fail to generate uuid") } - blockId := base64.StdEncoding.EncodeToString([]byte(generatedUuid.String())) + blockID := base64.StdEncoding.EncodeToString([]byte(generatedUUID.String())) - _, err = u.blobClient.StageBlock(ctx, blockId, newNopCloser(bytes.NewReader(data)), nil) + _, err = u.blobClient.StageBlock(ctx, blockID, newNopCloser(bytes.NewReader(data)), nil) if err != nil { return 0, errors.Annotate(err, "Failed to upload block to azure blob") } - u.blockIDList = append(u.blockIDList, blockId) + u.blockIDList = append(u.blockIDList, blockID) return len(data), nil } diff --git a/br/pkg/storage/compress.go b/br/pkg/storage/compress.go index fc0976420996b..96258221d9b62 100644 --- a/br/pkg/storage/compress.go +++ b/br/pkg/storage/compress.go @@ -98,7 +98,7 @@ func newInterceptReader(fileReader ExternalFileReader, compressType CompressType }, nil } -func (r *compressReader) Seek(_ int64, _ int) (int64, error) { +func (*compressReader) Seek(_ int64, _ int) (int64, error) { return int64(0), errors.Annotatef(berrors.ErrStorageInvalidConfig, "compressReader doesn't support Seek now") } @@ -108,12 +108,12 @@ type flushStorageWriter struct { closer io.Closer } -func (w *flushStorageWriter) Write(ctx context.Context, data []byte) (int, error) { +func (w *flushStorageWriter) Write(_ context.Context, data []byte) (int, error) { n, err := w.writer.Write(data) return n, errors.Trace(err) } -func (w *flushStorageWriter) Close(ctx context.Context) error { +func (w *flushStorageWriter) Close(_ context.Context) error { err := w.flusher.Flush() if err != nil { return errors.Trace(err) diff --git a/br/pkg/storage/gcs.go b/br/pkg/storage/gcs.go index abecab4362c74..4609c977766fa 100644 --- a/br/pkg/storage/gcs.go +++ b/br/pkg/storage/gcs.go @@ -258,12 +258,11 @@ func newGCSStorage(ctx context.Context, gcs *backuppb.GCS, opts *ExternalStorage return nil, errors.Annotatef(berrors.ErrStorageInvalidConfig, "%v Or you should provide '--gcs.credentials_file'", err) } if opts.SendCredentials { - if len(creds.JSON) > 0 { - gcs.CredentialsBlob = string(creds.JSON) - } else { + if len(creds.JSON) <= 0 { return nil, errors.Annotate(berrors.ErrStorageInvalidConfig, "You should provide '--gcs.credentials_file' when '--send-credentials-to-tikv' is true") } + gcs.CredentialsBlob = string(creds.JSON) } if creds != nil { clientOps = append(clientOps, option.WithCredentials(creds)) diff --git a/br/pkg/storage/hdfs.go b/br/pkg/storage/hdfs.go index 3dc8e7a8d6491..4a971f7a3cb0f 100644 --- a/br/pkg/storage/hdfs.go +++ b/br/pkg/storage/hdfs.go @@ -19,6 +19,7 @@ type HDFSStorage struct { remote string } +// NewHDFSStorage creates a new HDFS storage. func NewHDFSStorage(remote string) *HDFSStorage { return &HDFSStorage{ remote: remote, @@ -26,11 +27,11 @@ func NewHDFSStorage(remote string) *HDFSStorage { } func getHdfsBin() (string, error) { - hadoop_home, ok := os.LookupEnv("HADOOP_HOME") + hadoopHome, ok := os.LookupEnv("HADOOP_HOME") if !ok { return "", errors.Annotatef(berrors.ErrEnvNotSpecified, "please specify environment variable HADOOP_HOME") } - return filepath.Join(hadoop_home, "bin/hdfs"), nil + return filepath.Join(hadoopHome, "bin/hdfs"), nil } func getLinuxUser() (string, bool) { @@ -54,9 +55,9 @@ func dfsCommand(args ...string) (*exec.Cmd, error) { } // WriteFile writes a complete file to storage, similar to os.WriteFile -func (s *HDFSStorage) WriteFile(ctx context.Context, name string, data []byte) error { - file_path := fmt.Sprintf("%s/%s", s.remote, name) - cmd, err := dfsCommand("-put", "-", file_path) +func (s *HDFSStorage) WriteFile(_ context.Context, name string, data []byte) error { + filePath := fmt.Sprintf("%s/%s", s.remote, name) + cmd, err := dfsCommand("-put", "-", filePath) if err != nil { return err } @@ -73,14 +74,14 @@ func (s *HDFSStorage) WriteFile(ctx context.Context, name string, data []byte) e } // ReadFile reads a complete file from storage, similar to os.ReadFile -func (s *HDFSStorage) ReadFile(ctx context.Context, name string) ([]byte, error) { +func (*HDFSStorage) ReadFile(_ context.Context, _ string) ([]byte, error) { return nil, errors.Annotatef(berrors.ErrUnsupportedOperation, "currently HDFS backend only support rawkv backup") } // FileExists return true if file exists -func (s *HDFSStorage) FileExists(ctx context.Context, name string) (bool, error) { - file_path := fmt.Sprintf("%s/%s", s.remote, name) - cmd, err := dfsCommand("-ls", file_path) +func (s *HDFSStorage) FileExists(_ context.Context, name string) (bool, error) { + filePath := fmt.Sprintf("%s/%s", s.remote, name) + cmd, err := dfsCommand("-ls", filePath) if err != nil { return false, err } @@ -97,12 +98,12 @@ func (s *HDFSStorage) FileExists(ctx context.Context, name string) (bool, error) } // DeleteFile delete the file in storage -func (s *HDFSStorage) DeleteFile(ctx context.Context, name string) error { +func (*HDFSStorage) DeleteFile(_ context.Context, _ string) error { return errors.Annotatef(berrors.ErrUnsupportedOperation, "currently HDFS backend only support rawkv backup") } // Open a Reader by file path. path is relative path to storage base path -func (s *HDFSStorage) Open(ctx context.Context, path string) (ExternalFileReader, error) { +func (*HDFSStorage) Open(_ context.Context, _ string) (ExternalFileReader, error) { return nil, errors.Annotatef(berrors.ErrUnsupportedOperation, "currently HDFS backend only support rawkv backup") } @@ -112,7 +113,7 @@ func (s *HDFSStorage) Open(ctx context.Context, path string) (ExternalFileReader // The argument `path` is the file path that can be used in `Open` // function; the argument `size` is the size in byte of the file determined // by path. -func (s *HDFSStorage) WalkDir(ctx context.Context, opt *WalkOption, fn func(path string, size int64) error) error { +func (*HDFSStorage) WalkDir(_ context.Context, _ *WalkOption, _ func(path string, size int64) error) error { return errors.Annotatef(berrors.ErrUnsupportedOperation, "currently HDFS backend only support rawkv backup") } @@ -122,11 +123,11 @@ func (s *HDFSStorage) URI() string { } // Create opens a file writer by path. path is relative path to storage base path -func (s *HDFSStorage) Create(ctx context.Context, path string) (ExternalFileWriter, error) { +func (*HDFSStorage) Create(_ context.Context, _ string) (ExternalFileWriter, error) { return nil, errors.Annotatef(berrors.ErrUnsupportedOperation, "currently HDFS backend only support rawkv backup") } // Rename a file name from oldFileName to newFileName. -func (s *HDFSStorage) Rename(ctx context.Context, oldFileName, newFileName string) error { +func (*HDFSStorage) Rename(_ context.Context, _, _ string) error { return errors.Annotatef(berrors.ErrUnsupportedOperation, "currently HDFS backend only support rawkv backup") } diff --git a/br/pkg/storage/local.go b/br/pkg/storage/local.go index 0004648899aa8..68dc760cc1c9a 100644 --- a/br/pkg/storage/local.go +++ b/br/pkg/storage/local.go @@ -26,13 +26,14 @@ type LocalStorage struct { base string } -func (l *LocalStorage) DeleteFile(ctx context.Context, name string) error { +// DeleteFile deletes the file. +func (l *LocalStorage) DeleteFile(_ context.Context, name string) error { path := filepath.Join(l.base, name) return os.Remove(path) } // WriteFile writes data to a file to storage. -func (l *LocalStorage) WriteFile(ctx context.Context, name string, data []byte) error { +func (l *LocalStorage) WriteFile(_ context.Context, name string, data []byte) error { // because `os.WriteFile` is not atomic, directly write into it may reset the file // to an empty file if write is not finished. tmpPath := filepath.Join(l.base, name) + ".tmp" @@ -46,13 +47,13 @@ func (l *LocalStorage) WriteFile(ctx context.Context, name string, data []byte) } // ReadFile reads the file from the storage and returns the contents. -func (l *LocalStorage) ReadFile(ctx context.Context, name string) ([]byte, error) { +func (l *LocalStorage) ReadFile(_ context.Context, name string) ([]byte, error) { path := filepath.Join(l.base, name) return os.ReadFile(path) } // FileExists implement ExternalStorage.FileExists. -func (l *LocalStorage) FileExists(ctx context.Context, name string) (bool, error) { +func (l *LocalStorage) FileExists(_ context.Context, name string) (bool, error) { path := filepath.Join(l.base, name) return pathExists(path) } @@ -63,7 +64,7 @@ func (l *LocalStorage) FileExists(ctx context.Context, name string) (bool, error // The first argument is the file path that can be used in `Open` // function; the second argument is the size in byte of the file determined // by path. -func (l *LocalStorage) WalkDir(ctx context.Context, opt *WalkOption, fn func(string, int64) error) error { +func (l *LocalStorage) WalkDir(_ context.Context, opt *WalkOption, fn func(string, int64) error) error { if opt == nil { opt = &WalkOption{} } @@ -107,13 +108,13 @@ func (l *LocalStorage) URI() string { } // Open a Reader by file path, path is a relative path to base path. -func (l *LocalStorage) Open(ctx context.Context, path string) (ExternalFileReader, error) { +func (l *LocalStorage) Open(_ context.Context, path string) (ExternalFileReader, error) { //nolint: gosec return os.Open(filepath.Join(l.base, path)) } // Create implements ExternalStorage interface. -func (l *LocalStorage) Create(ctx context.Context, name string) (ExternalFileWriter, error) { +func (l *LocalStorage) Create(_ context.Context, name string) (ExternalFileWriter, error) { file, err := os.Create(filepath.Join(l.base, name)) if err != nil { return nil, errors.Trace(err) @@ -123,7 +124,7 @@ func (l *LocalStorage) Create(ctx context.Context, name string) (ExternalFileWri } // Rename implements ExternalStorage interface. -func (l *LocalStorage) Rename(ctx context.Context, oldFileName, newFileName string) error { +func (l *LocalStorage) Rename(_ context.Context, oldFileName, newFileName string) error { return errors.Trace(os.Rename(filepath.Join(l.base, oldFileName), filepath.Join(l.base, newFileName))) } diff --git a/br/pkg/storage/memstore.go b/br/pkg/storage/memstore.go index 0d60edc04de7c..96276ca600790 100644 --- a/br/pkg/storage/memstore.go +++ b/br/pkg/storage/memstore.go @@ -46,6 +46,7 @@ type MemStorage struct { dataStore map[string]*memFile } +// NewMemStorage creates a new in-memory storage. func NewMemStorage() *MemStorage { return &MemStorage{ dataStore: make(map[string]*memFile), @@ -210,7 +211,8 @@ func (s *MemStorage) WalkDir(ctx context.Context, opt *WalkOption, fn func(strin return nil } -func (s *MemStorage) URI() string { +// URI returns the URI of the storage. +func (*MemStorage) URI() string { return "memstore://" } diff --git a/br/pkg/storage/noop.go b/br/pkg/storage/noop.go index 41788a1f37cd4..8e58366efdcf5 100644 --- a/br/pkg/storage/noop.go +++ b/br/pkg/storage/noop.go @@ -9,46 +9,46 @@ import ( type noopStorage struct{} // DeleteFile delete the file in storage -func (s *noopStorage) DeleteFile(ctx context.Context, name string) error { +func (*noopStorage) DeleteFile(_ context.Context, _ string) error { return nil } // WriteFile file to storage. -func (*noopStorage) WriteFile(ctx context.Context, name string, data []byte) error { +func (*noopStorage) WriteFile(_ context.Context, _ string, _ []byte) error { return nil } // ReadFile storage file. -func (*noopStorage) ReadFile(ctx context.Context, name string) ([]byte, error) { +func (*noopStorage) ReadFile(_ context.Context, _ string) ([]byte, error) { return []byte{}, nil } // FileExists return true if file exists. -func (*noopStorage) FileExists(ctx context.Context, name string) (bool, error) { +func (*noopStorage) FileExists(_ context.Context, _ string) (bool, error) { return false, nil } // Open a Reader by file path. -func (*noopStorage) Open(ctx context.Context, path string) (ExternalFileReader, error) { +func (*noopStorage) Open(_ context.Context, _ string) (ExternalFileReader, error) { return noopReader{}, nil } // WalkDir traverse all the files in a dir. -func (*noopStorage) WalkDir(ctx context.Context, opt *WalkOption, fn func(string, int64) error) error { +func (*noopStorage) WalkDir(_ context.Context, _ *WalkOption, _ func(string, int64) error) error { return nil } -func (s *noopStorage) URI() string { +func (*noopStorage) URI() string { return "noop:///" } // Create implements ExternalStorage interface. -func (*noopStorage) Create(ctx context.Context, name string) (ExternalFileWriter, error) { +func (*noopStorage) Create(_ context.Context, _ string) (ExternalFileWriter, error) { return &noopWriter{}, nil } // Rename implements ExternalStorage interface. -func (*noopStorage) Rename(ctx context.Context, oldFileName, newFileName string) error { +func (*noopStorage) Rename(_ context.Context, _, _ string) error { return nil } @@ -66,16 +66,16 @@ func (noopReader) Close() error { return nil } -func (noopReader) Seek(offset int64, whence int) (int64, error) { +func (noopReader) Seek(offset int64, _ int) (int64, error) { return offset, nil } type noopWriter struct{} -func (noopWriter) Write(ctx context.Context, p []byte) (int, error) { +func (noopWriter) Write(_ context.Context, p []byte) (int, error) { return len(p), nil } -func (noopWriter) Close(ctx context.Context) error { +func (noopWriter) Close(_ context.Context) error { return nil } diff --git a/br/pkg/storage/s3.go b/br/pkg/storage/s3.go index c7bd9f218ad90..862f419e9d291 100644 --- a/br/pkg/storage/s3.go +++ b/br/pkg/storage/s3.go @@ -255,13 +255,13 @@ func autoNewCred(qs *backuppb.S3) (cred *credentials.Credentials, err error) { } // if it Contains 'aliyuncs', fetch the sts token. if strings.Contains(endpoint, domainAliyun) { - return createOssRamCred() + return createOssRAMCred() } // other case ,return no error and run default(aws) follow. return nil, nil } -func createOssRamCred() (*credentials.Credentials, error) { +func createOssRAMCred() (*credentials.Credentials, error) { cred, err := aliproviders.NewInstanceMetadataProvider().Retrieve() if err != nil { return nil, errors.Annotate(err, "Alibaba RAM Provider Retrieve") @@ -554,7 +554,6 @@ func (rs *S3Storage) WalkDir(ctx context.Context, opt *WalkOption, fn func(strin if err = fn(path, itemSize); err != nil { return errors.Trace(err) } - } if !aws.BoolValue(res.IsTruncated) { break diff --git a/br/pkg/storage/writer.go b/br/pkg/storage/writer.go index 55fb4e8ac319b..455cc9c3c3411 100644 --- a/br/pkg/storage/writer.go +++ b/br/pkg/storage/writer.go @@ -25,7 +25,7 @@ type flusher interface { type emptyFlusher struct{} -func (e *emptyFlusher) Flush() error { +func (*emptyFlusher) Flush() error { return nil } @@ -68,15 +68,15 @@ type noCompressionBuffer struct { *bytes.Buffer } -func (b *noCompressionBuffer) Flush() error { +func (*noCompressionBuffer) Flush() error { return nil } -func (b *noCompressionBuffer) Close() error { +func (*noCompressionBuffer) Close() error { return nil } -func (b *noCompressionBuffer) Compressed() bool { +func (*noCompressionBuffer) Compressed() bool { return false } @@ -120,7 +120,7 @@ func (b *simpleCompressBuffer) Close() error { return b.compressWriter.Close() } -func (b *simpleCompressBuffer) Compressed() bool { +func (*simpleCompressBuffer) Compressed() bool { return true } @@ -208,12 +208,12 @@ type BytesWriter struct { } // Write delegates to bytes.Buffer. -func (u *BytesWriter) Write(ctx context.Context, p []byte) (int, error) { +func (u *BytesWriter) Write(_ context.Context, p []byte) (int, error) { return u.buf.Write(p) } // Close delegates to bytes.Buffer. -func (u *BytesWriter) Close(ctx context.Context) error { +func (*BytesWriter) Close(_ context.Context) error { // noop return nil } diff --git a/br/pkg/stream/BUILD.bazel b/br/pkg/stream/BUILD.bazel index 15ee92d85b2a2..60d6f68acf0c9 100644 --- a/br/pkg/stream/BUILD.bazel +++ b/br/pkg/stream/BUILD.bazel @@ -8,6 +8,7 @@ go_library( "rewrite_meta_rawkv.go", "stream_mgr.go", "stream_status.go", + "util.go", ], importpath = "github.com/pingcap/tidb/br/pkg/stream", visibility = ["//visibility:public"], @@ -45,8 +46,10 @@ go_test( "meta_kv_test.go", "rewrite_meta_rawkv_test.go", "stream_misc_test.go", + "util_test.go", ], embed = [":stream"], + flaky = True, deps = [ "//br/pkg/streamhelper", "//meta", @@ -56,5 +59,6 @@ go_test( "//util/table-filter", "@com_github_pingcap_kvproto//pkg/brpb", "@com_github_stretchr_testify//require", + "@com_github_tikv_client_go_v2//oracle", ], ) diff --git a/br/pkg/stream/meta_kv.go b/br/pkg/stream/meta_kv.go index 323ae40c0aeeb..9d054f0bef454 100644 --- a/br/pkg/stream/meta_kv.go +++ b/br/pkg/stream/meta_kv.go @@ -179,6 +179,14 @@ func (v *RawWriteCFValue) UpdateShortValue(value []byte) { v.shortValue = value } +func (v *RawWriteCFValue) GetStartTs() uint64 { + return v.startTs +} + +func (v *RawWriteCFValue) GetWriteType() byte { + return v.t +} + // EncodeTo encodes the RawWriteCFValue to get encoded value. func (v *RawWriteCFValue) EncodeTo() []byte { data := make([]byte, 0, 9) diff --git a/br/pkg/stream/rewrite_meta_rawkv.go b/br/pkg/stream/rewrite_meta_rawkv.go index 84f1b3d200048..b8e9599f17ce8 100644 --- a/br/pkg/stream/rewrite_meta_rawkv.go +++ b/br/pkg/stream/rewrite_meta_rawkv.go @@ -54,11 +54,13 @@ type DBReplace struct { } type SchemasReplace struct { - DbMap map[OldID]*DBReplace - RewriteTS uint64 - TableFilter filter.Filter - genGenGlobalID func(ctx context.Context) (int64, error) - genGenGlobalIDs func(ctx context.Context, n int) ([]int64, error) + DbMap map[OldID]*DBReplace + RewriteTS uint64 + TableFilter filter.Filter + genGenGlobalID func(ctx context.Context) (int64, error) + genGenGlobalIDs func(ctx context.Context, n int) ([]int64, error) + insertDeleteRangeForTable func(jobID int64, tableIDs []int64) + insertDeleteRangeForIndex func(jobID int64, elementID *int64, tableID int64, indexIDs []int64) } // NewTableReplace creates a TableReplace struct. @@ -87,13 +89,17 @@ func NewSchemasReplace( tableFilter filter.Filter, genID func(ctx context.Context) (int64, error), genIDs func(ctx context.Context, n int) ([]int64, error), + insertDeleteRangeForTable func(jobID int64, tableIDs []int64), + insertDeleteRangeForIndex func(jobID int64, elementID *int64, tableID int64, indexIDs []int64), ) *SchemasReplace { return &SchemasReplace{ - DbMap: dbMap, - RewriteTS: restoreTS, - TableFilter: tableFilter, - genGenGlobalID: genID, - genGenGlobalIDs: genIDs, + DbMap: dbMap, + RewriteTS: restoreTS, + TableFilter: tableFilter, + genGenGlobalID: genID, + genGenGlobalIDs: genIDs, + insertDeleteRangeForTable: insertDeleteRangeForTable, + insertDeleteRangeForIndex: insertDeleteRangeForIndex, } } @@ -404,7 +410,7 @@ func (sr *SchemasReplace) rewriteValue( } // RewriteKvEntry uses to rewrite tableID/dbID in entry.key and entry.value -func (sr *SchemasReplace) RewriteKvEntry(e *kv.Entry, cf string, insertDeleteRangeForTable InsertDeleteRangeForTable, insertDeleteRangeForIndex InsertDeleteRangeForIndex) (*kv.Entry, error) { +func (sr *SchemasReplace) RewriteKvEntry(e *kv.Entry, cf string) (*kv.Entry, error) { // skip mDDLJob if !strings.HasPrefix(string(e.Key), "mDB") { @@ -416,13 +422,8 @@ func (sr *SchemasReplace) RewriteKvEntry(e *kv.Entry, cf string, insertDeleteRan // The value in default-cf that can Decode() need restore. return nil, nil } - if jobNeedGC(job) { - return nil, sr.deleteRange(job, insertDeleteRangeForTable, insertDeleteRangeForIndex) - } - if job.Type == model.ActionExchangeTablePartition { - return nil, errors.Errorf("restore of ddl `exchange-table-partition` is not supported") - } + return nil, sr.tryToGCJob(job) } return nil, nil } @@ -451,23 +452,32 @@ func (sr *SchemasReplace) RewriteKvEntry(e *kv.Entry, cf string, insertDeleteRan } } -type InsertDeleteRangeForTable func(int64, []int64) -type InsertDeleteRangeForIndex func(int64, *int64, int64, []int64) - -func jobNeedGC(job *model.Job) bool { +func (sr *SchemasReplace) tryToGCJob(job *model.Job) error { if !job.IsCancelled() { switch job.Type { case model.ActionAddIndex, model.ActionAddPrimaryKey: - return job.State == model.JobStateRollbackDone + if job.State == model.JobStateRollbackDone { + return sr.deleteRange(job) + } + return nil case model.ActionDropSchema, model.ActionDropTable, model.ActionTruncateTable, model.ActionDropIndex, model.ActionDropPrimaryKey, model.ActionDropTablePartition, model.ActionTruncateTablePartition, model.ActionDropColumn, model.ActionDropColumns, model.ActionModifyColumn, model.ActionDropIndexes: - return job.State == model.JobStateSynced + return sr.deleteRange(job) + case model.ActionMultiSchemaChange: + for _, sub := range job.MultiSchemaInfo.SubJobs { + proxyJob := sub.ToProxyJob(job) + if err := sr.tryToGCJob(&proxyJob); err != nil { + return err + } + } + case model.ActionExchangeTablePartition: + return errors.Errorf("restore of ddl `exchange-table-partition` is not supported") } } - return false + return nil } -func (sr *SchemasReplace) deleteRange(job *model.Job, insertDeleteRangeForTable InsertDeleteRangeForTable, insertDeleteRangeForIndex InsertDeleteRangeForIndex) error { +func (sr *SchemasReplace) deleteRange(job *model.Job) error { dbReplace, exist := sr.DbMap[job.SchemaID] if !exist { // skip this mddljob, the same below @@ -526,7 +536,7 @@ func (sr *SchemasReplace) deleteRange(job *model.Job, insertDeleteRangeForTable } if len(newTableIDs) > 0 { - insertDeleteRangeForTable(newJobID, newTableIDs) + sr.insertDeleteRangeForTable(newJobID, newTableIDs) } return nil @@ -556,12 +566,12 @@ func (sr *SchemasReplace) deleteRange(job *model.Job, insertDeleteRangeForTable physicalTableIDs[i] = newPid } if len(physicalTableIDs) > 0 { - insertDeleteRangeForTable(newJobID, physicalTableIDs) + sr.insertDeleteRangeForTable(newJobID, physicalTableIDs) } return nil } - insertDeleteRangeForTable(newJobID, []int64{tableReplace.NewTableID}) + sr.insertDeleteRangeForTable(newJobID, []int64{tableReplace.NewTableID}) return nil case model.ActionDropTablePartition, model.ActionTruncateTablePartition: tableReplace, exist := dbReplace.TableMap[job.TableID] @@ -583,7 +593,7 @@ func (sr *SchemasReplace) deleteRange(job *model.Job, insertDeleteRangeForTable physicalTableIDs[i] = newPid } if len(physicalTableIDs) > 0 { - insertDeleteRangeForTable(newJobID, physicalTableIDs) + sr.insertDeleteRangeForTable(newJobID, physicalTableIDs) } return nil // ActionAddIndex, ActionAddPrimaryKey needs do it, because it needs to be rolled back when it's canceled. @@ -595,8 +605,9 @@ func (sr *SchemasReplace) deleteRange(job *model.Job, insertDeleteRangeForTable return nil } var indexID int64 + var ifExists bool var partitionIDs []int64 - if err := job.DecodeArgs(&indexID, &partitionIDs); err != nil { + if err := job.DecodeArgs(&indexID, &ifExists, &partitionIDs); err != nil { return errors.Trace(err) } @@ -611,10 +622,10 @@ func (sr *SchemasReplace) deleteRange(job *model.Job, insertDeleteRangeForTable continue } - insertDeleteRangeForIndex(newJobID, &elementID, newPid, indexIDs) + sr.insertDeleteRangeForIndex(newJobID, &elementID, newPid, indexIDs) } } else { - insertDeleteRangeForIndex(newJobID, &elementID, tableReplace.NewTableID, indexIDs) + sr.insertDeleteRangeForIndex(newJobID, &elementID, tableReplace.NewTableID, indexIDs) } return nil case model.ActionDropIndex, model.ActionDropPrimaryKey: @@ -625,9 +636,10 @@ func (sr *SchemasReplace) deleteRange(job *model.Job, insertDeleteRangeForTable } var indexName interface{} + var ifExists bool var indexID int64 var partitionIDs []int64 - if err := job.DecodeArgs(&indexName, &indexID, &partitionIDs); err != nil { + if err := job.DecodeArgs(&indexName, &ifExists, &indexID, &partitionIDs); err != nil { return errors.Trace(err) } @@ -642,13 +654,13 @@ func (sr *SchemasReplace) deleteRange(job *model.Job, insertDeleteRangeForTable continue } // len(indexIDs) = 1 - insertDeleteRangeForIndex(newJobID, &elementID, newPid, indexIDs) + sr.insertDeleteRangeForIndex(newJobID, &elementID, newPid, indexIDs) } } else { - insertDeleteRangeForIndex(newJobID, &elementID, tableReplace.NewTableID, indexIDs) + sr.insertDeleteRangeForIndex(newJobID, &elementID, tableReplace.NewTableID, indexIDs) } return nil - case model.ActionDropIndexes: + case model.ActionDropIndexes: // // Deprecated, we use ActionMultiSchemaChange instead. var indexIDs []int64 var partitionIDs []int64 if err := job.DecodeArgs(&[]model.CIStr{}, &[]bool{}, &indexIDs, &partitionIDs); err != nil { @@ -673,17 +685,18 @@ func (sr *SchemasReplace) deleteRange(job *model.Job, insertDeleteRangeForTable log.Debug("DropIndexes: try to drop a non-existent table, missing oldPartitionID", zap.Int64("oldPartitionID", oldPid)) continue } - insertDeleteRangeForIndex(newJobID, &elementID, newPid, indexIDs) + sr.insertDeleteRangeForIndex(newJobID, &elementID, newPid, indexIDs) } } else { - insertDeleteRangeForIndex(newJobID, &elementID, tableReplace.NewTableID, indexIDs) + sr.insertDeleteRangeForIndex(newJobID, &elementID, tableReplace.NewTableID, indexIDs) } return nil case model.ActionDropColumn: var colName model.CIStr + var ifExists bool var indexIDs []int64 var partitionIDs []int64 - if err := job.DecodeArgs(&colName, &indexIDs, &partitionIDs); err != nil { + if err := job.DecodeArgs(&colName, &ifExists, &indexIDs, &partitionIDs); err != nil { return errors.Trace(err) } if len(indexIDs) > 0 { @@ -701,14 +714,14 @@ func (sr *SchemasReplace) deleteRange(job *model.Job, insertDeleteRangeForTable log.Debug("DropColumn: try to drop a non-existent table, missing oldPartitionID", zap.Int64("oldPartitionID", oldPid)) continue } - insertDeleteRangeForIndex(newJobID, &elementID, newPid, indexIDs) + sr.insertDeleteRangeForIndex(newJobID, &elementID, newPid, indexIDs) } } else { - insertDeleteRangeForIndex(newJobID, &elementID, tableReplace.NewTableID, indexIDs) + sr.insertDeleteRangeForIndex(newJobID, &elementID, tableReplace.NewTableID, indexIDs) } } return nil - case model.ActionDropColumns: + case model.ActionDropColumns: // Deprecated, we use ActionMultiSchemaChange instead. var colNames []model.CIStr var ifExists []bool var indexIDs []int64 @@ -731,10 +744,10 @@ func (sr *SchemasReplace) deleteRange(job *model.Job, insertDeleteRangeForTable log.Debug("DropColumns: try to drop a non-existent table, missing oldPartitionID", zap.Int64("oldPartitionID", oldPid)) continue } - insertDeleteRangeForIndex(newJobID, &elementID, newPid, indexIDs) + sr.insertDeleteRangeForIndex(newJobID, &elementID, newPid, indexIDs) } } else { - insertDeleteRangeForIndex(newJobID, &elementID, tableReplace.NewTableID, indexIDs) + sr.insertDeleteRangeForIndex(newJobID, &elementID, tableReplace.NewTableID, indexIDs) } } case model.ActionModifyColumn: @@ -760,10 +773,10 @@ func (sr *SchemasReplace) deleteRange(job *model.Job, insertDeleteRangeForTable log.Debug("DropColumn: try to drop a non-existent table, missing oldPartitionID", zap.Int64("oldPartitionID", oldPid)) continue } - insertDeleteRangeForIndex(newJobID, &elementID, newPid, indexIDs) + sr.insertDeleteRangeForIndex(newJobID, &elementID, newPid, indexIDs) } } else { - insertDeleteRangeForIndex(newJobID, &elementID, tableReplace.NewTableID, indexIDs) + sr.insertDeleteRangeForIndex(newJobID, &elementID, tableReplace.NewTableID, indexIDs) } } return nil diff --git a/br/pkg/stream/rewrite_meta_rawkv_test.go b/br/pkg/stream/rewrite_meta_rawkv_test.go index 1f6ad9fde607a..e49cbd3860585 100644 --- a/br/pkg/stream/rewrite_meta_rawkv_test.go +++ b/br/pkg/stream/rewrite_meta_rawkv_test.go @@ -28,14 +28,19 @@ func ProduceValue(tableName string, dbID int64) ([]byte, error) { return json.Marshal(tableInfo) } -func MockEmptySchemasReplace() *SchemasReplace { +func MockEmptySchemasReplace(midr *mockInsertDeleteRange) *SchemasReplace { dbMap := make(map[OldID]*DBReplace) + if midr == nil { + midr = newMockInsertDeleteRange() + } return NewSchemasReplace( dbMap, 0, filter.All(), mockGenGenGlobalID, nil, + midr.mockInsertDeleteRangeForTable, + midr.mockInsertDeleteRangeForIndex, ) } @@ -66,7 +71,7 @@ func TestRewriteValueForDB(t *testing.T) { value, err := produceDBInfoValue(dbName, dbID) require.Nil(t, err) - sr := MockEmptySchemasReplace() + sr := MockEmptySchemasReplace(nil) newValue, needWrite, err := sr.rewriteDBInfo(value) require.Nil(t, err) require.True(t, needWrite) @@ -98,7 +103,7 @@ func TestRewriteValueForTable(t *testing.T) { value, err := produceTableInfoValue(tableName, tableID) require.Nil(t, err) - sr := MockEmptySchemasReplace() + sr := MockEmptySchemasReplace(nil) newValue, needRewrite, err := sr.rewriteTableInfo(value, dbId) require.Nil(t, err) require.True(t, needRewrite) @@ -154,7 +159,7 @@ func TestRewriteValueForPartitionTable(t *testing.T) { value, err := json.Marshal(&tbl) require.Nil(t, err) - sr := MockEmptySchemasReplace() + sr := MockEmptySchemasReplace(nil) newValue, needRewrite, err := sr.rewriteTableInfo(value, dbId) require.Nil(t, err) require.True(t, needRewrite) @@ -256,18 +261,52 @@ var ( dropTable0Job = &model.Job{Type: model.ActionDropTable, SchemaID: mDDLJobDBOldID, TableID: mDDLJobTable0OldID, RawArgs: json.RawMessage(`["",[72,73,74],[""]]`)} dropTable1Job = &model.Job{Type: model.ActionDropTable, SchemaID: mDDLJobDBOldID, TableID: mDDLJobTable1OldID, RawArgs: json.RawMessage(`["",[],[""]]`)} dropTable0Partition1Job = &model.Job{Type: model.ActionDropTablePartition, SchemaID: mDDLJobDBOldID, TableID: mDDLJobTable0OldID, RawArgs: json.RawMessage(`[[73]]`)} - rollBackTable0IndexJob = &model.Job{Type: model.ActionAddIndex, SchemaID: mDDLJobDBOldID, TableID: mDDLJobTable0OldID, RawArgs: json.RawMessage(`[2,[72,73,74]]`)} - rollBackTable1IndexJob = &model.Job{Type: model.ActionAddIndex, SchemaID: mDDLJobDBOldID, TableID: mDDLJobTable1OldID, RawArgs: json.RawMessage(`[2,[]]`)} - dropTable0IndexJob = &model.Job{Type: model.ActionDropIndex, SchemaID: mDDLJobDBOldID, TableID: mDDLJobTable0OldID, RawArgs: json.RawMessage(`["",2,[72,73,74]]`)} - dropTable1IndexJob = &model.Job{Type: model.ActionDropIndex, SchemaID: mDDLJobDBOldID, TableID: mDDLJobTable1OldID, RawArgs: json.RawMessage(`["",2,[]]`)} + rollBackTable0IndexJob = &model.Job{Type: model.ActionAddIndex, SchemaID: mDDLJobDBOldID, TableID: mDDLJobTable0OldID, RawArgs: json.RawMessage(`[2,false,[72,73,74]]`)} + rollBackTable1IndexJob = &model.Job{Type: model.ActionAddIndex, SchemaID: mDDLJobDBOldID, TableID: mDDLJobTable1OldID, RawArgs: json.RawMessage(`[2,false,[]]`)} + dropTable0IndexJob = &model.Job{Type: model.ActionDropIndex, SchemaID: mDDLJobDBOldID, TableID: mDDLJobTable0OldID, RawArgs: json.RawMessage(`["",false,2,[72,73,74]]`)} + dropTable1IndexJob = &model.Job{Type: model.ActionDropIndex, SchemaID: mDDLJobDBOldID, TableID: mDDLJobTable1OldID, RawArgs: json.RawMessage(`["",false,2,[]]`)} dropTable0IndexesJob = &model.Job{Type: model.ActionDropIndexes, SchemaID: mDDLJobDBOldID, TableID: mDDLJobTable0OldID, RawArgs: json.RawMessage(`[[],[],[2,3],[72,73,74]]`)} dropTable1IndexesJob = &model.Job{Type: model.ActionDropIndexes, SchemaID: mDDLJobDBOldID, TableID: mDDLJobTable1OldID, RawArgs: json.RawMessage(`[[],[],[2,3],[]]`)} - dropTable0ColumnJob = &model.Job{Type: model.ActionDropColumn, SchemaID: mDDLJobDBOldID, TableID: mDDLJobTable0OldID, RawArgs: json.RawMessage(`["",[2,3],[72,73,74]]`)} - dropTable1ColumnJob = &model.Job{Type: model.ActionDropColumn, SchemaID: mDDLJobDBOldID, TableID: mDDLJobTable1OldID, RawArgs: json.RawMessage(`["",[2,3],[]]`)} + dropTable0ColumnJob = &model.Job{Type: model.ActionDropColumn, SchemaID: mDDLJobDBOldID, TableID: mDDLJobTable0OldID, RawArgs: json.RawMessage(`["",false,[2,3],[72,73,74]]`)} + dropTable1ColumnJob = &model.Job{Type: model.ActionDropColumn, SchemaID: mDDLJobDBOldID, TableID: mDDLJobTable1OldID, RawArgs: json.RawMessage(`["",false,[2,3],[]]`)} dropTable0ColumnsJob = &model.Job{Type: model.ActionDropColumns, SchemaID: mDDLJobDBOldID, TableID: mDDLJobTable0OldID, RawArgs: json.RawMessage(`[[],[],[2,3],[72,73,74]]`)} dropTable1ColumnsJob = &model.Job{Type: model.ActionDropColumns, SchemaID: mDDLJobDBOldID, TableID: mDDLJobTable1OldID, RawArgs: json.RawMessage(`[[],[],[2,3],[]]`)} modifyTable0ColumnJob = &model.Job{Type: model.ActionModifyColumn, SchemaID: mDDLJobDBOldID, TableID: mDDLJobTable0OldID, RawArgs: json.RawMessage(`[[2,3],[72,73,74]]`)} modifyTable1ColumnJob = &model.Job{Type: model.ActionModifyColumn, SchemaID: mDDLJobDBOldID, TableID: mDDLJobTable1OldID, RawArgs: json.RawMessage(`[[2,3],[]]`)} + multiSchemaChangeJob0 = &model.Job{ + Type: model.ActionMultiSchemaChange, + SchemaID: mDDLJobDBOldID, + TableID: mDDLJobTable0OldID, + MultiSchemaInfo: &model.MultiSchemaInfo{ + SubJobs: []*model.SubJob{ + { + Type: model.ActionDropIndex, + RawArgs: json.RawMessage(`[{"O":"k1","L":"k1"},false,1,[72,73,74]]`), + }, + { + Type: model.ActionDropIndex, + RawArgs: json.RawMessage(`[{"O":"k2","L":"k2"},false,2,[72,73,74]]`), + }, + }, + }, + } + multiSchemaChangeJob1 = &model.Job{ + Type: model.ActionMultiSchemaChange, + SchemaID: mDDLJobDBOldID, + TableID: mDDLJobTable1OldID, + MultiSchemaInfo: &model.MultiSchemaInfo{ + SubJobs: []*model.SubJob{ + { + Type: model.ActionDropIndex, + RawArgs: json.RawMessage(`[{"O":"k1","L":"k1"},false,1,[]]`), + }, + { + Type: model.ActionDropIndex, + RawArgs: json.RawMessage(`[{"O":"k2","L":"k2"},false,2,[]]`), + }, + }, + }, + } ) type TableDeletQueryArgs struct { @@ -306,7 +345,8 @@ func (midr *mockInsertDeleteRange) mockInsertDeleteRangeForIndex(jobID int64, el } func TestDeleteRangeForMDDLJob(t *testing.T) { - schemaReplace := MockEmptySchemasReplace() + midr := newMockInsertDeleteRange() + schemaReplace := MockEmptySchemasReplace(midr) partitionMap := map[int64]int64{ mDDLJobPartition0OldID: mDDLJobPartition0NewID, mDDLJobPartition1OldID: mDDLJobPartition1NewID, @@ -329,13 +369,11 @@ func TestDeleteRangeForMDDLJob(t *testing.T) { } schemaReplace.DbMap[mDDLJobDBOldID] = dbReplace - midr := newMockInsertDeleteRange() - var targs TableDeletQueryArgs var iargs IndexDeleteQueryArgs var err error // drop schema - err = schemaReplace.deleteRange(dropSchemaJob, midr.mockInsertDeleteRangeForTable, midr.mockInsertDeleteRangeForIndex) + err = schemaReplace.deleteRange(dropSchemaJob) require.NoError(t, err) targs = <-midr.tableCh require.Equal(t, len(targs.tableIDs), len(mDDLJobALLNewTableIDSet)) @@ -345,7 +383,7 @@ func TestDeleteRangeForMDDLJob(t *testing.T) { } // drop table0 - err = schemaReplace.deleteRange(dropTable0Job, midr.mockInsertDeleteRangeForTable, midr.mockInsertDeleteRangeForIndex) + err = schemaReplace.deleteRange(dropTable0Job) require.NoError(t, err) targs = <-midr.tableCh require.Equal(t, len(targs.tableIDs), len(mDDLJobALLNewPartitionIDSet)) @@ -355,21 +393,21 @@ func TestDeleteRangeForMDDLJob(t *testing.T) { } // drop table1 - err = schemaReplace.deleteRange(dropTable1Job, midr.mockInsertDeleteRangeForTable, midr.mockInsertDeleteRangeForIndex) + err = schemaReplace.deleteRange(dropTable1Job) require.NoError(t, err) targs = <-midr.tableCh require.Equal(t, len(targs.tableIDs), 1) require.Equal(t, targs.tableIDs[0], mDDLJobTable1NewID) // drop table partition1 - err = schemaReplace.deleteRange(dropTable0Partition1Job, midr.mockInsertDeleteRangeForTable, midr.mockInsertDeleteRangeForIndex) + err = schemaReplace.deleteRange(dropTable0Partition1Job) require.NoError(t, err) targs = <-midr.tableCh require.Equal(t, len(targs.tableIDs), 1) require.Equal(t, targs.tableIDs[0], mDDLJobPartition1NewID) // roll back add index for table0 - err = schemaReplace.deleteRange(rollBackTable0IndexJob, midr.mockInsertDeleteRangeForTable, midr.mockInsertDeleteRangeForIndex) + err = schemaReplace.deleteRange(rollBackTable0IndexJob) require.NoError(t, err) for i := 0; i < len(mDDLJobALLNewPartitionIDSet); i++ { iargs = <-midr.indexCh @@ -380,7 +418,7 @@ func TestDeleteRangeForMDDLJob(t *testing.T) { } // roll back add index for table1 - err = schemaReplace.deleteRange(rollBackTable1IndexJob, midr.mockInsertDeleteRangeForTable, midr.mockInsertDeleteRangeForIndex) + err = schemaReplace.deleteRange(rollBackTable1IndexJob) require.NoError(t, err) iargs = <-midr.indexCh require.Equal(t, iargs.tableID, mDDLJobTable1NewID) @@ -388,7 +426,7 @@ func TestDeleteRangeForMDDLJob(t *testing.T) { require.Equal(t, iargs.indexIDs[0], int64(2)) // drop index for table0 - err = schemaReplace.deleteRange(dropTable0IndexJob, midr.mockInsertDeleteRangeForTable, midr.mockInsertDeleteRangeForIndex) + err = schemaReplace.deleteRange(dropTable0IndexJob) require.NoError(t, err) for i := 0; i < len(mDDLJobALLNewPartitionIDSet); i++ { iargs = <-midr.indexCh @@ -399,7 +437,7 @@ func TestDeleteRangeForMDDLJob(t *testing.T) { } // drop index for table1 - err = schemaReplace.deleteRange(dropTable1IndexJob, midr.mockInsertDeleteRangeForTable, midr.mockInsertDeleteRangeForIndex) + err = schemaReplace.deleteRange(dropTable1IndexJob) require.NoError(t, err) iargs = <-midr.indexCh require.Equal(t, iargs.tableID, mDDLJobTable1NewID) @@ -407,7 +445,7 @@ func TestDeleteRangeForMDDLJob(t *testing.T) { require.Equal(t, iargs.indexIDs[0], int64(2)) // drop indexes for table0 - err = schemaReplace.deleteRange(dropTable0IndexesJob, midr.mockInsertDeleteRangeForTable, midr.mockInsertDeleteRangeForIndex) + err = schemaReplace.deleteRange(dropTable0IndexesJob) require.NoError(t, err) for i := 0; i < len(mDDLJobALLNewPartitionIDSet); i++ { iargs = <-midr.indexCh @@ -421,7 +459,7 @@ func TestDeleteRangeForMDDLJob(t *testing.T) { } // drop indexes for table1 - err = schemaReplace.deleteRange(dropTable1IndexesJob, midr.mockInsertDeleteRangeForTable, midr.mockInsertDeleteRangeForIndex) + err = schemaReplace.deleteRange(dropTable1IndexesJob) require.NoError(t, err) iargs = <-midr.indexCh require.Equal(t, iargs.tableID, mDDLJobTable1NewID) @@ -432,7 +470,7 @@ func TestDeleteRangeForMDDLJob(t *testing.T) { } // drop column for table0 - err = schemaReplace.deleteRange(dropTable0ColumnJob, midr.mockInsertDeleteRangeForTable, midr.mockInsertDeleteRangeForIndex) + err = schemaReplace.deleteRange(dropTable0ColumnJob) require.NoError(t, err) for i := 0; i < len(mDDLJobALLNewPartitionIDSet); i++ { iargs = <-midr.indexCh @@ -446,7 +484,7 @@ func TestDeleteRangeForMDDLJob(t *testing.T) { } // drop column for table1 - err = schemaReplace.deleteRange(dropTable1ColumnJob, midr.mockInsertDeleteRangeForTable, midr.mockInsertDeleteRangeForIndex) + err = schemaReplace.deleteRange(dropTable1ColumnJob) require.NoError(t, err) iargs = <-midr.indexCh require.Equal(t, iargs.tableID, mDDLJobTable1NewID) @@ -457,7 +495,7 @@ func TestDeleteRangeForMDDLJob(t *testing.T) { } // drop columns for table0 - err = schemaReplace.deleteRange(dropTable0ColumnsJob, midr.mockInsertDeleteRangeForTable, midr.mockInsertDeleteRangeForIndex) + err = schemaReplace.deleteRange(dropTable0ColumnsJob) require.NoError(t, err) for i := 0; i < len(mDDLJobALLNewPartitionIDSet); i++ { iargs = <-midr.indexCh @@ -471,7 +509,7 @@ func TestDeleteRangeForMDDLJob(t *testing.T) { } // drop columns for table1 - err = schemaReplace.deleteRange(dropTable1ColumnsJob, midr.mockInsertDeleteRangeForTable, midr.mockInsertDeleteRangeForIndex) + err = schemaReplace.deleteRange(dropTable1ColumnsJob) require.NoError(t, err) iargs = <-midr.indexCh require.Equal(t, iargs.tableID, mDDLJobTable1NewID) @@ -482,7 +520,7 @@ func TestDeleteRangeForMDDLJob(t *testing.T) { } // drop columns for table0 - err = schemaReplace.deleteRange(modifyTable0ColumnJob, midr.mockInsertDeleteRangeForTable, midr.mockInsertDeleteRangeForIndex) + err = schemaReplace.deleteRange(modifyTable0ColumnJob) require.NoError(t, err) for i := 0; i < len(mDDLJobALLNewPartitionIDSet); i++ { iargs = <-midr.indexCh @@ -496,7 +534,7 @@ func TestDeleteRangeForMDDLJob(t *testing.T) { } // drop columns for table1 - err = schemaReplace.deleteRange(modifyTable1ColumnJob, midr.mockInsertDeleteRangeForTable, midr.mockInsertDeleteRangeForIndex) + err = schemaReplace.deleteRange(modifyTable1ColumnJob) require.NoError(t, err) iargs = <-midr.indexCh require.Equal(t, iargs.tableID, mDDLJobTable1NewID) @@ -505,4 +543,27 @@ func TestDeleteRangeForMDDLJob(t *testing.T) { _, exist := mDDLJobALLIndexesIDSet[indexID] require.True(t, exist) } + + // drop indexes(multi-schema-change) for table0 + err = schemaReplace.tryToGCJob(multiSchemaChangeJob0) + require.NoError(t, err) + for l := 0; l < 2; l++ { + for i := 0; i < len(mDDLJobALLNewPartitionIDSet); i++ { + iargs = <-midr.indexCh + _, exist := mDDLJobALLNewPartitionIDSet[iargs.tableID] + require.True(t, exist) + require.Equal(t, len(iargs.indexIDs), 1) + require.Equal(t, iargs.indexIDs[0], int64(l+1)) + } + } + + // drop indexes(multi-schema-change) for table1 + err = schemaReplace.tryToGCJob(multiSchemaChangeJob1) + require.NoError(t, err) + for l := 0; l < 2; l++ { + iargs = <-midr.indexCh + require.Equal(t, iargs.tableID, mDDLJobTable1NewID) + require.Equal(t, len(iargs.indexIDs), 1) + require.Equal(t, iargs.indexIDs[0], int64(l+1)) + } } diff --git a/br/pkg/stream/stream_mgr.go b/br/pkg/stream/stream_mgr.go index 0eccada182f06..c7604b62b2de2 100644 --- a/br/pkg/stream/stream_mgr.go +++ b/br/pkg/stream/stream_mgr.go @@ -36,6 +36,8 @@ import ( const ( streamBackupMetaPrefix = "v1/backupmeta" + streamBackupGlobalCheckpointPrefix = "v1/global_checkpoint" + metaDataWorkerPoolSize = 128 ) @@ -43,6 +45,10 @@ func GetStreamBackupMetaPrefix() string { return streamBackupMetaPrefix } +func GetStreamBackupGlobalCheckpointPrefix() string { + return streamBackupGlobalCheckpointPrefix +} + // appendTableObserveRanges builds key ranges corresponding to `tblIDS`. func appendTableObserveRanges(tblIDs []int64) []kv.KeyRange { krs := make([]kv.KeyRange, 0, len(tblIDs)) diff --git a/br/pkg/stream/stream_status.go b/br/pkg/stream/stream_status.go index 53ab1a0fc2499..7d05a26c5a029 100644 --- a/br/pkg/stream/stream_status.go +++ b/br/pkg/stream/stream_status.go @@ -36,6 +36,8 @@ type TaskStatus struct { Info backuppb.StreamBackupTaskInfo // paused checks whether the task is paused. paused bool + // global checkpoint from storage + globalCheckpoint uint64 // Checkpoints collects the checkpoints. Checkpoints []Checkpoint // Total QPS of the task in recent seconds. @@ -117,9 +119,9 @@ func (p *printByTable) AddTask(task TaskStatus) { table := p.console.CreateTable() table.Add("name", task.Info.Name) table.Add("status", task.colorfulStatusString()) - table.Add("start", fmt.Sprint(oracle.GetTimeFromTS(task.Info.StartTs))) + table.Add("start", fmt.Sprint(FormatDate(oracle.GetTimeFromTS(task.Info.StartTs)))) if task.Info.EndTs > 0 { - table.Add("end", fmt.Sprint(oracle.GetTimeFromTS(task.Info.EndTs))) + table.Add("end", fmt.Sprint(FormatDate(oracle.GetTimeFromTS(task.Info.EndTs)))) } s := storage.FormatBackendURL(task.Info.GetStorage()) table.Add("storage", s.String()) @@ -130,14 +132,13 @@ func (p *printByTable) AddTask(task TaskStatus) { pTime := oracle.GetTimeFromTS(ts) gap := now.Sub(pTime).Round(time.Second) gapColor := color.New(color.FgGreen) - if gap > 5*time.Minute { + if gap > 10*time.Minute { gapColor = color.New(color.FgRed) } - info := fmt.Sprintf("%s; gap=%s", pTime, gapColor.Sprint(gap)) + info := fmt.Sprintf("%s; gap=%s", FormatDate(pTime), gapColor.Sprint(gap)) return info } - cp := task.GetMinStoreCheckpoint() - table.Add("checkpoint[global]", formatTS(cp.TS)) + table.Add("checkpoint[global]", formatTS(task.globalCheckpoint)) p.addCheckpoints(&task, table, formatTS) for store, e := range task.LastErrors { table.Add(fmt.Sprintf("error[store=%d]", store), e.ErrorCode) @@ -191,16 +192,15 @@ func (p *printByJSON) PrintTasks() { LastError backuppb.StreamBackupError `json:"last_error"` } type jsonTask struct { - Name string `json:"name"` - StartTS uint64 `json:"start_ts,omitempty"` - EndTS uint64 `json:"end_ts,omitempty"` - TableFilter []string `json:"table_filter"` - Progress []storeProgress `json:"progress"` - Storage string `json:"storage"` - CheckpointTS uint64 `json:"checkpoint"` - EstQPS float64 `json:"estimate_qps"` - LastErrors []storeLastError `json:"last_errors"` - AllCheckpoints []Checkpoint `json:"all_checkpoints"` + Name string `json:"name"` + StartTS uint64 `json:"start_ts,omitempty"` + EndTS uint64 `json:"end_ts,omitempty"` + TableFilter []string `json:"table_filter"` + Progress []storeProgress `json:"progress"` + Storage string `json:"storage"` + CheckpointTS uint64 `json:"checkpoint"` + EstQPS float64 `json:"estimate_qps"` + LastErrors []storeLastError `json:"last_errors"` } taskToJSON := func(t TaskStatus) jsonTask { s := storage.FormatBackendURL(t.Info.GetStorage()) @@ -220,18 +220,16 @@ func (p *printByJSON) PrintTasks() { LastError: lastError, }) } - cp := t.GetMinStoreCheckpoint() return jsonTask{ - Name: t.Info.GetName(), - StartTS: t.Info.GetStartTs(), - EndTS: t.Info.GetEndTs(), - TableFilter: t.Info.GetTableFilter(), - Progress: sp, - Storage: s.String(), - CheckpointTS: cp.TS, - EstQPS: t.QPS, - LastErrors: se, - AllCheckpoints: t.Checkpoints, + Name: t.Info.GetName(), + StartTS: t.Info.GetStartTs(), + EndTS: t.Info.GetEndTs(), + TableFilter: t.Info.GetTableFilter(), + Progress: sp, + Storage: s.String(), + CheckpointTS: t.globalCheckpoint, + EstQPS: t.QPS, + LastErrors: se, } } mustMarshal := func(i interface{}) string { @@ -359,6 +357,10 @@ func (ctl *StatusController) fillTask(ctx context.Context, task Task) (TaskStatu return s, errors.Annotatef(err, "failed to get progress of task %s", s.Info.Name) } + if s.globalCheckpoint, err = task.GetStorageCheckpoint(ctx); err != nil { + return s, errors.Annotatef(err, "failed to get storage checkpoint of task %s", s.Info.Name) + } + s.LastErrors, err = task.LastError(ctx) if err != nil { return s, err diff --git a/br/pkg/stream/util.go b/br/pkg/stream/util.go new file mode 100644 index 0000000000000..6ad1018f832b6 --- /dev/null +++ b/br/pkg/stream/util.go @@ -0,0 +1,13 @@ +// Copyright 2022 PingCAP, Inc. Licensed under Apache-2.0. + +package stream + +import ( + "time" +) + +const DATE_FORMAT = "2006-01-02 15:04:05.999999999 -0700" + +func FormatDate(ts time.Time) string { + return ts.Format(DATE_FORMAT) +} diff --git a/br/pkg/stream/util_test.go b/br/pkg/stream/util_test.go new file mode 100644 index 0000000000000..1e2d85a565aff --- /dev/null +++ b/br/pkg/stream/util_test.go @@ -0,0 +1,31 @@ +// Copyright 2022 PingCAP, Inc. Licensed under Apache-2.0. + +package stream + +import ( + "testing" + + "github.com/stretchr/testify/require" + "github.com/tikv/client-go/v2/oracle" +) + +func TestDateFormat(t *testing.T) { + cases := []struct { + ts uint64 + target string + }{ + { + 434604259287760897, + "2022-07-15 19:14:39.534 +0800", + }, + { + 434605479096221697, + "2022-07-15 20:32:12.734 +0800", + }, + } + + for _, ca := range cases { + date := FormatDate(oracle.GetTimeFromTS(ca.ts)) + require.Equal(t, date, ca.target) + } +} diff --git a/br/pkg/streamhelper/BUILD.bazel b/br/pkg/streamhelper/BUILD.bazel index 4af832cbf1c26..e25d04c56387a 100644 --- a/br/pkg/streamhelper/BUILD.bazel +++ b/br/pkg/streamhelper/BUILD.bazel @@ -26,6 +26,7 @@ go_library( "//kv", "//metrics", "//owner", + "//util/mathutil", "@com_github_gogo_protobuf//proto", "@com_github_golang_protobuf//proto", "@com_github_google_btree//:btree", @@ -43,6 +44,7 @@ go_library( "@org_golang_google_grpc//keepalive", "@org_golang_x_sync//errgroup", "@org_uber_go_zap//:zap", + "@org_uber_go_zap//zapcore", ], ) @@ -52,12 +54,15 @@ go_test( "advancer_test.go", "basic_lib_for_test.go", "integration_test.go", + "regioniter_test.go", "tsheap_test.go", ], + flaky = True, deps = [ ":streamhelper", "//br/pkg/errors", "//br/pkg/logutil", + "//br/pkg/redact", "//br/pkg/storage", "//br/pkg/streamhelper/config", "//kv", diff --git a/br/pkg/streamhelper/advancer.go b/br/pkg/streamhelper/advancer.go index e20516285e962..1dc911b5f81bf 100644 --- a/br/pkg/streamhelper/advancer.go +++ b/br/pkg/streamhelper/advancer.go @@ -109,14 +109,14 @@ func NewCheckpointAdvancer(env Env) *CheckpointAdvancer { // you may need to change the config `AdvancingByCache`. func (c *CheckpointAdvancer) disableCache() { c.cache = NoOPCheckpointCache{} - c.state = fullScan{} + c.state = &fullScan{} } // enable the cache. // also check `AdvancingByCache` in the config. func (c *CheckpointAdvancer) enableCache() { c.cache = NewCheckpoints() - c.state = fullScan{} + c.state = &fullScan{} } // UpdateConfig updates the config for the advancer. @@ -185,6 +185,7 @@ func (c *CheckpointAdvancer) tryAdvance(ctx context.Context, rst RangesSharesTS) defer c.recordTimeCost("try advance", zap.Uint64("checkpoint", rst.TS), zap.Int("len", len(rst.Ranges)))() defer func() { if err != nil { + log.Warn("failed to advance", logutil.ShortError(err), zap.Object("target", rst.Zap())) c.cache.InsertRanges(rst) } }() @@ -225,11 +226,19 @@ func (c *CheckpointAdvancer) tryAdvance(ctx context.Context, rst RangesSharesTS) // CalculateGlobalCheckpointLight tries to advance the global checkpoint by the cache. func (c *CheckpointAdvancer) CalculateGlobalCheckpointLight(ctx context.Context) (uint64, error) { - log.Info("advancer with cache: current tree", zap.Stringer("ct", c.cache)) + log.Info("[log backup advancer hint] advancer with cache: current tree", zap.Stringer("ct", c.cache)) rsts := c.cache.PopRangesWithGapGT(config.DefaultTryAdvanceThreshold) if len(rsts) == 0 { return 0, nil } + samples := rsts + if len(rsts) > 3 { + samples = rsts[:3] + } + for _, sample := range samples { + log.Info("[log backup advancer hint] sample range.", zap.Object("range", sample.Zap()), zap.Int("total-len", len(rsts))) + } + workers := utils.NewWorkerPool(uint(config.DefaultMaxConcurrencyAdvance), "regions") eg, cx := errgroup.WithContext(ctx) for _, rst := range rsts { @@ -242,7 +251,6 @@ func (c *CheckpointAdvancer) CalculateGlobalCheckpointLight(ctx context.Context) if err != nil { return 0, err } - log.Info("advancer with cache: new tree", zap.Stringer("cache", c.cache)) ts := c.cache.CheckpointTS() return ts, nil } @@ -256,13 +264,11 @@ func (c *CheckpointAdvancer) CalculateGlobalCheckpoint(ctx context.Context) (uin nextRun []kv.KeyRange ) defer c.recordTimeCost("record all") - cx, cancel := context.WithTimeout(ctx, c.cfg.MaxBackoffTime) - defer cancel() for { coll := NewClusterCollector(ctx, c.env) coll.setOnSuccessHook(c.cache.InsertRange) for _, u := range thisRun { - err := c.GetCheckpointInRange(cx, u.StartKey, u.EndKey, coll) + err := c.GetCheckpointInRange(ctx, u.StartKey, u.EndKey, coll) if err != nil { return 0, err } @@ -420,6 +426,7 @@ func (c *CheckpointAdvancer) advanceCheckpointBy(ctx context.Context, getCheckpo if err != nil { return err } + log.Info("get checkpoint", zap.Uint64("old", c.lastCheckpoint), zap.Uint64("new", cp)) if cp < c.lastCheckpoint { log.Warn("failed to update global checkpoint: stale", zap.Uint64("old", c.lastCheckpoint), zap.Uint64("new", cp)) } diff --git a/br/pkg/streamhelper/client.go b/br/pkg/streamhelper/client.go index 95c5cb07e2da5..56a87c20d4fd8 100644 --- a/br/pkg/streamhelper/client.go +++ b/br/pkg/streamhelper/client.go @@ -15,6 +15,7 @@ import ( berrors "github.com/pingcap/tidb/br/pkg/errors" "github.com/pingcap/tidb/br/pkg/redact" "github.com/pingcap/tidb/kv" + "github.com/pingcap/tidb/util/mathutil" clientv3 "go.etcd.io/etcd/client/v3" "go.uber.org/zap" ) @@ -299,6 +300,13 @@ type Task struct { Info backuppb.StreamBackupTaskInfo } +func NewTask(client *MetaDataClient, info backuppb.StreamBackupTaskInfo) *Task { + return &Task{ + cli: client, + Info: info, + } +} + // Pause is a shorthand for `metaCli.PauseTask`. func (t *Task) Pause(ctx context.Context) error { return t.cli.PauseTask(ctx, t.Info.Name) @@ -352,6 +360,29 @@ func (t *Task) NextBackupTSList(ctx context.Context) ([]Checkpoint, error) { return cps, nil } +func (t *Task) GetStorageCheckpoint(ctx context.Context) (uint64, error) { + prefix := StorageCheckpointOf(t.Info.Name) + scanner := scanEtcdPrefix(t.cli.Client, prefix) + kvs, err := scanner.AllPages(ctx, 1024) + if err != nil { + return 0, errors.Annotatef(err, "failed to get checkpoints of %s", t.Info.Name) + } + + var storageCheckpoint = t.Info.StartTs + for _, kv := range kvs { + if len(kv.Value) != 8 { + return 0, errors.Annotatef(berrors.ErrPiTRMalformedMetadata, + "the value isn't 64bits (it is %d bytes, value = %s)", + len(kv.Value), + redact.Key(kv.Value)) + } + ts := binary.BigEndian.Uint64(kv.Value) + storageCheckpoint = mathutil.Max(storageCheckpoint, ts) + } + + return storageCheckpoint, nil +} + // MinNextBackupTS query the all next backup ts of a store, returning the minimal next backup ts of the store. func (t *Task) MinNextBackupTS(ctx context.Context, store uint64) (uint64, error) { key := CheckPointOf(t.Info.Name, store) diff --git a/br/pkg/streamhelper/collector.go b/br/pkg/streamhelper/collector.go index 1df39d0633d68..d7c42adbfdda0 100644 --- a/br/pkg/streamhelper/collector.go +++ b/br/pkg/streamhelper/collector.go @@ -192,8 +192,16 @@ func (c *storeCollector) sendPendingRequests(ctx context.Context) error { for _, checkpoint := range cps.Checkpoints { if checkpoint.Err != nil { log.Debug("failed to get region checkpoint", zap.Stringer("err", checkpoint.Err)) + if checkpoint.Err.EpochNotMatch != nil { + metrics.RegionCheckpointFailure.WithLabelValues("epoch-not-match").Inc() + } + if checkpoint.Err.NotLeader != nil { + metrics.RegionCheckpointFailure.WithLabelValues("not-leader").Inc() + } + metrics.RegionCheckpointRequest.WithLabelValues("fail").Inc() c.inconsistent = append(c.inconsistent, c.regionMap[checkpoint.Region.Id]) } else { + metrics.RegionCheckpointRequest.WithLabelValues("success").Inc() if c.onSuccess != nil { c.onSuccess(checkpoint.Checkpoint, c.regionMap[checkpoint.Region.Id]) } diff --git a/br/pkg/streamhelper/config/advancer_conf.go b/br/pkg/streamhelper/config/advancer_conf.go index 21fac65ae0323..9539753c683b8 100644 --- a/br/pkg/streamhelper/config/advancer_conf.go +++ b/br/pkg/streamhelper/config/advancer_conf.go @@ -10,13 +10,16 @@ import ( const ( flagBackoffTime = "backoff-time" - flagMaxBackoffTime = "max-backoff-time" flagTickInterval = "tick-interval" flagFullScanDiffTick = "full-scan-tick" flagAdvancingByCache = "advancing-by-cache" DefaultConsistencyCheckTick = 5 DefaultTryAdvanceThreshold = 3 * time.Minute + DefaultBackOffTime = 5 * time.Second + DefaultTickInterval = 12 * time.Second + DefaultFullScanTick = 4 + DefaultAdvanceByCache = true ) var ( @@ -26,8 +29,6 @@ var ( type Config struct { // The gap between two retries. BackoffTime time.Duration `toml:"backoff-time" json:"backoff-time"` - // When after this time we cannot collect the safe resolved ts, give up. - MaxBackoffTime time.Duration `toml:"max-backoff-time" json:"max-backoff-time"` // The gap between calculating checkpoints. TickDuration time.Duration `toml:"tick-interval" json:"tick-interval"` // The backoff time of full scan. @@ -39,20 +40,18 @@ type Config struct { } func DefineFlagsForCheckpointAdvancerConfig(f *pflag.FlagSet) { - f.Duration(flagBackoffTime, 5*time.Second, "The gap between two retries.") - f.Duration(flagMaxBackoffTime, 20*time.Minute, "After how long we should advance the checkpoint.") - f.Duration(flagTickInterval, 12*time.Second, "From how log we trigger the tick (advancing the checkpoint).") - f.Bool(flagAdvancingByCache, true, "Whether enable the optimization -- use a cached heap to advancing the global checkpoint.") - f.Int(flagFullScanDiffTick, 4, "The backoff of full scan.") + f.Duration(flagBackoffTime, DefaultBackOffTime, "The gap between two retries.") + f.Duration(flagTickInterval, DefaultTickInterval, "From how long we trigger the tick (advancing the checkpoint).") + f.Bool(flagAdvancingByCache, DefaultAdvanceByCache, "Whether enable the optimization -- use a cached heap to advancing the global checkpoint.") + f.Int(flagFullScanDiffTick, DefaultFullScanTick, "The backoff of full scan.") } func Default() Config { return Config{ - BackoffTime: 5 * time.Second, - MaxBackoffTime: 20 * time.Minute, - TickDuration: 12 * time.Second, - FullScanTick: 4, - AdvancingByCache: true, + BackoffTime: DefaultBackOffTime, + TickDuration: DefaultTickInterval, + FullScanTick: DefaultFullScanTick, + AdvancingByCache: DefaultAdvanceByCache, } } @@ -62,10 +61,6 @@ func (conf *Config) GetFromFlags(f *pflag.FlagSet) error { if err != nil { return err } - conf.MaxBackoffTime, err = f.GetDuration(flagMaxBackoffTime) - if err != nil { - return err - } conf.TickDuration, err = f.GetDuration(flagTickInterval) if err != nil { return err diff --git a/br/pkg/streamhelper/integration_test.go b/br/pkg/streamhelper/integration_test.go index 09f50f46e0011..b8817061de79d 100644 --- a/br/pkg/streamhelper/integration_test.go +++ b/br/pkg/streamhelper/integration_test.go @@ -5,9 +5,11 @@ package streamhelper_test import ( "context" + "encoding/binary" "fmt" "net" "net/url" + "path" "testing" "github.com/pingcap/errors" @@ -77,7 +79,7 @@ func simpleRanges(tableCount int) streamhelper.Ranges { func simpleTask(name string, tableCount int) streamhelper.TaskInfo { backend, _ := storage.ParseBackend("noop://", nil) - task, err := streamhelper.NewTask(name). + task, err := streamhelper.NewTaskInfo(name). FromTS(1). UntilTS(1000). WithRanges(simpleRanges(tableCount)...). @@ -136,31 +138,32 @@ func TestIntegration(t *testing.T) { metaCli := streamhelper.MetaDataClient{Client: cli} t.Run("TestBasic", func(t *testing.T) { testBasic(t, metaCli, etcd) }) t.Run("TestForwardProgress", func(t *testing.T) { testForwardProgress(t, metaCli, etcd) }) + t.Run("testGetStorageCheckpoint", func(t *testing.T) { testGetStorageCheckpoint(t, metaCli, etcd) }) t.Run("TestStreamListening", func(t *testing.T) { testStreamListening(t, streamhelper.TaskEventClient{MetaDataClient: metaCli}) }) } func TestChecking(t *testing.T) { noop, _ := storage.ParseBackend("noop://", nil) // The name must not contains slash. - _, err := streamhelper.NewTask("/root"). + _, err := streamhelper.NewTaskInfo("/root"). WithRange([]byte("1"), []byte("2")). WithTableFilter("*.*"). ToStorage(noop). Check() require.ErrorIs(t, errors.Cause(err), berrors.ErrPiTRInvalidTaskInfo) // Must specify the external storage. - _, err = streamhelper.NewTask("root"). + _, err = streamhelper.NewTaskInfo("root"). WithRange([]byte("1"), []byte("2")). WithTableFilter("*.*"). Check() require.ErrorIs(t, errors.Cause(err), berrors.ErrPiTRInvalidTaskInfo) // Must specift the table filter and range? - _, err = streamhelper.NewTask("root"). + _, err = streamhelper.NewTaskInfo("root"). ToStorage(noop). Check() require.ErrorIs(t, errors.Cause(err), berrors.ErrPiTRInvalidTaskInfo) // Happy path. - _, err = streamhelper.NewTask("root"). + _, err = streamhelper.NewTaskInfo("root"). WithRange([]byte("1"), []byte("2")). WithTableFilter("*.*"). ToStorage(noop). @@ -229,6 +232,39 @@ func testForwardProgress(t *testing.T, metaCli streamhelper.MetaDataClient, etcd require.Equal(t, store2Checkpoint, uint64(40)) } +func testGetStorageCheckpoint(t *testing.T, metaCli streamhelper.MetaDataClient, etcd *embed.Etcd) { + var ( + taskName = "my_task" + ctx = context.Background() + value = make([]byte, 8) + ) + + cases := []struct { + storeID string + storageCheckPoint uint64 + }{ + { + "1", + 10001, + }, { + "2", + 10002, + }, + } + for _, c := range cases { + key := path.Join(streamhelper.StorageCheckpointOf(taskName), c.storeID) + binary.BigEndian.PutUint64(value, c.storageCheckPoint) + _, err := metaCli.Put(ctx, key, string(value)) + require.NoError(t, err) + } + + taskInfo := simpleTask(taskName, 1) + task := streamhelper.NewTask(&metaCli, taskInfo.PBInfo) + ts, err := task.GetStorageCheckpoint(ctx) + require.NoError(t, err) + require.Equal(t, uint64(10002), ts) +} + func testStreamListening(t *testing.T, metaCli streamhelper.TaskEventClient) { ctx, cancel := context.WithCancel(context.Background()) taskName := "simple" diff --git a/br/pkg/streamhelper/models.go b/br/pkg/streamhelper/models.go index 265669799a581..8aebfbaaf5aa9 100644 --- a/br/pkg/streamhelper/models.go +++ b/br/pkg/streamhelper/models.go @@ -22,6 +22,7 @@ const ( taskInfoPath = "/info" // nolint:deadcode,varcheck taskCheckpointPath = "/checkpoint" + storageCheckPoint = "/storage-checkpoint" taskRangesPath = "/ranges" taskPausePath = "/pause" taskLastErrorPath = "/last-error" @@ -86,6 +87,11 @@ func GlobalCheckpointOf(task string) string { return path.Join(streamKeyPrefix, taskCheckpointPath, task, checkpointTypeGlobal) } +// StorageCheckpointOf get the prefix path of the `storage checkpoint status` of a task. +func StorageCheckpointOf(task string) string { + return path.Join(streamKeyPrefix, storageCheckPoint, task) +} + // CheckpointOf returns the checkpoint prefix of some store. // Normally it would be /checkpoint//. func CheckPointOf(task string, store uint64) string { @@ -119,7 +125,7 @@ type TaskInfo struct { } // NewTask creates a new task with the name. -func NewTask(name string) *TaskInfo { +func NewTaskInfo(name string) *TaskInfo { return &TaskInfo{ PBInfo: backuppb.StreamBackupTaskInfo{ Name: name, diff --git a/br/pkg/streamhelper/regioniter.go b/br/pkg/streamhelper/regioniter.go index b2bfa0820316c..9f71ebf38b472 100644 --- a/br/pkg/streamhelper/regioniter.go +++ b/br/pkg/streamhelper/regioniter.go @@ -5,13 +5,18 @@ package streamhelper import ( "bytes" "context" + "fmt" "time" "github.com/pingcap/errors" "github.com/pingcap/kvproto/pkg/metapb" + "github.com/pingcap/log" berrors "github.com/pingcap/tidb/br/pkg/errors" + "github.com/pingcap/tidb/br/pkg/logutil" "github.com/pingcap/tidb/br/pkg/redact" "github.com/pingcap/tidb/br/pkg/utils" + "github.com/pingcap/tidb/kv" + "github.com/pingcap/tidb/metrics" ) const ( @@ -44,6 +49,13 @@ type RegionIter struct { PageSize int } +func (r *RegionIter) String() string { + return fmt.Sprintf("RegionIter:%s;%v;from=%s", + logutil.StringifyKeys([]kv.KeyRange{{StartKey: r.currentStartKey, EndKey: r.endKey}}), + r.infScanFinished, + redact.Key(r.startKey)) +} + // IterateRegion creates an iterater over the region range. func IterateRegion(cli RegionScanner, startKey, endKey []byte) *RegionIter { return &RegionIter{ @@ -85,8 +97,17 @@ func CheckRegionConsistency(startKey, endKey []byte, regions []RegionWithLeader) // Next get the next page of regions. func (r *RegionIter) Next(ctx context.Context) ([]RegionWithLeader, error) { var rs []RegionWithLeader - state := utils.InitialRetryState(30, 500*time.Millisecond, 500*time.Millisecond) - err := utils.WithRetry(ctx, func() error { + state := utils.InitialRetryState(8, 500*time.Millisecond, 500*time.Millisecond) + err := utils.WithRetry(ctx, func() (retErr error) { + defer func() { + if retErr != nil { + log.Warn("failed with trying to scan regions", logutil.ShortError(retErr), + logutil.Key("start", r.currentStartKey), + logutil.Key("end", r.endKey), + ) + } + metrics.RegionCheckpointFailure.WithLabelValues("retryable-scan-region").Inc() + }() regions, err := r.cli.RegionScan(ctx, r.currentStartKey, r.endKey, r.PageSize) if err != nil { return err @@ -115,8 +136,11 @@ func (r *RegionIter) Next(ctx context.Context) ([]RegionWithLeader, error) { // Done checks whether the iteration is done. func (r *RegionIter) Done() bool { + // special case: we want to scan to the end of key space. + // at this time, comparing currentStartKey and endKey may be misleading when + // they are both "". if len(r.endKey) == 0 { return r.infScanFinished } - return bytes.Compare(r.currentStartKey, r.endKey) >= 0 + return r.infScanFinished || bytes.Compare(r.currentStartKey, r.endKey) >= 0 } diff --git a/br/pkg/streamhelper/regioniter_test.go b/br/pkg/streamhelper/regioniter_test.go new file mode 100644 index 0000000000000..42d4445f70679 --- /dev/null +++ b/br/pkg/streamhelper/regioniter_test.go @@ -0,0 +1,184 @@ +// Copyright 2022 PingCAP, Inc. Licensed under Apache-2.0. + +package streamhelper_test + +import ( + "bytes" + "context" + "fmt" + "strings" + "testing" + + "github.com/pingcap/kvproto/pkg/metapb" + "github.com/pingcap/tidb/br/pkg/logutil" + "github.com/pingcap/tidb/br/pkg/redact" + "github.com/pingcap/tidb/br/pkg/streamhelper" + "github.com/pingcap/tidb/kv" + "github.com/stretchr/testify/require" +) + +type constantRegions []streamhelper.RegionWithLeader + +func regionToRange(region streamhelper.RegionWithLeader) kv.KeyRange { + return kv.KeyRange{ + StartKey: region.Region.StartKey, + EndKey: region.Region.EndKey, + } +} + +func (c constantRegions) EqualsTo(other []streamhelper.RegionWithLeader) bool { + if len(c) != len(other) { + return false + } + for i := 0; i < len(c); i++ { + r1 := regionToRange(c[i]) + r2 := regionToRange(other[i]) + + equals := bytes.Equal(r1.StartKey, r2.StartKey) && bytes.Equal(r1.EndKey, r2.EndKey) + if !equals { + return false + } + } + return true +} + +func (c constantRegions) String() string { + segs := make([]string, 0, len(c)) + for _, region := range c { + segs = append(segs, fmt.Sprintf("%d%s", region.Region.Id, logutil.StringifyRange(regionToRange(region)))) + } + return strings.Join(segs, ";") +} + +// RegionScan gets a list of regions, starts from the region that contains key. +// Limit limits the maximum number of regions returned. +func (c constantRegions) RegionScan(ctx context.Context, key []byte, endKey []byte, limit int) ([]streamhelper.RegionWithLeader, error) { + result := make([]streamhelper.RegionWithLeader, 0, limit) + for _, region := range c { + if overlaps(kv.KeyRange{StartKey: key, EndKey: endKey}, kv.KeyRange{StartKey: region.Region.StartKey, EndKey: region.Region.EndKey}) && len(result) < limit { + result = append(result, region) + } else if bytes.Compare(region.Region.StartKey, key) > 0 { + break + } + } + fmt.Printf("all = %s\n", c) + fmt.Printf("start = %s, end = %s, result = %s\n", redact.Key(key), redact.Key(endKey), constantRegions(result)) + return result, nil +} + +func makeSubrangeRegions(keys ...string) constantRegions { + if len(keys) == 0 { + return nil + } + id := uint64(1) + regions := make([]streamhelper.RegionWithLeader, 0, len(keys)+1) + start := keys[0] + for _, key := range keys[1:] { + region := streamhelper.RegionWithLeader{ + Region: &metapb.Region{ + Id: id, + StartKey: []byte(start), + EndKey: []byte(key), + }, + } + id++ + start = key + regions = append(regions, region) + } + return constantRegions(regions) + +} + +func useRegions(keys ...string) constantRegions { + ks := []string{""} + ks = append(ks, keys...) + ks = append(ks, "") + return makeSubrangeRegions(ks...) +} + +func manyRegions(from, to int) []string { + regions := []string{} + for i := from; i < to; i++ { + regions = append(regions, fmt.Sprintf("%06d", i)) + } + return regions +} + +func appendInitial(a []string) []string { + return append([]string{""}, a...) +} + +func appendFinal(a []string) []string { + return append(a, "") +} + +func TestRegionIterator(t *testing.T) { + type Case struct { + // boundary of regions, doesn't include the initial key (implicitly "") + // or the final key (implicitly +inf) + // Example: + // ["0001", "0002"] => [Region("", "0001"), Region("0001", "0002"), Region("0002", "")] + RegionBoundary []string + StartKey string + EndKey string + // border of required regions, include the initial key and the final key. + // Example: + // ["0001", "0002", ""] => [Region("0001", "0002"), Region("0002", "")] + RequiredRegionBoundary []string + } + + run := func(t *testing.T, c Case) { + req := require.New(t) + regions := useRegions(c.RegionBoundary...) + requiredRegions := makeSubrangeRegions(c.RequiredRegionBoundary...) + ctx := context.Background() + + collected := make([]streamhelper.RegionWithLeader, 0, len(c.RequiredRegionBoundary)) + iter := streamhelper.IterateRegion(regions, []byte(c.StartKey), []byte(c.EndKey)) + for !iter.Done() { + regions, err := iter.Next(ctx) + req.NoError(err) + collected = append(collected, regions...) + } + req.True(requiredRegions.EqualsTo(collected), "%s :: %s", requiredRegions, collected) + } + + cases := []Case{ + { + RegionBoundary: []string{"0001", "0003", "0008", "0078"}, + StartKey: "0077", + EndKey: "0079", + RequiredRegionBoundary: []string{"0008", "0078", ""}, + }, + { + RegionBoundary: []string{"0001", "0005", "0008", "0097"}, + StartKey: "0000", + EndKey: "0008", + RequiredRegionBoundary: []string{"", "0001", "0005", "0008"}, + }, + { + RegionBoundary: manyRegions(0, 10000), + StartKey: "000001", + EndKey: "005000", + RequiredRegionBoundary: manyRegions(1, 5001), + }, + { + RegionBoundary: manyRegions(0, 10000), + StartKey: "000100", + EndKey: "", + RequiredRegionBoundary: appendFinal(manyRegions(100, 10000)), + }, + { + RegionBoundary: manyRegions(0, 10000), + StartKey: "", + EndKey: "003000", + RequiredRegionBoundary: appendInitial(manyRegions(0, 3001)), + }, + } + + for i, c := range cases { + t.Run(fmt.Sprintf("case#%d", i), func(t *testing.T) { + run(t, c) + }) + } +} diff --git a/br/pkg/streamhelper/tsheap.go b/br/pkg/streamhelper/tsheap.go index 64669a151467a..75d674c56b18e 100644 --- a/br/pkg/streamhelper/tsheap.go +++ b/br/pkg/streamhelper/tsheap.go @@ -3,6 +3,7 @@ package streamhelper import ( + "encoding/hex" "fmt" "strings" "sync" @@ -12,8 +13,10 @@ import ( "github.com/pingcap/errors" berrors "github.com/pingcap/tidb/br/pkg/errors" "github.com/pingcap/tidb/br/pkg/logutil" + "github.com/pingcap/tidb/br/pkg/redact" "github.com/pingcap/tidb/kv" "github.com/tikv/client-go/v2/oracle" + "go.uber.org/zap/zapcore" ) // CheckpointsCache is the heap-like cache for checkpoints. @@ -88,6 +91,26 @@ type RangesSharesTS struct { Ranges []kv.KeyRange } +func (rst *RangesSharesTS) Zap() zapcore.ObjectMarshaler { + return zapcore.ObjectMarshalerFunc(func(oe zapcore.ObjectEncoder) error { + rngs := rst.Ranges + if len(rst.Ranges) > 3 { + rngs = rst.Ranges[:3] + } + + oe.AddUint64("checkpoint", rst.TS) + return oe.AddArray("items", zapcore.ArrayMarshalerFunc(func(ae zapcore.ArrayEncoder) error { + return ae.AppendObject(zapcore.ObjectMarshalerFunc(func(oe1 zapcore.ObjectEncoder) error { + for _, rng := range rngs { + oe1.AddString("start-key", redact.String(hex.EncodeToString(rng.StartKey))) + oe1.AddString("end-key", redact.String(hex.EncodeToString(rng.EndKey))) + } + return nil + })) + })) + }) +} + func (rst *RangesSharesTS) String() string { // Make a more friendly string. return fmt.Sprintf("@%sR%d", oracle.GetTimeFromTS(rst.TS).Format("0405"), len(rst.Ranges)) diff --git a/br/pkg/streamhelper/tsheap_test.go b/br/pkg/streamhelper/tsheap_test.go index 843dbf3f42f09..6453ee36a60ab 100644 --- a/br/pkg/streamhelper/tsheap_test.go +++ b/br/pkg/streamhelper/tsheap_test.go @@ -101,6 +101,10 @@ func TestMergeRanges(t *testing.T) { parameter: []kv.KeyRange{r("", "01"), r("01", ""), r("", "02"), r("", "03"), r("01", "02")}, expected: []kv.KeyRange{r("", "")}, }, + { + parameter: []kv.KeyRange{r("", ""), r("", "01"), r("01", ""), r("01", "02")}, + expected: []kv.KeyRange{r("", "")}, + }, } for i, c := range cases { diff --git a/br/pkg/summary/BUILD.bazel b/br/pkg/summary/BUILD.bazel index 897dda0614a1f..8ba52da51dbc4 100644 --- a/br/pkg/summary/BUILD.bazel +++ b/br/pkg/summary/BUILD.bazel @@ -23,6 +23,7 @@ go_test( "main_test.go", ], embed = [":summary"], + flaky = True, deps = [ "//testkit/testsetup", "@com_github_stretchr_testify//require", diff --git a/br/pkg/summary/collector.go b/br/pkg/summary/collector.go index 2ba603619f759..705c26df3e4ac 100644 --- a/br/pkg/summary/collector.go +++ b/br/pkg/summary/collector.go @@ -92,7 +92,7 @@ type logCollector struct { } // NewLogCollector returns a new LogCollector. -func NewLogCollector(log logFunc) LogCollector { +func NewLogCollector(logf logFunc) LogCollector { return &logCollector{ successUnitCount: 0, failureUnitCount: 0, @@ -102,7 +102,7 @@ func NewLogCollector(log logFunc) LogCollector { durations: make(map[string]time.Duration), ints: make(map[string]int), uints: make(map[string]uint64), - log: log, + log: logf, startTime: time.Now(), } } diff --git a/br/pkg/summary/summary.go b/br/pkg/summary/summary.go index b8595350b86d2..7ae488785760e 100644 --- a/br/pkg/summary/summary.go +++ b/br/pkg/summary/summary.go @@ -48,6 +48,7 @@ func Summary(name string) { collector.Summary(name) } +// Log outputs log. func Log(msg string, fields ...zap.Field) { collector.Log(msg, fields...) } diff --git a/br/pkg/task/BUILD.bazel b/br/pkg/task/BUILD.bazel index b01d47de6de22..c07fb5c8213fc 100644 --- a/br/pkg/task/BUILD.bazel +++ b/br/pkg/task/BUILD.bazel @@ -39,6 +39,7 @@ go_library( "//statistics/handle", "//types", "//util/mathutil", + "//util/sqlexec", "//util/table-filter", "@com_github_docker_go_units//:go-units", "@com_github_fatih_color//:color", @@ -75,10 +76,10 @@ go_test( "stream_test.go", ], embed = [":task"], + flaky = True, deps = [ "//br/pkg/conn", "//br/pkg/metautil", - "//br/pkg/pdutil", "//br/pkg/restore", "//br/pkg/storage", "//br/pkg/stream", diff --git a/br/pkg/task/backup.go b/br/pkg/task/backup.go index 311f57e9de020..a80806b09e236 100644 --- a/br/pkg/task/backup.go +++ b/br/pkg/task/backup.go @@ -18,6 +18,7 @@ import ( "github.com/pingcap/log" "github.com/pingcap/tidb/br/pkg/backup" "github.com/pingcap/tidb/br/pkg/checksum" + "github.com/pingcap/tidb/br/pkg/conn" berrors "github.com/pingcap/tidb/br/pkg/errors" "github.com/pingcap/tidb/br/pkg/glue" "github.com/pingcap/tidb/br/pkg/logutil" @@ -252,7 +253,7 @@ func RunBackup(c context.Context, g glue.Glue, cmdName string, cfg *BackupConfig // Domain loads all table info into memory. By skipping Domain, we save // lots of memory (about 500MB for 40K 40 fields YCSB tables). needDomain := !skipStats - mgr, err := NewMgr(ctx, g, cfg.PD, cfg.TLS, GetKeepalive(&cfg.Config), cfg.CheckRequirements, needDomain) + mgr, err := NewMgr(ctx, g, cfg.PD, cfg.TLS, GetKeepalive(&cfg.Config), cfg.CheckRequirements, needDomain, conn.NormalVersionChecker) if err != nil { return errors.Trace(err) } @@ -398,7 +399,7 @@ func RunBackup(c context.Context, g glue.Glue, cmdName string, cfg *BackupConfig } metawriter.StartWriteMetasAsync(ctx, metautil.AppendDDL) - err = backup.WriteBackupDDLJobs(metawriter, mgr.GetStorage(), cfg.LastBackupTS, backupTS) + err = backup.WriteBackupDDLJobs(metawriter, se.GetSessionCtx(), mgr.GetStorage(), cfg.LastBackupTS, backupTS) if err != nil { return errors.Trace(err) } diff --git a/br/pkg/task/backup_raw.go b/br/pkg/task/backup_raw.go index 7fe34dfb5243e..6bb5aba79c3b1 100644 --- a/br/pkg/task/backup_raw.go +++ b/br/pkg/task/backup_raw.go @@ -11,6 +11,7 @@ import ( backuppb "github.com/pingcap/kvproto/pkg/brpb" "github.com/pingcap/log" "github.com/pingcap/tidb/br/pkg/backup" + "github.com/pingcap/tidb/br/pkg/conn" berrors "github.com/pingcap/tidb/br/pkg/errors" "github.com/pingcap/tidb/br/pkg/glue" "github.com/pingcap/tidb/br/pkg/metautil" @@ -137,7 +138,7 @@ func RunBackupRaw(c context.Context, g glue.Glue, cmdName string, cfg *RawKvConf } // Backup raw does not need domain. needDomain := false - mgr, err := NewMgr(ctx, g, cfg.PD, cfg.TLS, GetKeepalive(&cfg.Config), cfg.CheckRequirements, needDomain) + mgr, err := NewMgr(ctx, g, cfg.PD, cfg.TLS, GetKeepalive(&cfg.Config), cfg.CheckRequirements, needDomain, conn.NormalVersionChecker) if err != nil { return errors.Trace(err) } diff --git a/br/pkg/task/common.go b/br/pkg/task/common.go index 7deada25bd562..d4cf94c1a0f69 100644 --- a/br/pkg/task/common.go +++ b/br/pkg/task/common.go @@ -208,6 +208,9 @@ type Config struct { GRPCKeepaliveTimeout time.Duration `json:"grpc-keepalive-timeout" toml:"grpc-keepalive-timeout"` CipherInfo backuppb.CipherInfo `json:"-" toml:"-"` + + // whether there's explicit filter + ExplicitFilter bool `json:"-" toml:"-"` } // DefineCommonFlags defines the flags common to all BRIE commands. @@ -467,6 +470,7 @@ func (cfg *Config) ParseFromFlags(flags *pflag.FlagSet) error { cfg.Tables = make(map[string]struct{}) var caseSensitive bool if filterFlag := flags.Lookup(flagFilter); filterFlag != nil { + cfg.ExplicitFilter = flags.Changed(flagFilter) cfg.FilterStr = filterFlag.Value.(pflag.SliceValue).GetSlice() cfg.TableFilter, err = filter.Parse(cfg.FilterStr) if err != nil { @@ -562,6 +566,7 @@ func NewMgr(ctx context.Context, keepalive keepalive.ClientParameters, checkRequirements bool, needDomain bool, + versionCheckerType conn.VersionCheckerType, ) (*conn.Mgr, error) { var ( tlsConf *tls.Config @@ -586,7 +591,7 @@ func NewMgr(ctx context.Context, // Is it necessary to remove `StoreBehavior`? return conn.NewMgr( ctx, g, pdAddress, tlsConf, securityOption, keepalive, conn.SkipTiFlash, - checkRequirements, needDomain, + checkRequirements, needDomain, versionCheckerType, ) } diff --git a/br/pkg/task/restore.go b/br/pkg/task/restore.go index a9007fad55923..798bd1420b40d 100644 --- a/br/pkg/task/restore.go +++ b/br/pkg/task/restore.go @@ -401,7 +401,7 @@ func RunRestore(c context.Context, g glue.Glue, cmdName string, cfg *RestoreConf // Restore needs domain to do DDL. needDomain := true keepaliveCfg := GetKeepalive(&cfg.Config) - mgr, err := NewMgr(ctx, g, cfg.PD, cfg.TLS, keepaliveCfg, cfg.CheckRequirements, needDomain) + mgr, err := NewMgr(ctx, g, cfg.PD, cfg.TLS, keepaliveCfg, cfg.CheckRequirements, needDomain, conn.NormalVersionChecker) if err != nil { return errors.Trace(err) } @@ -471,6 +471,22 @@ func RunRestore(c context.Context, g glue.Glue, cmdName string, cfg *RestoreConf return errors.Trace(err) } + // todo: move this check into InitFullClusterRestore, we should move restore config into a separate package + // to avoid import cycle problem which we won't do it in this pr, then refactor this + // + // if it's point restore and reached here, then cmdName=FullRestoreCmd and len(cfg.FullBackupStorage) > 0 + if cmdName == FullRestoreCmd { + client.InitFullClusterRestore(cfg.ExplicitFilter) + } + if client.IsFullClusterRestore() && client.HasBackedUpSysDB() { + if err = client.CheckTargetClusterFresh(ctx); err != nil { + return errors.Trace(err) + } + if err = client.CheckSysTableCompatibility(mgr.GetDomain(), tables); err != nil { + return errors.Trace(err) + } + } + sp := utils.BRServiceSafePoint{ BackupTS: restoreTS, TTL: utils.DefaultBRGCSafePointTTL, diff --git a/br/pkg/task/restore_raw.go b/br/pkg/task/restore_raw.go index 452cccfad8c42..6c15cd9989512 100644 --- a/br/pkg/task/restore_raw.go +++ b/br/pkg/task/restore_raw.go @@ -67,7 +67,7 @@ func RunRestoreRaw(c context.Context, g glue.Glue, cmdName string, cfg *RestoreR // Restore raw does not need domain. needDomain := false - mgr, err := NewMgr(ctx, g, cfg.PD, cfg.TLS, GetKeepalive(&cfg.Config), cfg.CheckRequirements, needDomain) + mgr, err := NewMgr(ctx, g, cfg.PD, cfg.TLS, GetKeepalive(&cfg.Config), cfg.CheckRequirements, needDomain, conn.NormalVersionChecker) if err != nil { return errors.Trace(err) } diff --git a/br/pkg/task/stream.go b/br/pkg/task/stream.go index 160aa5ad6712a..2aecb64aef8e0 100644 --- a/br/pkg/task/stream.go +++ b/br/pkg/task/stream.go @@ -17,13 +17,14 @@ package task import ( "bytes" "context" - "encoding/json" + "encoding/binary" "fmt" "net/http" "strings" "sync" "time" + "github.com/docker/go-units" "github.com/fatih/color" "github.com/opentracing/opentracing-go" "github.com/pingcap/errors" @@ -45,6 +46,7 @@ import ( "github.com/pingcap/tidb/br/pkg/utils" "github.com/pingcap/tidb/kv" "github.com/pingcap/tidb/util/mathutil" + "github.com/pingcap/tidb/util/sqlexec" "github.com/spf13/pflag" "github.com/tikv/client-go/v2/config" "github.com/tikv/client-go/v2/oracle" @@ -286,7 +288,7 @@ type streamMgr struct { func NewStreamMgr(ctx context.Context, cfg *StreamConfig, g glue.Glue, isStreamStart bool) (*streamMgr, error) { mgr, err := NewMgr(ctx, g, cfg.PD, cfg.TLS, GetKeepalive(&cfg.Config), - cfg.CheckRequirements, true) + cfg.CheckRequirements, true, conn.StreamVersionChecker) if err != nil { return nil, errors.Trace(err) } @@ -306,10 +308,6 @@ func NewStreamMgr(ctx context.Context, cfg *StreamConfig, g glue.Glue, isStreamS if err != nil { return nil, errors.Trace(err) } - if backend.GetS3() == nil { - return nil, errors.Annotate(berrors.ErrStorageInvalidConfig, - "Only support s3 storage currently.") - } opts := storage.ExternalStorageOptions{ NoCredentials: cfg.NoCreds, @@ -402,33 +400,6 @@ func (s *streamMgr) buildObserveRanges(ctx context.Context) ([]kv.KeyRange, erro return rs, nil } -// checkRequirements will check some requirements before stream starts. -func (s *streamMgr) checkRequirements(ctx context.Context) (bool, error) { - type backupStream struct { - EnableStreaming bool `json:"enable"` - } - type config struct { - BackupStream backupStream `json:"log-backup"` - } - - supportBackupStream := true - hasTiKV := false - err := s.mgr.GetConfigFromTiKV(ctx, s.httpCli, func(resp *http.Response) error { - hasTiKV = true - c := &config{} - e := json.NewDecoder(resp.Body).Decode(c) - if e != nil { - return e - } - supportBackupStream = supportBackupStream && c.BackupStream.EnableStreaming - return nil - }) - if err != nil { - return false, errors.Trace(err) - } - return hasTiKV && supportBackupStream, err -} - func (s *streamMgr) backupFullSchemas(ctx context.Context, g glue.Glue) error { metaWriter := metautil.NewMetaWriter(s.bc.GetStorage(), metautil.MetaFileSize, false, metautil.MetaFile, nil) metaWriter.Update(func(m *backuppb.BackupMeta) { @@ -504,7 +475,12 @@ func RunStreamStart( } defer streamMgr.close() - supportStream, err := streamMgr.checkRequirements(ctx) + se, err := g.CreateSession(streamMgr.mgr.GetStorage()) + if err != nil { + return errors.Trace(err) + } + execCtx := se.GetSessionCtx().(sqlexec.RestrictedSQLExecutor) + supportStream, err := utils.IsLogBackupEnabled(execCtx) if err != nil { return errors.Trace(err) } @@ -597,10 +573,12 @@ func RunStreamMetadata( return errors.Trace(err) } + logMinDate := stream.FormatDate(oracle.GetTimeFromTS(logMinTS)) + logMaxDate := stream.FormatDate(oracle.GetTimeFromTS(logMaxTS)) summary.Log(cmdName, zap.Uint64("log-min-ts", logMinTS), - zap.String("log-min-date", oracle.GetTimeFromTS(logMinTS).String()), + zap.String("log-min-date", logMinDate), zap.Uint64("log-max-ts", logMaxTS), - zap.String("log-max-date", oracle.GetTimeFromTS(logMaxTS).String()), + zap.String("log-max-date", logMaxDate), ) return nil } @@ -787,7 +765,7 @@ func RunStreamAdvancer(c context.Context, g glue.Glue, cmdName string, cfg *Stre ctx, cancel := context.WithCancel(c) defer cancel() mgr, err := NewMgr(ctx, g, cfg.PD, cfg.TLS, GetKeepalive(&cfg.Config), - cfg.CheckRequirements, false) + cfg.CheckRequirements, false, conn.StreamVersionChecker) if err != nil { return err } @@ -833,7 +811,7 @@ func makeStatusController(ctx context.Context, cfg *StreamConfig, g glue.Glue) ( printer = stream.PrintTaskWithJSON(console) } mgr, err := NewMgr(ctx, g, cfg.PD, cfg.TLS, GetKeepalive(&cfg.Config), - cfg.CheckRequirements, false) + cfg.CheckRequirements, false, conn.StreamVersionChecker) if err != nil { return nil, err } @@ -906,7 +884,7 @@ func RunStreamTruncate(c context.Context, g glue.Glue, cmdName string, cfg *Stre return err } } - readMetaDone := console.StartTask("Reading Metadata... ") + readMetaDone := console.ShowTask("Reading Metadata... ", glue.WithTimeCost()) metas := restore.StreamMetadataSet{ BeforeDoWriteBack: func(path string, last, current *backuppb.Metadata) (skip bool) { log.Info("Updating metadata.", zap.String("file", path), @@ -944,7 +922,7 @@ func RunStreamTruncate(c context.Context, g glue.Glue, cmdName string, cfg *Stre removed := metas.RemoveDataBefore(shiftUntilTS) // remove metadata - removeMetaDone := console.StartTask("Removing metadata... ") + removeMetaDone := console.ShowTask("Removing metadata... ", glue.WithTimeCost()) if !cfg.DryRun { if err := metas.DoWriteBack(ctx, storage); err != nil { return err @@ -953,8 +931,11 @@ func RunStreamTruncate(c context.Context, g glue.Glue, cmdName string, cfg *Stre removeMetaDone() // remove log - clearDataFileDone := console.StartTask( - fmt.Sprintf("Clearing data files done. kv-count = %v, total-size = %v", kvCount, totalSize)) + clearDataFileDone := console.ShowTask( + "Clearing data files... ", glue.WithTimeCost(), + glue.WithConstExtraField("kv-count", kvCount), + glue.WithConstExtraField("kv-size", fmt.Sprintf("%d(%s)", totalSize, units.HumanSize(float64(totalSize)))), + ) worker := utils.NewWorkerPool(128, "delete files") wg := new(sync.WaitGroup) for _, f := range removed { @@ -1075,7 +1056,7 @@ func restoreStream( } mgr, err := NewMgr(ctx, g, cfg.PD, cfg.TLS, GetKeepalive(&cfg.Config), - cfg.CheckRequirements, true) + cfg.CheckRequirements, true, conn.StreamVersionChecker) if err != nil { return errors.Trace(err) } @@ -1286,7 +1267,7 @@ func getLogRange( logMinTS := mathutil.Max(logStartTS, truncateTS) // get max global resolved ts from metas. - logMaxTS, err := getGlobalResolvedTS(ctx, s) + logMaxTS, err := getGlobalCheckpointFromStorage(ctx, s) if err != nil { return 0, 0, errors.Trace(err) } @@ -1295,6 +1276,25 @@ func getLogRange( return logMinTS, logMaxTS, nil } +func getGlobalCheckpointFromStorage(ctx context.Context, s storage.ExternalStorage) (uint64, error) { + var globalCheckPointTS uint64 = 0 + opt := storage.WalkOption{SubDir: stream.GetStreamBackupGlobalCheckpointPrefix()} + err := s.WalkDir(ctx, &opt, func(path string, size int64) error { + if !strings.HasSuffix(path, ".ts") { + return nil + } + + buff, err := s.ReadFile(ctx, path) + if err != nil { + return errors.Trace(err) + } + ts := binary.LittleEndian.Uint64(buff) + globalCheckPointTS = mathutil.Max(ts, globalCheckPointTS) + return nil + }) + return globalCheckPointTS, errors.Trace(err) +} + // getFullBackupTS gets the snapshot-ts of full bakcup func getFullBackupTS( ctx context.Context, @@ -1339,9 +1339,11 @@ func getGlobalResolvedTS( return 0, errors.Trace(err) } var globalCheckpointTS uint64 = 0 - // TODO change the logic after checkpoint v3 implemented + // If V3 global-checkpoint advance, the maximum value in storeMap.resolvedTSMap as global-checkpoint-ts. + // If v2 global-checkpoint advance, it need the minimal value in storeMap.resolvedTSMap as global-checkpoint-ts. + // Because each of store maintains own checkpoint-ts only. for _, resolveTS := range storeMap.resolvedTSMap { - if resolveTS < globalCheckpointTS || globalCheckpointTS == 0 { + if globalCheckpointTS < resolveTS { globalCheckpointTS = resolveTS } } @@ -1530,7 +1532,7 @@ func buildPauseSafePointName(taskName string) string { func checkPiTRRequirements(ctx context.Context, g glue.Glue, cfg *RestoreConfig) error { mgr, err := NewMgr(ctx, g, cfg.PD, cfg.TLS, GetKeepalive(&cfg.Config), - cfg.CheckRequirements, true) + cfg.CheckRequirements, true, conn.StreamVersionChecker) if err != nil { return errors.Trace(err) } diff --git a/br/pkg/task/stream_test.go b/br/pkg/task/stream_test.go index abd113abfa711..d129eeaf5b2c2 100644 --- a/br/pkg/task/stream_test.go +++ b/br/pkg/task/stream_test.go @@ -16,135 +16,19 @@ package task import ( "context" + "encoding/binary" "fmt" - "net/http" - "net/http/httptest" "path/filepath" - "strings" "testing" "github.com/pingcap/errors" backuppb "github.com/pingcap/kvproto/pkg/brpb" - "github.com/pingcap/kvproto/pkg/metapb" - "github.com/pingcap/tidb/br/pkg/conn" - "github.com/pingcap/tidb/br/pkg/pdutil" "github.com/pingcap/tidb/br/pkg/storage" "github.com/pingcap/tidb/br/pkg/stream" - "github.com/pingcap/tidb/br/pkg/utils" "github.com/stretchr/testify/require" "github.com/tikv/client-go/v2/oracle" - pd "github.com/tikv/pd/client" ) -func newMockStreamMgr(pdCli pd.Client, httpCli *http.Client) *streamMgr { - pdController := &pdutil.PdController{} - pdController.SetPDClient(pdCli) - mgr := &conn.Mgr{PdController: pdController} - return &streamMgr{mgr: mgr, httpCli: httpCli} -} - -func TestStreamStartChecks(t *testing.T) { - cases := []struct { - stores []*metapb.Store - content []string - supportStream bool - }{ - { - stores: []*metapb.Store{ - { - Id: 1, - State: metapb.StoreState_Up, - Labels: []*metapb.StoreLabel{ - { - Key: "engine", - Value: "tiflash", - }, - }, - }, - }, - content: []string{""}, - // no tikv detected in this case, so support is false. - supportStream: false, - }, - { - stores: []*metapb.Store{ - { - Id: 1, - State: metapb.StoreState_Up, - Labels: []*metapb.StoreLabel{ - { - Key: "engine", - Value: "tikv", - }, - }, - }, - }, - content: []string{ - "{\"log-level\": \"debug\", \"log-backup\": {\"enable\": true}}", - }, - // one tikv detected in this case and `enable-streaming` is true. - supportStream: true, - }, - { - stores: []*metapb.Store{ - { - Id: 1, - State: metapb.StoreState_Up, - Labels: []*metapb.StoreLabel{ - { - Key: "engine", - Value: "tikv", - }, - }, - }, - { - Id: 2, - State: metapb.StoreState_Up, - Labels: []*metapb.StoreLabel{ - { - Key: "engine", - Value: "tikv", - }, - }, - }, - }, - content: []string{ - "{\"log-level\": \"debug\", \"log-backup\": {\"enable\": true}}", - "{\"log-level\": \"debug\", \"log-backup\": {\"enable\": false}}", - }, - // two tikv detected in this case and one of them's `enable-streaming` is false. - supportStream: false, - }, - } - - ctx := context.Background() - for _, ca := range cases { - pdCli := utils.FakePDClient{Stores: ca.stores} - require.Equal(t, len(ca.content), len(ca.stores)) - count := 0 - mockServer := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - switch strings.TrimSpace(r.URL.Path) { - case "/config": - _, _ = fmt.Fprint(w, ca.content[count]) - default: - http.NotFoundHandler().ServeHTTP(w, r) - } - count++ - })) - - for _, s := range ca.stores { - s.StatusAddress = mockServer.URL - } - - httpCli := mockServer.Client() - sMgr := newMockStreamMgr(pdCli, httpCli) - support, err := sMgr.checkRequirements(ctx) - require.NoError(t, err) - require.Equal(t, ca.supportStream, support) - mockServer.Close() - } -} - func TestShiftTS(t *testing.T) { var startTS uint64 = 433155751280640000 shiftTS := ShiftTS(startTS) @@ -277,7 +161,7 @@ func TestGetGlobalResolvedTS(t *testing.T) { require.Nil(t, err) globalResolvedTS, err := getGlobalResolvedTS(ctx, s) require.Nil(t, err) - require.Equal(t, uint64(100), globalResolvedTS) + require.Equal(t, uint64(101), globalResolvedTS) } func TestGetGlobalResolvedTS2(t *testing.T) { @@ -309,5 +193,69 @@ func TestGetGlobalResolvedTS2(t *testing.T) { require.Nil(t, err) globalResolvedTS, err := getGlobalResolvedTS(ctx, s) require.Nil(t, err) - require.Equal(t, uint64(98), globalResolvedTS) + require.Equal(t, uint64(99), globalResolvedTS) +} + +func fakeCheckpointFiles( + ctx context.Context, + tmpDir string, + infos []fakeGlobalCheckPoint, +) error { + cpDir := filepath.Join(tmpDir, stream.GetStreamBackupGlobalCheckpointPrefix()) + s, err := storage.NewLocalStorage(cpDir) + if err != nil { + return errors.Trace(err) + } + + // create normal files belong to global-checkpoint files + for _, info := range infos { + filename := fmt.Sprintf("%v.ts", info.storeID) + buff := make([]byte, 8) + binary.LittleEndian.PutUint64(buff, info.global_checkpoint) + if _, err := s.Create(ctx, filename); err != nil { + return errors.Trace(err) + } + if err := s.WriteFile(ctx, filename, buff); err != nil { + return errors.Trace(err) + } + } + + // create a file not belonging to global-checkpoint-ts files + filename := fmt.Sprintf("%v.tst", 1) + err = s.WriteFile(ctx, filename, []byte("ping")) + return errors.AddStack(err) +} + +type fakeGlobalCheckPoint struct { + storeID int64 + global_checkpoint uint64 +} + +func TestGetGlobalCheckpointFromStorage(t *testing.T) { + ctx := context.Background() + tmpdir := t.TempDir() + s, err := storage.NewLocalStorage(tmpdir) + require.Nil(t, err) + + infos := []fakeGlobalCheckPoint{ + { + storeID: 1, + global_checkpoint: 98, + }, + { + storeID: 2, + global_checkpoint: 90, + }, + { + storeID: 2, + global_checkpoint: 99, + }, + } + + err = fakeCheckpointFiles(ctx, tmpdir, infos) + require.Nil(t, err) + + ts, err := getGlobalCheckpointFromStorage(ctx, s) + require.Nil(t, err) + require.Equal(t, ts, uint64(99)) } diff --git a/br/pkg/trace/BUILD.bazel b/br/pkg/trace/BUILD.bazel index f73c227abc668..6fb6fd238d9d2 100644 --- a/br/pkg/trace/BUILD.bazel +++ b/br/pkg/trace/BUILD.bazel @@ -23,6 +23,7 @@ go_test( "tracing_serial_test.go", ], embed = [":trace"], + flaky = True, deps = [ "//testkit/testsetup", "@com_github_opentracing_opentracing_go//:opentracing-go", diff --git a/br/pkg/utils/BUILD.bazel b/br/pkg/utils/BUILD.bazel index b708ec2fa7979..04dedcee7a473 100644 --- a/br/pkg/utils/BUILD.bazel +++ b/br/pkg/utils/BUILD.bazel @@ -11,12 +11,14 @@ go_library( "json.go", "key.go", "math.go", + "misc.go", "permission.go", "pprof.go", "progress.go", "retry.go", "safe_point.go", "schema.go", + "sensitive.go", "store_manager.go", "worker.go", ], @@ -27,10 +29,14 @@ go_library( "//br/pkg/logutil", "//br/pkg/metautil", "//errno", + "//kv", "//parser/model", "//parser/mysql", "//parser/terror", + "//parser/types", + "//sessionctx", "//util", + "//util/sqlexec", "@com_github_cheggaaa_pb_v3//:pb", "@com_github_google_uuid//:uuid", "@com_github_pingcap_errors//:errors", @@ -58,25 +64,36 @@ go_test( name = "utils_test", srcs = [ "backoff_test.go", + "db_test.go", "env_test.go", "json_test.go", "key_test.go", "main_test.go", "math_test.go", + "misc_test.go", "progress_test.go", "safe_point_test.go", "schema_test.go", + "sensitive_test.go", ], embed = [":utils"], + flaky = True, deps = [ "//br/pkg/errors", "//br/pkg/metautil", "//br/pkg/storage", + "//parser/ast", "//parser/model", + "//parser/mysql", + "//parser/types", "//statistics/handle", "//tablecodec", "//testkit/testsetup", + "//types", + "//util/chunk", + "//util/sqlexec", "@com_github_golang_protobuf//proto", + "@com_github_pingcap_errors//:errors", "@com_github_pingcap_kvproto//pkg/brpb", "@com_github_pingcap_kvproto//pkg/encryptionpb", "@com_github_stretchr_testify//require", diff --git a/br/pkg/utils/db.go b/br/pkg/utils/db.go index 346aca6157dbb..d689d7101ed64 100644 --- a/br/pkg/utils/db.go +++ b/br/pkg/utils/db.go @@ -5,6 +5,13 @@ package utils import ( "context" "database/sql" + "strings" + + "github.com/pingcap/log" + "github.com/pingcap/tidb/kv" + "github.com/pingcap/tidb/sessionctx" + "github.com/pingcap/tidb/util/sqlexec" + "go.uber.org/zap" ) var ( @@ -30,3 +37,55 @@ type DBExecutor interface { StmtExecutor BeginTx(ctx context.Context, opts *sql.TxOptions) (*sql.Tx, error) } + +// CheckLogBackupEnabled checks if LogBackup is enabled in cluster. +// this mainly used in three places. +// 1. GC worker resolve locks to scan more locks after safepoint. (every minute) +// 2. Add index skipping use lightning.(every add index ddl) +// 3. Telemetry of log backup feature usage (every 6 hours). +// NOTE: this result shouldn't be cached by caller. because it may change every time in one cluster. +func CheckLogBackupEnabled(ctx sessionctx.Context) bool { + executor, ok := ctx.(sqlexec.RestrictedSQLExecutor) + if !ok { + // shouldn't happen + log.Error("[backup] unable to translate executor from sessionctx") + return false + } + enabled, err := IsLogBackupEnabled(executor) + if err != nil { + // if it failed by any reason. we can simply return true this time. + // for GC worker it will scan more locks in one tick. + // for Add index it will skip using lightning this time. + // for Telemetry it will get a false positive usage count. + log.Warn("[backup] check log backup config failed, ignore it", zap.Error(err)) + return true + } + return enabled +} + +// IsLogBackupEnabled is used for br to check whether tikv has enabled log backup. +// we use `sqlexec.RestrictedSQLExecutor` as parameter because it's easy to mock. +// it should return error. +func IsLogBackupEnabled(ctx sqlexec.RestrictedSQLExecutor) (bool, error) { + valStr := "show config where name = 'log-backup.enable'" + internalCtx := kv.WithInternalSourceType(context.Background(), kv.InternalTxnBR) + rows, fields, errSQL := ctx.ExecRestrictedSQL(internalCtx, nil, valStr) + if errSQL != nil { + return false, errSQL + } + if len(rows) == 0 { + // no rows mean not support log backup. + return false, nil + } + for _, row := range rows { + d := row.GetDatum(3, &fields[3].Column.FieldType) + value, errField := d.ToString() + if errField != nil { + return false, errField + } + if strings.ToLower(value) == "false" { + return false, nil + } + } + return true, nil +} diff --git a/br/pkg/utils/db_test.go b/br/pkg/utils/db_test.go new file mode 100644 index 0000000000000..a28799932f02a --- /dev/null +++ b/br/pkg/utils/db_test.go @@ -0,0 +1,109 @@ +// Copyright 2022 PingCAP, Inc. Licensed under Apache-2.0. + +package utils_test + +import ( + "context" + "testing" + + "github.com/pingcap/errors" + "github.com/pingcap/tidb/br/pkg/utils" + "github.com/pingcap/tidb/parser/ast" + "github.com/pingcap/tidb/parser/model" + "github.com/pingcap/tidb/parser/mysql" + "github.com/pingcap/tidb/types" + "github.com/pingcap/tidb/util/chunk" + "github.com/pingcap/tidb/util/sqlexec" + "github.com/stretchr/testify/require" +) + +type mockRestrictedSQLExecutor struct { + rows []chunk.Row + fields []*ast.ResultField + errHappen bool +} + +func (m *mockRestrictedSQLExecutor) ParseWithParams(ctx context.Context, sql string, args ...interface{}) (ast.StmtNode, error) { + return nil, nil +} + +func (m *mockRestrictedSQLExecutor) ExecRestrictedStmt(ctx context.Context, stmt ast.StmtNode, opts ...sqlexec.OptionFuncAlias) ([]chunk.Row, []*ast.ResultField, error) { + return nil, nil, nil +} + +func (m *mockRestrictedSQLExecutor) ExecRestrictedSQL(ctx context.Context, opts []sqlexec.OptionFuncAlias, sql string, args ...interface{}) ([]chunk.Row, []*ast.ResultField, error) { + if m.errHappen { + return nil, nil, errors.New("injected error") + } + return m.rows, m.fields, nil +} + +func TestIsLogBackupEnabled(t *testing.T) { + // config format: + // MySQL [(none)]> show config where name="log-backup.enable"; + // +------+-----------------+-------------------+-------+ + // | Type | Instance | Name | Value | + // +------+-----------------+-------------------+-------+ + // | tikv | 127.0.0.1:20161 | log-backup.enable | false | + // | tikv | 127.0.0.1:20162 | log-backup.enable | false | + // | tikv | 127.0.0.1:20160 | log-backup.enable | false | + // +------+-----------------+-------------------+-------+ + fields := make([]*ast.ResultField, 4) + tps := []*types.FieldType{ + types.NewFieldType(mysql.TypeString), + types.NewFieldType(mysql.TypeString), + types.NewFieldType(mysql.TypeString), + types.NewFieldType(mysql.TypeString), + } + for i := 0; i < len(tps); i++ { + rf := new(ast.ResultField) + rf.Column = new(model.ColumnInfo) + rf.Column.FieldType = *tps[i] + fields[i] = rf + } + rows := make([]chunk.Row, 0, 1) + + // case 1: non of tikvs enabled log-backup expected false + // tikv | 127.0.0.1:20161 | log-backup.enable | false | + row := chunk.MutRowFromValues("tikv", " 127.0.0.1:20161", "log-backup.enable", "false").ToRow() + rows = append(rows, row) + s := &mockRestrictedSQLExecutor{rows: rows, fields: fields} + enabled, err := utils.IsLogBackupEnabled(s) + require.NoError(t, err) + require.False(t, enabled) + + // case 2: one of tikvs enabled log-backup expected false + // tikv | 127.0.0.1:20161 | log-backup.enable | false | + // tikv | 127.0.0.1:20162 | log-backup.enable | true | + rows = nil + row = chunk.MutRowFromValues("tikv", " 127.0.0.1:20161", "log-backup.enable", "false").ToRow() + rows = append(rows, row) + row = chunk.MutRowFromValues("tikv", " 127.0.0.1:20162", "log-backup.enable", "true").ToRow() + rows = append(rows, row) + s = &mockRestrictedSQLExecutor{rows: rows, fields: fields} + enabled, err = utils.IsLogBackupEnabled(s) + require.NoError(t, err) + require.False(t, enabled) + + // case 3: all of tikvs enabled log-backup expected true + // tikv | 127.0.0.1:20161 | log-backup.enable | true | + // tikv | 127.0.0.1:20162 | log-backup.enable | true | + // tikv | 127.0.0.1:20163 | log-backup.enable | true | + rows = nil + row = chunk.MutRowFromValues("tikv", " 127.0.0.1:20161", "log-backup.enable", "true").ToRow() + rows = append(rows, row) + row = chunk.MutRowFromValues("tikv", " 127.0.0.1:20162", "log-backup.enable", "true").ToRow() + rows = append(rows, row) + row = chunk.MutRowFromValues("tikv", " 127.0.0.1:20163", "log-backup.enable", "true").ToRow() + rows = append(rows, row) + s = &mockRestrictedSQLExecutor{rows: rows, fields: fields} + enabled, err = utils.IsLogBackupEnabled(s) + require.NoError(t, err) + require.True(t, enabled) + + // case 4: met error and expected false. + s = &mockRestrictedSQLExecutor{errHappen: true} + enabled, err = utils.IsLogBackupEnabled(s) + require.Error(t, err) + require.False(t, enabled) +} diff --git a/br/pkg/utils/misc.go b/br/pkg/utils/misc.go new file mode 100644 index 0000000000000..43efb4755a26b --- /dev/null +++ b/br/pkg/utils/misc.go @@ -0,0 +1,77 @@ +// Copyright 2022 PingCAP, Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// See the License for the specific language governing permissions and +// limitations under the License. + +package utils + +import ( + "github.com/pingcap/tidb/parser/mysql" + "github.com/pingcap/tidb/parser/types" +) + +// IsTypeCompatible checks whether type target is compatible with type src +// they're compatible if +// - same null/not null and unsigned flag(maybe we can allow src not null flag, target null flag later) +// - have same evaluation type +// - target's flen and decimal should be bigger or equals to src's +// - elements in target is superset of elements in src if they're enum or set type +// - same charset and collate if they're string types +func IsTypeCompatible(src types.FieldType, target types.FieldType) bool { + if mysql.HasNotNullFlag(src.GetFlag()) != mysql.HasNotNullFlag(target.GetFlag()) { + return false + } + if mysql.HasUnsignedFlag(src.GetFlag()) != mysql.HasUnsignedFlag(target.GetFlag()) { + return false + } + srcEType, dstEType := src.EvalType(), target.EvalType() + if srcEType != dstEType { + return false + } + + getFLenAndDecimal := func(tp types.FieldType) (int, int) { + // ref FieldType.CompactStr + defaultFlen, defaultDecimal := mysql.GetDefaultFieldLengthAndDecimal(tp.GetType()) + flen, decimal := tp.GetFlen(), tp.GetDecimal() + if flen == types.UnspecifiedLength { + flen = defaultFlen + } + if decimal == types.UnspecifiedLength { + decimal = defaultDecimal + } + return flen, decimal + } + srcFLen, srcDecimal := getFLenAndDecimal(src) + targetFLen, targetDecimal := getFLenAndDecimal(target) + if srcFLen > targetFLen || srcDecimal > targetDecimal { + return false + } + + // if they're not enum or set type, elems will be empty + // and if they're not string types, charset and collate will be empty, + // so we check them anyway. + srcElems := src.GetElems() + targetElems := target.GetElems() + if len(srcElems) > len(targetElems) { + return false + } + targetElemSet := make(map[string]struct{}) + for _, item := range targetElems { + targetElemSet[item] = struct{}{} + } + for _, item := range srcElems { + if _, ok := targetElemSet[item]; !ok { + return false + } + } + return src.GetCharset() == target.GetCharset() && + src.GetCollate() == target.GetCollate() +} diff --git a/br/pkg/utils/misc_test.go b/br/pkg/utils/misc_test.go new file mode 100644 index 0000000000000..6e6afd0eae074 --- /dev/null +++ b/br/pkg/utils/misc_test.go @@ -0,0 +1,138 @@ +// Copyright 2022 PingCAP, Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// See the License for the specific language governing permissions and +// limitations under the License. + +package utils + +import ( + "testing" + + "github.com/pingcap/tidb/parser/mysql" + "github.com/pingcap/tidb/parser/types" + "github.com/stretchr/testify/require" +) + +func TestIsTypeCompatible(t *testing.T) { + { + // different unsigned flag + src := types.NewFieldType(mysql.TypeInt24) + src.AddFlag(mysql.UnsignedFlag) + target := types.NewFieldType(mysql.TypeInt24) + require.False(t, IsTypeCompatible(*src, *target)) + + src.DelFlag(mysql.UnsignedFlag) + target.AddFlag(mysql.UnsignedFlag) + require.False(t, IsTypeCompatible(*src, *target)) + } + { + // different not null flag + src := types.NewFieldType(mysql.TypeInt24) + src.AddFlag(mysql.NotNullFlag) + target := types.NewFieldType(mysql.TypeInt24) + require.False(t, IsTypeCompatible(*src, *target)) + + src.DelFlag(mysql.NotNullFlag) + target.AddFlag(mysql.NotNullFlag) + require.False(t, IsTypeCompatible(*src, *target)) + } + { + // different evaluation type + src := types.NewFieldType(mysql.TypeInt24) + target := types.NewFieldType(mysql.TypeFloat) + require.False(t, IsTypeCompatible(*src, *target)) + } + { + // src flen > target + src := types.NewFieldType(mysql.TypeInt24) + target := types.NewFieldType(mysql.TypeTiny) + require.False(t, IsTypeCompatible(*src, *target)) + } + { + // src flen > target + src := types.NewFieldType(mysql.TypeVarchar) + src.SetFlen(100) + target := types.NewFieldType(mysql.TypeVarchar) + target.SetFlag(99) + require.False(t, IsTypeCompatible(*src, *target)) + } + { + // src decimal > target + src := types.NewFieldType(mysql.TypeNewDecimal) + src.SetDecimal(5) + target := types.NewFieldType(mysql.TypeNewDecimal) + target.SetDecimal(4) + require.False(t, IsTypeCompatible(*src, *target)) + } + { + // src has more elements + src := types.NewFieldType(mysql.TypeEnum) + src.SetElems([]string{"a", "b"}) + target := types.NewFieldType(mysql.TypeEnum) + target.SetElems([]string{"a"}) + require.False(t, IsTypeCompatible(*src, *target)) + } + { + // incompatible enum + src := types.NewFieldType(mysql.TypeEnum) + src.SetElems([]string{"a", "b"}) + target := types.NewFieldType(mysql.TypeEnum) + target.SetElems([]string{"a", "c", "d"}) + require.False(t, IsTypeCompatible(*src, *target)) + } + { + // incompatible charset + src := types.NewFieldType(mysql.TypeVarchar) + src.SetCharset("gbk") + target := types.NewFieldType(mysql.TypeVarchar) + target.SetCharset("utf8") + require.False(t, IsTypeCompatible(*src, *target)) + } + { + // incompatible collation + src := types.NewFieldType(mysql.TypeVarchar) + src.SetCharset("utf8") + src.SetCollate("utf8_bin") + target := types.NewFieldType(mysql.TypeVarchar) + target.SetCharset("utf8") + target.SetCollate("utf8_general_ci") + require.False(t, IsTypeCompatible(*src, *target)) + } + { + src := types.NewFieldType(mysql.TypeVarchar) + src.SetFlen(10) + src.SetCharset("utf8") + src.SetCollate("utf8_bin") + target := types.NewFieldType(mysql.TypeVarchar) + target.SetFlen(11) + target.SetCharset("utf8") + target.SetCollate("utf8_bin") + require.True(t, IsTypeCompatible(*src, *target)) + } + { + src := types.NewFieldType(mysql.TypeBlob) + target := types.NewFieldType(mysql.TypeLongBlob) + require.True(t, IsTypeCompatible(*src, *target)) + } + { + src := types.NewFieldType(mysql.TypeEnum) + src.SetElems([]string{"a", "b"}) + target := types.NewFieldType(mysql.TypeEnum) + target.SetElems([]string{"a", "b", "c"}) + require.True(t, IsTypeCompatible(*src, *target)) + } + { + src := types.NewFieldType(mysql.TypeTimestamp) + target := types.NewFieldType(mysql.TypeTimestamp) + target.SetDecimal(3) + require.True(t, IsTypeCompatible(*src, *target)) + } +} diff --git a/br/pkg/utils/sensitive.go b/br/pkg/utils/sensitive.go new file mode 100644 index 0000000000000..fcc31ee30b78d --- /dev/null +++ b/br/pkg/utils/sensitive.go @@ -0,0 +1,23 @@ +// Copyright 2022 PingCAP, Inc. Licensed under Apache-2.0. + +package utils + +import ( + "regexp" +) + +var ( + passwordPatterns = `(password[\s]*=[\s]*(\\")?)(.*?)((\\")?\\n)` + + passwordRegexp *regexp.Regexp +) + +func init() { + passwordRegexp = regexp.MustCompile(passwordPatterns) +} + +// HideSensitive replace password with ******. +func HideSensitive(input string) string { + output := passwordRegexp.ReplaceAllString(input, "$1******$4") + return output +} diff --git a/br/pkg/utils/sensitive_test.go b/br/pkg/utils/sensitive_test.go new file mode 100644 index 0000000000000..a14ce0619eb85 --- /dev/null +++ b/br/pkg/utils/sensitive_test.go @@ -0,0 +1,41 @@ +// Copyright 2022 PingCAP, Inc. Licensed under Apache-2.0. + +package utils + +import ( + "testing" + + "github.com/stretchr/testify/require" +) + +func TestHideSensitive(t *testing.T) { + strs := []struct { + old string + new string + }{ + { + `host = "127.0.0.1"\n user = "root"\n password = "/Q7B9DizNLLTTfiZHv9WoEAKamfpIUs="\n port = 3306\n`, + `host = "127.0.0.1"\n user = "root"\n password = ******\n port = 3306\n`, + }, + { + `host = "127.0.0.1"\n user = "root"\n password = ""\n port = 3306\n`, + `host = "127.0.0.1"\n user = "root"\n password = ******\n port = 3306\n`, + }, + { + `host = "127.0.0.1"\n user = "root"\n password= "/Q7B9DizNLLTTfiZHv9WoEAKamfpIUs="\n port = 3306\n`, + `host = "127.0.0.1"\n user = "root"\n password= ******\n port = 3306\n`, + }, + { + `host = "127.0.0.1"\n user = "root"\n password =""\n port = 3306\n`, + `host = "127.0.0.1"\n user = "root"\n password =******\n port = 3306\n`, + }, + { + `host = "127.0.0.1"\n user = "root"\n password=""\n port = 3306\n`, + `host = "127.0.0.1"\n user = "root"\n password=******\n port = 3306\n`, + }, + } + for i, str := range strs { + t.Logf("case #%d\n", i) + require.Equal(t, str.new, HideSensitive(str.old)) + } +} diff --git a/br/pkg/version/BUILD.bazel b/br/pkg/version/BUILD.bazel index 26bbda74a0d32..766cd6a13316c 100644 --- a/br/pkg/version/BUILD.bazel +++ b/br/pkg/version/BUILD.bazel @@ -10,6 +10,7 @@ go_library( "//br/pkg/logutil", "//br/pkg/utils", "//br/pkg/version/build", + "//util/engine", "@com_github_coreos_go_semver//semver", "@com_github_pingcap_errors//:errors", "@com_github_pingcap_kvproto//pkg/metapb", @@ -23,6 +24,7 @@ go_test( name = "version_test", srcs = ["version_test.go"], embed = [":version"], + flaky = True, deps = [ "//br/pkg/version/build", "@com_github_coreos_go_semver//semver", diff --git a/br/pkg/version/build/BUILD.bazel b/br/pkg/version/build/BUILD.bazel index 87fc4fa0efd9e..1de80df441374 100644 --- a/br/pkg/version/build/BUILD.bazel +++ b/br/pkg/version/build/BUILD.bazel @@ -18,5 +18,6 @@ go_test( name = "build_test", srcs = ["info_test.go"], embed = [":build"], + flaky = True, deps = ["@com_github_stretchr_testify//require"], ) diff --git a/br/pkg/version/build/info_test.go b/br/pkg/version/build/info_test.go index a891c8c65e3ca..1487b9de6cec9 100644 --- a/br/pkg/version/build/info_test.go +++ b/br/pkg/version/build/info_test.go @@ -19,7 +19,7 @@ func TestInfo(t *testing.T) { require.Regexp(t, "^UTC Build Time", lines[4]) } -func TestLogInfo(t *testing.T) { +func TestLogInfo(*testing.T) { LogInfo(BR) LogInfo(Lightning) } diff --git a/br/pkg/version/version.go b/br/pkg/version/version.go index 17d8bc6728296..2a818a6ee4f85 100644 --- a/br/pkg/version/version.go +++ b/br/pkg/version/version.go @@ -18,6 +18,7 @@ import ( "github.com/pingcap/tidb/br/pkg/logutil" "github.com/pingcap/tidb/br/pkg/utils" "github.com/pingcap/tidb/br/pkg/version/build" + "github.com/pingcap/tidb/util/engine" pd "github.com/tikv/pd/client" "go.uber.org/zap" ) @@ -70,16 +71,6 @@ func checkTiFlashVersion(store *metapb.Store) error { return nil } -// IsTiFlash tests whether the store is based on tiflash engine. -func IsTiFlash(store *metapb.Store) bool { - for _, label := range store.Labels { - if label.Key == "engine" && label.Value == "tiflash" { - return true - } - } - return false -} - // VerChecker is a callback for the CheckClusterVersion, decides whether the cluster is suitable to execute restore. // See also: CheckVersionForBackup and CheckVersionForBR. type VerChecker func(store *metapb.Store, ver *semver.Version) error @@ -91,7 +82,7 @@ func CheckClusterVersion(ctx context.Context, client pd.Client, checker VerCheck return errors.Trace(err) } for _, s := range stores { - isTiFlash := IsTiFlash(s) + isTiFlash := engine.IsTiFlash(s) log.Debug("checking compatibility of store in cluster", zap.Uint64("ID", s.GetId()), zap.Bool("TiFlash?", isTiFlash), @@ -129,6 +120,37 @@ func CheckVersionForBackup(backupVersion *semver.Version) VerChecker { } } +// CheckVersionForBRPiTR checks whether version of the cluster and BR-pitr itself is compatible. +// Note: BR'version >= 6.1.0 at least in this function +func CheckVersionForBRPiTR(s *metapb.Store, tikvVersion *semver.Version) error { + BRVersion, err := semver.NewVersion(removeVAndHash(build.ReleaseVersion)) + if err != nil { + return errors.Annotatef(berrors.ErrVersionMismatch, "%s: invalid version, please recompile using `git fetch origin --tags && make build`", err) + } + + // tikvVersion should at least 6.1.0 + if tikvVersion.Major < 6 || (tikvVersion.Major == 6 && tikvVersion.Minor == 0) { + return errors.Annotatef(berrors.ErrVersionMismatch, "TiKV node %s version %s is too low when use PiTR, please update tikv's version to at least v6.1.0(v6.2.0+ recommanded)", + s.Address, tikvVersion) + } + + // The versions of BR and TiKV should be the same when use BR 6.1.0 + if BRVersion.Major == 6 && BRVersion.Minor == 1 { + if tikvVersion.Major != 6 || tikvVersion.Minor != 1 { + return errors.Annotatef(berrors.ErrVersionMismatch, "TiKV node %s version %s and BR %s version mismatch when use PiTR v6.1.0, please use the same version of BR", + s.Address, tikvVersion, build.ReleaseVersion) + } + } else { + // If BRVersion > v6.1.0, the version of TiKV should be at least v6.2.0 + if tikvVersion.Major == 6 && tikvVersion.Minor <= 1 { + return errors.Annotatef(berrors.ErrVersionMismatch, "TiKV node %s version %s and BR %s version mismatch when use PiTR v6.2.0+, please use the tikv with version v6.2.0+", + s.Address, tikvVersion, build.ReleaseVersion) + } + } + + return nil +} + // CheckVersionForBR checks whether version of the cluster and BR itself is compatible. func CheckVersionForBR(s *metapb.Store, tikvVersion *semver.Version) error { BRVersion, err := semver.NewVersion(removeVAndHash(build.ReleaseVersion)) diff --git a/br/pkg/version/version_test.go b/br/pkg/version/version_test.go index 84ffd74849aaa..008e8a10d1ccd 100644 --- a/br/pkg/version/version_test.go +++ b/br/pkg/version/version_test.go @@ -45,6 +45,74 @@ func TestCheckClusterVersion(t *testing.T) { Client: nil, } + { + build.ReleaseVersion = "v6.2.0" + mock.getAllStores = func() []*metapb.Store { + return []*metapb.Store{{Version: `v5.4.2`}} + } + err := CheckClusterVersion(context.Background(), &mock, CheckVersionForBRPiTR) + require.Error(t, err) + require.Regexp(t, `^TiKV .* is too low when use PiTR, please `, err.Error()) + } + + { + build.ReleaseVersion = "v6.2.0" + mock.getAllStores = func() []*metapb.Store { + return []*metapb.Store{{Version: `v6.0.0`}} + } + err := CheckClusterVersion(context.Background(), &mock, CheckVersionForBRPiTR) + require.Error(t, err) + require.Regexp(t, `^TiKV .* is too low when use PiTR, please `, err.Error()) + } + + { + build.ReleaseVersion = "v6.2.0" + mock.getAllStores = func() []*metapb.Store { + return []*metapb.Store{{Version: `v6.1.0`}} + } + err := CheckClusterVersion(context.Background(), &mock, CheckVersionForBRPiTR) + require.Error(t, err) + require.Regexp(t, `^TiKV .* version mismatch when use PiTR v6.2.0\+, please `, err.Error()) + } + + { + build.ReleaseVersion = "v6.2.0" + mock.getAllStores = func() []*metapb.Store { + return []*metapb.Store{{Version: `v6.2.0`}} + } + err := CheckClusterVersion(context.Background(), &mock, CheckVersionForBRPiTR) + require.NoError(t, err) + } + + { + build.ReleaseVersion = "v6.1.0" + mock.getAllStores = func() []*metapb.Store { + return []*metapb.Store{{Version: `v5.4.2`}} + } + err := CheckClusterVersion(context.Background(), &mock, CheckVersionForBRPiTR) + require.Error(t, err) + require.Regexp(t, `^TiKV .* is too low when use PiTR, please `, err.Error()) + } + + { + build.ReleaseVersion = "v6.1.0" + mock.getAllStores = func() []*metapb.Store { + return []*metapb.Store{{Version: `v6.1.0`}} + } + err := CheckClusterVersion(context.Background(), &mock, CheckVersionForBRPiTR) + require.NoError(t, err) + } + + { + build.ReleaseVersion = "v6.1.0" + mock.getAllStores = func() []*metapb.Store { + return []*metapb.Store{{Version: `v6.2.0`}} + } + err := CheckClusterVersion(context.Background(), &mock, CheckVersionForBRPiTR) + require.Error(t, err) + require.Regexp(t, `^TiKV .* version mismatch when use PiTR v6.1.0, please `, err.Error()) + } + { build.ReleaseVersion = "v4.0.5" mock.getAllStores = func() []*metapb.Store { diff --git a/br/tests/_utils/br_tikv_outage_util b/br/tests/_utils/br_tikv_outage_util index 7386425aff8d4..cd3283a27ff08 100644 --- a/br/tests/_utils/br_tikv_outage_util +++ b/br/tests/_utils/br_tikv_outage_util @@ -41,7 +41,7 @@ load() { check() { run_sql 'drop database if exists '$TEST_NAME';' - run_br restore full -s local://"$backup_dir" + run_br restore full --filter '*.*' --filter '!mysql.*' -s local://"$backup_dir" count=$(run_sql 'select count(*) from '$TEST_NAME'.usertable;' | tail -n 1 | awk '{print $2}') [ "$count" -eq 20000 ] } \ No newline at end of file diff --git a/br/tests/_utils/run_services b/br/tests/_utils/run_services index a0fbe006fd189..a7449cb229bf2 100644 --- a/br/tests/_utils/run_services +++ b/br/tests/_utils/run_services @@ -44,6 +44,11 @@ stop() { killall -v -9 "$svc" &>/dev/null || return 0 } +restart_services() { + stop_services + start_services +} + stop_services() { for svc in "br" "tidb-server" "tiflash" "TiFlashMain" "tikv-server" "pd-server" "cdc" "minio"; do stop $svc & diff --git a/br/tests/_utils/run_sql_file b/br/tests/_utils/run_sql_file new file mode 100755 index 0000000000000..59942940c076a --- /dev/null +++ b/br/tests/_utils/run_sql_file @@ -0,0 +1,28 @@ +#!/bin/bash +# +# Copyright 2022 PingCAP, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +set -euo pipefail + +SQL_FILE="$1" +shift + +echo "[$(date)] Executing SQL_FILE: $SQL_FILE" > "$TEST_DIR/sql_res.$TEST_NAME.txt" +cat $SQL_FILE | mysql -uroot -h127.0.0.1 -P4000 \ + --ssl-ca="$TEST_DIR/certs/ca.pem" \ + --ssl-cert="$TEST_DIR/certs/curl.pem" \ + --ssl-key="$TEST_DIR/certs/curl.key" \ + "$@" \ + --default-character-set utf8 -E | tee -a "$TEST_DIR/sql_res.$TEST_NAME.txt" diff --git a/br/tests/br_azblob/_run.sh b/br/tests/br_azblob/_run.sh index 5cc12b6a492cf..30d08cc00343e 100644 --- a/br/tests/br_azblob/_run.sh +++ b/br/tests/br_azblob/_run.sh @@ -52,7 +52,7 @@ done # new version restore full echo "restore start..." -run_br restore full \ +run_br restore full --filter '*.*' --filter '!mysql.*' \ -s "azure://$CONTAINER/$DB?" \ --pd $PD_ADDR --azblob.endpoint="$AZBLOB_ENDPOINT" \ --azblob.account-name="$ACCOUNT_NAME" \ diff --git a/br/tests/br_backup_empty/run.sh b/br/tests/br_backup_empty/run.sh index 41ca818139ba4..e55dd25245414 100644 --- a/br/tests/br_backup_empty/run.sh +++ b/br/tests/br_backup_empty/run.sh @@ -28,7 +28,7 @@ fi # restore empty. echo "restore empty cluster start..." -run_br restore full -s "local://$TEST_DIR/empty_cluster" --pd $PD_ADDR --ratelimit 1024 +run_br restore full --filter '*.*' --filter '!mysql.*' -s "local://$TEST_DIR/empty_cluster" --pd $PD_ADDR --ratelimit 1024 if [ $? -ne 0 ]; then echo "TEST: [$TEST_NAME] failed on restore empty cluster!" exit 1 @@ -55,7 +55,7 @@ done # restore empty. echo "restore empty db start..." -run_br restore full -s "local://$TEST_DIR/empty_db" --pd $PD_ADDR --ratelimit 1024 +run_br restore full --filter '*.*' --filter '!mysql.*' -s "local://$TEST_DIR/empty_db" --pd $PD_ADDR --ratelimit 1024 if [ $? -ne 0 ]; then echo "TEST: [$TEST_NAME] failed on restore empty cluster!" exit 1 @@ -76,7 +76,7 @@ while [ $i -le $DB_COUNT ]; do done echo "restore empty table start..." -run_br --pd $PD_ADDR restore full -s "local://$TEST_DIR/empty_table" +run_br --pd $PD_ADDR restore full --filter '*.*' --filter '!mysql.*' -s "local://$TEST_DIR/empty_table" # insert one row to make sure table is restored. run_sql "INSERT INTO ${DB}1.usertable1 VALUES (\"a\", \"b\");" diff --git a/br/tests/br_crypter/run.sh b/br/tests/br_crypter/run.sh index 11cef56b334e5..6dae71360b8fc 100755 --- a/br/tests/br_crypter/run.sh +++ b/br/tests/br_crypter/run.sh @@ -59,7 +59,7 @@ function test_crypter_plaintext(){ drop_db echo "restore with crypter method of plaintext" - run_br --pd $PD_ADDR restore full -s "local://$TEST_DIR/$DB/plaintext" --crypter.method "PLAINTEXT" + run_br --pd $PD_ADDR restore full --filter '*.*' --filter '!mysql.*' -s "local://$TEST_DIR/$DB/plaintext" --crypter.method "PLAINTEXT" check_db_row } @@ -79,7 +79,7 @@ function test_crypter(){ echo "restore crypter method of $CRYPTER_METHOD with wrong key of $CRYPTER_WRONG_KEY" restore_fail=0 - run_br --pd $PD_ADDR restore full -s "local://$TEST_DIR/$DB/$CRYPTER_METHOD" \ + run_br --pd $PD_ADDR restore full --filter '*.*' --filter '!mysql.*' -s "local://$TEST_DIR/$DB/$CRYPTER_METHOD" \ --crypter.method $CRYPTER_METHOD --crypter.key $CRYPTER_WRONG_KEY || restore_fail=1 if [ $restore_fail -ne 1 ]; then echo "TEST: [$TEST_NAME] test restore crypter with wrong key failed!" @@ -87,7 +87,7 @@ function test_crypter(){ fi echo "restore crypter method of $CRYPTER_METHOD with the key of $CRYPTER_KEY" - run_br --pd $PD_ADDR restore full -s "local://$TEST_DIR/$DB/$CRYPTER_METHOD" \ + run_br --pd $PD_ADDR restore full --filter '*.*' --filter '!mysql.*' -s "local://$TEST_DIR/$DB/$CRYPTER_METHOD" \ --crypter.method $CRYPTER_METHOD --crypter.key $CRYPTER_KEY check_db_row @@ -103,7 +103,7 @@ function test_crypter(){ echo "backup crypter method of $CRYPTER_METHOD with the wrong key-file of $CRYPTER_WRONG_KEY_FILE" restore_fail=0 - run_br --pd $PD_ADDR restore full -s "local://$TEST_DIR/$DB/${CRYPTER_METHOD}_file" \ + run_br --pd $PD_ADDR restore full --filter '*.*' --filter '!mysql.*' -s "local://$TEST_DIR/$DB/${CRYPTER_METHOD}_file" \ --crypter.method $CRYPTER_METHOD --crypter.key-file $CRYPTER_WRONG_KEY_FILE || restore_fail=1 if [ $restore_fail -ne 1 ]; then echo "TEST: [$TEST_NAME] test restore with wrong key-file failed!" @@ -111,7 +111,7 @@ function test_crypter(){ fi echo "restore crypter method of $CRYPTER_METHOD with the key-file of $CRYPTER_KEY_FILE" - run_br --pd $PD_ADDR restore full -s "local://$TEST_DIR/$DB/${CRYPTER_METHOD}_file" \ + run_br --pd $PD_ADDR restore full --filter '*.*' --filter '!mysql.*' -s "local://$TEST_DIR/$DB/${CRYPTER_METHOD}_file" \ --crypter.method $CRYPTER_METHOD --crypter.key-file $CRYPTER_KEY_FILE check_db_row diff --git a/br/tests/br_crypter2/run.sh b/br/tests/br_crypter2/run.sh index 91de74376ebce..5f6bff262358b 100755 --- a/br/tests/br_crypter2/run.sh +++ b/br/tests/br_crypter2/run.sh @@ -70,7 +70,7 @@ run_br --pd $PD_ADDR backup full -s "local://$TEST_DIR/$DB/${CRYPTER_METHOD}_fil drop_db -run_br --pd $PD_ADDR restore full -s "local://$TEST_DIR/$DB/${CRYPTER_METHOD}_file" \ +run_br --pd $PD_ADDR restore full --filter '*.*' --filter '!mysql.*' -s "local://$TEST_DIR/$DB/${CRYPTER_METHOD}_file" \ --check-requirements=false --crypter.method $CRYPTER_METHOD --crypter.key $CRYPTER_KEY check_db_row diff --git a/br/tests/br_full/run.sh b/br/tests/br_full/run.sh index 8d754dbd28af1..6c5c039069bd9 100755 --- a/br/tests/br_full/run.sh +++ b/br/tests/br_full/run.sh @@ -81,7 +81,7 @@ for ct in limit lz4 zstd; do echo "restore with $ct backup start..." export GO_FAILPOINTS="github.com/pingcap/tidb/br/pkg/restore/restore-storage-error=1*return(\"connection refused\");github.com/pingcap/tidb/br/pkg/restore/restore-gRPC-error=1*return(true)" export GO_FAILPOINTS=$GO_FAILPOINTS";github.com/pingcap/tidb/br/pkg/restore/no-leader-error=3*return(true)" - run_br restore full -s "local://$TEST_DIR/$DB-$ct" --pd $PD_ADDR --ratelimit 1024 + run_br restore full --filter '*.*' --filter '!mysql.*' -s "local://$TEST_DIR/$DB-$ct" --pd $PD_ADDR --ratelimit 1024 export GO_FAILPOINTS="" for i in $(seq $DB_COUNT); do diff --git a/br/tests/br_full_cluster_restore/full_data.sql b/br/tests/br_full_cluster_restore/full_data.sql new file mode 100644 index 0000000000000..77429bff2e657 --- /dev/null +++ b/br/tests/br_full_cluster_restore/full_data.sql @@ -0,0 +1,28 @@ +create database db1; +create table db1.t1(id int, val varchar(100)); +insert into db1.t1 values(1, 'a'), (2, 'b'); +create table db1.t2(id int, val varchar(100)); +insert into db1.t2 values(1, 'a'), (2, 'b'); +create database db2; +create table db2.t1(id int, val varchar(100)); +insert into db2.t1 values(1, 'a'), (2, 'b'); +create table db2.t2(id int, val varchar(100)); +insert into db2.t2 values(1, 'a'), (2, 'b'); + +-- user1 can select on db1 and select on db2.t1 and db2.t2 +create user user1 identified by '123456'; +grant select on db1.* to user1; -- mysql.db +grant select on db2.t1 to user1; -- mysql.tables_priv +grant select, update(val) on db2.t2 to user1; -- mysql.tables_priv mysql.columns_priv + +-- user2 default role is role1 which can do select on db1 +create role role1; +grant select on db1.* to role1; +create user user2 identified by '123456'; +grant role1 to user2; -- mysql.role_edges +set default role all to user2; -- mysql.default_roles +grant ROLE_ADMIN on *.* to user2; -- mysql.global_grants + +-- user3 can only login with ssl and select db1.t1 +create user user3 identified by '123456' require ssl; +grant select on db1.t1 to user3; diff --git a/br/tests/br_full_cluster_restore/run.sh b/br/tests/br_full_cluster_restore/run.sh new file mode 100644 index 0000000000000..7587bd2b9775a --- /dev/null +++ b/br/tests/br_full_cluster_restore/run.sh @@ -0,0 +1,94 @@ +#! /bin/bash + +set -eu + +# we need to keep backup data after restart service +backup_dir=$TEST_DIR/keep_${TEST_NAME} +incr_backup_dir=${backup_dir}_inc +res_file="$TEST_DIR/sql_res.$TEST_NAME.txt" +br_log_file=$TEST_DIR/br.log +source tests/_utils/run_services + +function run_sql_as() { + user=$1 + shift + SQL="$1" + shift + echo "[$(date)] Executing SQL with user $user: $SQL" + mysql -u$user -p123456 -h127.0.0.1 -P4000 \ + "$@" \ + --default-character-set utf8 -E -e "$SQL" > "$TEST_DIR/sql_res.$TEST_NAME.txt" 2>&1 +} + +restart_services + +unset BR_LOG_TO_TERM +run_sql_file tests/${TEST_NAME}/full_data.sql +run_br backup full --log-file $br_log_file -s "local://$backup_dir" + +# br.test will add coverage output, so we use head here +LAST_BACKUP_TS=$(run_br validate decode --log-file $br_log_file --field="end-version" -s "local://$backup_dir" 2>/dev/null | head -n1) +run_sql "insert into db2.t1 values(3, 'c'), (4, 'd'), (5, 'e');" +run_br backup full --log-file $br_log_file --lastbackupts $LAST_BACKUP_TS -s "local://$incr_backup_dir" + +run_sql "drop database db2" + +echo "--> cluster is not fresh" +run_br restore full --log-file $br_log_file -s "local://$backup_dir" > $res_file 2>&1 || true +check_contains "the target cluster is not fresh" + +echo "--> non full backup data" +run_br restore full --log-file $br_log_file -s "local://$incr_backup_dir" +run_sql "select count(*) from db2.t1" +check_contains "count(*): 3" + +echo "--> restore using filter" +run_sql "drop database db1; drop database db2" +run_br restore full --log-file $br_log_file --filter '*.*' --filter '!mysql.*' -s "local://$backup_dir" +run_sql "select count(*) from db2.t1" +check_contains "count(*): 2" + +echo "--> incompatible system table: more column on target cluster" +restart_services +# mock incompatible manually +run_sql "alter table mysql.user add column xx int;" +run_br restore full --log-file $br_log_file -s "local://$backup_dir" > $res_file 2>&1 || true +check_contains "the target cluster is not compatible with the backup data" + +echo "--> incompatible system table: less column on target cluster" +restart_services +# mock incompatible manually +run_sql "alter table mysql.user drop column Reload_priv" +run_br restore full --log-file $br_log_file -s "local://$backup_dir" > $res_file 2>&1 || true +check_contains "the target cluster is not compatible with the backup data" + +echo "--> incompatible system table: column type incompatible" +restart_services +# mock incompatible manually +run_sql "alter table mysql.tables_priv modify column Table_priv set('Select') DEFAULT NULL;" +run_br restore full --log-file $br_log_file -s "local://$backup_dir" > $res_file 2>&1 || true +check_contains "the target cluster is not compatible with the backup data" + +echo "--> full cluster restore" +restart_services +run_br restore full --log-file $br_log_file -s "local://$backup_dir" +run_sql_as user1 "select count(*) from db1.t1" +check_contains "count(*): 2" +run_sql_as user1 "select count(*) from db2.t1" +check_contains "count(*): 2" +# user2 can select on db1 but not db2 +run_sql_as user2 "select count(*) from db1.t1" +check_contains "count(*): 2" +run_sql_as user2 "select count(*) from db2.t1" || true +check_contains "SELECT command denied to user" +# user3 can only query db1.t1 using ssl +# ci env uses mariadb client, ssl flag is different with mysql client +run_sql_as user3 "select count(*) from db1.t1" || true +check_contains "Access denied for user" +run_sql_as user3 "select count(*) from db1.t1" --ssl +check_contains "count(*): 2" +run_sql_as user3 "select count(*) from db1.t2" --ssl || true +check_contains "SELECT command denied to user" + +echo "clean up kept backup" +rm -rf $backup_dir $incr_backup_dir diff --git a/br/tests/br_full_ddl/run.sh b/br/tests/br_full_ddl/run.sh index 9ae563c6b0aef..1433c1f71e9a6 100755 --- a/br/tests/br_full_ddl/run.sh +++ b/br/tests/br_full_ddl/run.sh @@ -97,7 +97,7 @@ if [[ "${cluster_index_before_backup}" != "${cluster_index_before_restore}" ]]; fi echo "restore full without stats..." -run_br restore full -s "local://$TEST_DIR/${DB}_disable_stats" --pd $PD_ADDR +run_br restore full --filter '*.*' --filter '!mysql.*' -s "local://$TEST_DIR/${DB}_disable_stats" --pd $PD_ADDR curl $TIDB_IP:10080/stats/dump/$DB/$TABLE | jq '.columns.field0 | del(.last_update_version, .fm_sketch, .correlation)' > $RESOTRE_STAT # stats should not be equal because we disable stats by default. @@ -114,7 +114,7 @@ run_sql "DROP DATABASE $DB;" # restore full echo "restore start..." export GO_FAILPOINTS="github.com/pingcap/tidb/br/pkg/restore/restore-createtables-error=return(true)" -run_br restore full -s "local://$TEST_DIR/$DB" --pd $PD_ADDR --log-file $RESTORE_LOG --ddl-batch-size=128 || { cat $RESTORE_LOG; } +run_br restore full --filter '*.*' --filter '!mysql.*' -s "local://$TEST_DIR/$DB" --pd $PD_ADDR --log-file $RESTORE_LOG --ddl-batch-size=128 || { cat $RESTORE_LOG; } export GO_FAILPOINTS="" panic_count=$(cat $RESTORE_LOG | grep "panic"| wc -l) @@ -128,7 +128,7 @@ run_sql "DROP DATABASE $DB;" # restore full echo "restore start..." export GO_FAILPOINTS="github.com/pingcap/tidb/br/pkg/pdutil/PDEnabledPauseConfig=return(true)" -run_br restore full -s "local://$TEST_DIR/$DB" --pd $PD_ADDR --log-file $LOG || { cat $LOG; exit 1; } +run_br restore full --filter '*.*' --filter '!mysql.*' -s "local://$TEST_DIR/$DB" --pd $PD_ADDR --log-file $LOG || { cat $LOG; exit 1; } export GO_FAILPOINTS="" pause_count=$(cat $LOG | grep "pause configs successful"| wc -l | xargs) diff --git a/br/tests/br_full_index/run.sh b/br/tests/br_full_index/run.sh index be43a423e6549..030d2416c3822 100755 --- a/br/tests/br_full_index/run.sh +++ b/br/tests/br_full_index/run.sh @@ -57,7 +57,7 @@ done # restore full echo "restore start..." -run_br restore full -s "local://$TEST_DIR/$DB" --pd $PD_ADDR +run_br restore full --filter '*.*' --filter '!mysql.*' -s "local://$TEST_DIR/$DB" --pd $PD_ADDR for i in $(seq $DB_COUNT); do row_count_new[${i}]=$(run_sql "SELECT COUNT(*) FROM $DB${i}.$TABLE;" | awk '/COUNT/{print $2}') diff --git a/br/tests/br_gcs/run.sh b/br/tests/br_gcs/run.sh index 058191864ad71..103db54c2ed74 100755 --- a/br/tests/br_gcs/run.sh +++ b/br/tests/br_gcs/run.sh @@ -98,7 +98,7 @@ done # new version restore full echo "restore start..." -run_br restore full -s "gcs://$BUCKET/$DB?" --pd $PD_ADDR --gcs.endpoint="http://$GCS_HOST:$GCS_PORT/storage/v1/" --check-requirements=false +run_br restore full --filter '*.*' --filter '!mysql.*' -s "gcs://$BUCKET/$DB?" --pd $PD_ADDR --gcs.endpoint="http://$GCS_HOST:$GCS_PORT/storage/v1/" --check-requirements=false for i in $(seq $DB_COUNT); do row_count_new[${i}]=$(run_sql "SELECT COUNT(*) FROM $DB${i}.$TABLE;" | awk '/COUNT/{print $2}') @@ -126,7 +126,7 @@ for i in $(seq $DB_COUNT); do done echo "v4.0.8 version restore start..." -run_br restore full -s "gcs://$BUCKET/${DB}_old" --pd $PD_ADDR --gcs.endpoint="http://$GCS_HOST:$GCS_PORT/storage/v1/" --check-requirements=false +run_br restore full --filter '*.*' --filter '!mysql.*' -s "gcs://$BUCKET/${DB}_old" --pd $PD_ADDR --gcs.endpoint="http://$GCS_HOST:$GCS_PORT/storage/v1/" --check-requirements=false for i in $(seq $DB_COUNT); do row_count_new[${i}]=$(run_sql "SELECT COUNT(*) FROM $DB${i}.$TABLE;" | awk '/COUNT/{print $2}') diff --git a/br/tests/br_history/run.sh b/br/tests/br_history/run.sh index 161b01f8c8ba5..728583265adc4 100755 --- a/br/tests/br_history/run.sh +++ b/br/tests/br_history/run.sh @@ -43,7 +43,7 @@ run_br --pd $PD_ADDR backup full -s "local://$TEST_DIR/$DB" --timeago "10s" # restore full echo "restore start..." -run_br restore full -s "local://$TEST_DIR/$DB" --pd $PD_ADDR +run_br restore full --filter '*.*' --filter '!mysql.*' -s "local://$TEST_DIR/$DB" --pd $PD_ADDR for i in $(seq $DB_COUNT); do row_count_new[${i}]=$(run_sql "SELECT COUNT(*) FROM $DB${i}.$TABLE;" | awk '/COUNT/{print $2}') diff --git a/br/tests/br_incremental_same_table/run.sh b/br/tests/br_incremental_same_table/run.sh index 67b502ae819d1..021f6b020f460 100755 --- a/br/tests/br_incremental_same_table/run.sh +++ b/br/tests/br_incremental_same_table/run.sh @@ -62,7 +62,7 @@ done # full restore echo "full restore start..." -run_br restore full -s "local://$TEST_DIR/$DB/full" --pd $PD_ADDR +run_br restore full --filter '*.*' --filter '!mysql.*' -s "local://$TEST_DIR/$DB/full" --pd $PD_ADDR row_count_full=$(run_sql "SELECT COUNT(*) FROM $DB.$TABLE;" | awk '/COUNT/{print $2}') # check full restore if [ "${row_count_full}" != "${ROW_COUNT}" ];then diff --git a/br/tests/br_insert_after_restore/run.sh b/br/tests/br_insert_after_restore/run.sh index 5d8aa947b43a4..a6a9872cc0003 100755 --- a/br/tests/br_insert_after_restore/run.sh +++ b/br/tests/br_insert_after_restore/run.sh @@ -48,7 +48,7 @@ run_sql "DROP DATABASE $DB;" # restore full echo "restore start..." -run_br restore full -s "local://$TEST_DIR/$DB" --pd $PD_ADDR +run_br restore full --filter '*.*' --filter '!mysql.*' -s "local://$TEST_DIR/$DB" --pd $PD_ADDR row_count_new=$(run_sql "SELECT COUNT(*) FROM $DB.$TABLE;" | awk '/COUNT/{print $2}') diff --git a/br/tests/br_other/run.sh b/br/tests/br_other/run.sh index 5e3a54053b6e3..91fa7c3d795b1 100644 --- a/br/tests/br_other/run.sh +++ b/br/tests/br_other/run.sh @@ -52,7 +52,7 @@ run_br debug backupmeta validate -s "local://$TEST_DIR/$DB" --offset 100 run_br validate checksum -s "local://$TEST_DIR/$DB" # Test validate checksum -for sst in $TEST_DIR/$DB/*.sst; do +for sst in $TEST_DIR/$DB/*/*.sst; do echo "corrupted!" >> $sst echo "$sst corrupted!" break diff --git a/br/tests/br_rawkv/client.go b/br/tests/br_rawkv/client.go index 8c63178abb4b6..a751891e1b306 100644 --- a/br/tests/br_rawkv/client.go +++ b/br/tests/br_rawkv/client.go @@ -141,7 +141,6 @@ func randGen(client *rawkv.Client, startKey, endKey []byte, maxLen int, concurre errCh <- errors.Trace(err) } } - } }() } diff --git a/br/tests/br_restore_TDE_enable/run.sh b/br/tests/br_restore_TDE_enable/run.sh index 793a390951a6e..4b10f8d86744d 100755 --- a/br/tests/br_restore_TDE_enable/run.sh +++ b/br/tests/br_restore_TDE_enable/run.sh @@ -119,7 +119,7 @@ bin/tikv-ctl --config=tests/config/tikv.toml encryption-meta dump-file | grep "A RESTORE_LOG="restore.log" rm -f $RESTORE_LOG unset BR_LOG_TO_TERM - run_br restore full -s "s3://mybucket/$DB?$S3_KEY" --pd $PD_ADDR --s3.endpoint="http://$S3_ENDPOINT" \ + run_br restore full --filter '*.*' --filter '!mysql.*' -s "s3://mybucket/$DB?$S3_KEY" --pd $PD_ADDR --s3.endpoint="http://$S3_ENDPOINT" \ --log-file $RESTORE_LOG for i in $(seq $DB_COUNT); do diff --git a/br/tests/br_s3/run.sh b/br/tests/br_s3/run.sh index df06051358ae5..30474f44e7b88 100755 --- a/br/tests/br_s3/run.sh +++ b/br/tests/br_s3/run.sh @@ -118,7 +118,7 @@ for p in $(seq 2); do RESTORE_LOG="restore.log" rm -f $RESTORE_LOG unset BR_LOG_TO_TERM - ( run_br restore full -s "s3://mybucket/$DB?$S3_KEY" --pd $PD_ADDR --s3.endpoint="http://$S3_ENDPOINT" \ + ( run_br restore full --filter '*.*' --filter '!mysql.*' -s "s3://mybucket/$DB?$S3_KEY" --pd $PD_ADDR --s3.endpoint="http://$S3_ENDPOINT" \ --ratelimit 1 \ --log-file $RESTORE_LOG || \ ( cat $RESTORE_LOG && BR_LOG_TO_TERM=1 && exit 1 ) ) & diff --git a/br/tests/br_skip_checksum/run.sh b/br/tests/br_skip_checksum/run.sh index fc7e7c7ed3535..35c49d05a3fa9 100755 --- a/br/tests/br_skip_checksum/run.sh +++ b/br/tests/br_skip_checksum/run.sh @@ -38,7 +38,7 @@ done # restore full, skipping genreate checksum. echo "restore start..." -run_br restore full -s "local://$TEST_DIR/$DB" --pd $PD_ADDR --ratelimit 1024 --checksum=false +run_br restore full --filter '*.*' --filter '!mysql.*' -s "local://$TEST_DIR/$DB" --pd $PD_ADDR --ratelimit 1024 --checksum=false for i in $(seq $DB_COUNT); do row_count_new[${i}]=$(run_sql "SELECT COUNT(*) FROM $DB${i}.$TABLE;" | awk '/COUNT/{print $2}') @@ -63,7 +63,7 @@ for i in $(seq $DB_COUNT); do run_sql "DROP DATABASE $DB${i};" done echo "restore(with checksum) start..." -run_br restore full -s "local://$TEST_DIR/$DB" --pd $PD_ADDR --ratelimit 1024 +run_br restore full --filter '*.*' --filter '!mysql.*' -s "local://$TEST_DIR/$DB" --pd $PD_ADDR --ratelimit 1024 for i in $(seq $DB_COUNT); do row_count_new[${i}]=$(run_sql "SELECT COUNT(*) FROM $DB${i}.$TABLE;" | awk '/COUNT/{print $2}') diff --git a/br/tests/br_small_batch_size/run.sh b/br/tests/br_small_batch_size/run.sh index bb91a3f9ad3c3..645c65141e46f 100755 --- a/br/tests/br_small_batch_size/run.sh +++ b/br/tests/br_small_batch_size/run.sh @@ -69,7 +69,7 @@ run_sql "drop database $DB" echo "restore start..." GO_FAILPOINTS="github.com/pingcap/tidb/br/pkg/task/small-batch-size=return(2)" \ -run_br restore full -s "local://$backup_dir" --pd $PD_ADDR --ratelimit 1024 +run_br restore full --filter '*.*' --filter '!mysql.*' -s "local://$backup_dir" --pd $PD_ADDR --ratelimit 1024 for i in $record_counts; do check_size "t$i" $i diff --git a/br/tests/br_split_region_fail/run.sh b/br/tests/br_split_region_fail/run.sh index 13b511313ebfa..6e8d93fdf646a 100644 --- a/br/tests/br_split_region_fail/run.sh +++ b/br/tests/br_split_region_fail/run.sh @@ -47,7 +47,7 @@ echo "restore start..." unset BR_LOG_TO_TERM GO_FAILPOINTS="github.com/pingcap/tidb/br/pkg/restore/not-leader-error=1*return(true)->1*return(false);\ github.com/pingcap/tidb/br/pkg/restore/somewhat-retryable-error=3*return(true)" \ -run_br restore full -s "local://$TEST_DIR/$DB" --pd $PD_ADDR --ratelimit 1024 --log-file $LOG || true +run_br restore full --filter '*.*' --filter '!mysql.*' -s "local://$TEST_DIR/$DB" --pd $PD_ADDR --ratelimit 1024 --log-file $LOG || true BR_LOG_TO_TERM=1 grep "a error occurs on split region" $LOG && \ diff --git a/br/tests/br_table_filter/run.sh b/br/tests/br_table_filter/run.sh index 272e1fce25c5c..ee90fcc4639c9 100755 --- a/br/tests/br_table_filter/run.sh +++ b/br/tests/br_table_filter/run.sh @@ -39,7 +39,7 @@ echo 'Simple check' run_br backup full -f "$DB.*" -s "local://$TEST_DIR/$DB/full" --pd $PD_ADDR run_sql "drop schema $DB;" -run_br restore full -s "local://$TEST_DIR/$DB/full" --pd $PD_ADDR +run_br restore full --filter '*.*' --filter '!mysql.*' -s "local://$TEST_DIR/$DB/full" --pd $PD_ADDR run_sql "select c from $DB.one;" run_sql "select c from $DB.two;" @@ -53,7 +53,7 @@ echo 'Filtered backup check' run_br backup full -f "$DB.t*" -s "local://$TEST_DIR/$DB/t" --pd $PD_ADDR run_sql "drop schema $DB;" -run_br restore full -s "local://$TEST_DIR/$DB/t" --pd $PD_ADDR +run_br restore full --filter '*.*' --filter '!mysql.*' -s "local://$TEST_DIR/$DB/t" --pd $PD_ADDR ! run_sql "select c from $DB.one;" run_sql "select c from $DB.two;" @@ -105,10 +105,10 @@ run_sql 'select c from '"$DB"'.`the,special,table`;' echo 'Case sensitive backup check' run_sql "drop schema $DB;" -run_br restore full --case-sensitive -s "local://$TEST_DIR/$DB/full" --pd $PD_ADDR +run_br restore full --filter '*.*' --filter '!mysql.*' --case-sensitive -s "local://$TEST_DIR/$DB/full" --pd $PD_ADDR run_br backup full --case-sensitive -f "$DB.[oF]*" -s "local://$TEST_DIR/$DB/of" --pd $PD_ADDR run_sql "drop schema $DB;" -run_br restore full --case-sensitive -s "local://$TEST_DIR/$DB/of" --pd $PD_ADDR +run_br restore full --filter '*.*' --filter '!mysql.*' --case-sensitive -s "local://$TEST_DIR/$DB/of" --pd $PD_ADDR run_sql "select c from $DB.one;" ! run_sql "select c from $DB.two;" diff --git a/br/tests/br_table_partition/run.sh b/br/tests/br_table_partition/run.sh index 87cd79a49c26c..74eec09f85ff3 100755 --- a/br/tests/br_table_partition/run.sh +++ b/br/tests/br_table_partition/run.sh @@ -38,7 +38,7 @@ run_sql "DROP DATABASE $DB;" # restore full echo "restore start..." -run_br restore full -s "local://$TEST_DIR/$DB" --pd $PD_ADDR +run_br restore full --filter '*.*' --filter '!mysql.*' -s "local://$TEST_DIR/$DB" --pd $PD_ADDR for i in $(seq $TABLE_COUNT) _Hash _List; do run_sql "SHOW CREATE TABLE $DB.$TABLE${i};" | grep 'PARTITION' diff --git a/br/tests/br_tiflash/run.sh b/br/tests/br_tiflash/run.sh index 2d8b0d6419256..e507f23f03a04 100644 --- a/br/tests/br_tiflash/run.sh +++ b/br/tests/br_tiflash/run.sh @@ -52,7 +52,7 @@ rm -rf "/${TEST_DIR}/$DB" run_br backup full -s "local://$TEST_DIR/$DB" --pd $PD_ADDR run_sql "DROP DATABASE $DB" -run_br restore full -s "local://$TEST_DIR/$DB" --pd $PD_ADDR +run_br restore full --filter '*.*' --filter '!mysql.*' -s "local://$TEST_DIR/$DB" --pd $PD_ADDR # wating for TiFlash sync sleep 100 diff --git a/br/tests/br_tikv_outage/run.sh b/br/tests/br_tikv_outage/run.sh index d419e3d0ee95b..2f1247c06ad36 100644 --- a/br/tests/br_tikv_outage/run.sh +++ b/br/tests/br_tikv_outage/run.sh @@ -18,7 +18,7 @@ for failure in $cases; do rm -f "$hint_finegrained" "$hint_backup_start" "$hint_get_backup_client" export GO_FAILPOINTS="github.com/pingcap/tidb/br/pkg/backup/hint-backup-start=1*return(\"$hint_backup_start\");\ github.com/pingcap/tidb/br/pkg/backup/hint-fine-grained-backup=1*return(\"$hint_finegrained\");\ -github.com/pingcap/tidb/br/pkg/conn/hint-get-backup-client=1*return(\"$hint_get_backup_client\")" +github.com/pingcap/tidb/br/pkg/utils/hint-get-backup-client=1*return(\"$hint_get_backup_client\")" backup_dir=${TEST_DIR:?}/"backup{test:${TEST_NAME}|with:${failure}}" rm -rf "${backup_dir:?}" diff --git a/br/tests/br_tikv_outage2/run.sh b/br/tests/br_tikv_outage2/run.sh index a482af29a08a0..aa963dfd52914 100644 --- a/br/tests/br_tikv_outage2/run.sh +++ b/br/tests/br_tikv_outage2/run.sh @@ -18,7 +18,7 @@ for failure in $cases; do rm -f "$hint_finegrained" "$hint_backup_start" "$hint_get_backup_client" export GO_FAILPOINTS="github.com/pingcap/tidb/br/pkg/backup/hint-backup-start=1*return(\"$hint_backup_start\");\ github.com/pingcap/tidb/br/pkg/backup/hint-fine-grained-backup=1*return(\"$hint_finegrained\");\ -github.com/pingcap/tidb/br/pkg/conn/hint-get-backup-client=1*return(\"$hint_get_backup_client\")" +github.com/pingcap/tidb/br/pkg/utils/hint-get-backup-client=1*return(\"$hint_get_backup_client\")" if [ "$failure" = outage-at-finegrained ]; then export GO_FAILPOINTS="$GO_FAILPOINTS;github.com/pingcap/tidb/br/pkg/backup/noop-backup=return(true)" fi diff --git a/build/BUILD.bazel b/build/BUILD.bazel index 396f4e943ed06..2da990828fcd3 100644 --- a/build/BUILD.bazel +++ b/build/BUILD.bazel @@ -133,7 +133,10 @@ nogo( "//build/linter/unconvert:unconvert", ] + staticcheck_analyzers(STATICHECK_ANALYZERS) + select({ - "//build:with_nogo": ["//build/linter/errcheck:errcheck"], + "//build:with_nogo": [ + "//build/linter/errcheck:errcheck", + "//build/linter/revive:revive", + ], "//conditions:default": [], }), ) diff --git a/build/linter/ineffassign/BUILD.bazel b/build/linter/ineffassign/BUILD.bazel index 706ea59702019..999f75af56a4b 100644 --- a/build/linter/ineffassign/BUILD.bazel +++ b/build/linter/ineffassign/BUILD.bazel @@ -5,5 +5,8 @@ go_library( srcs = ["analyzer.go"], importpath = "github.com/pingcap/tidb/build/linter/ineffassign", visibility = ["//visibility:public"], - deps = ["@com_github_gordonklaus_ineffassign//pkg/ineffassign"], + deps = [ + "//build/linter/util", + "@com_github_gordonklaus_ineffassign//pkg/ineffassign", + ], ) diff --git a/build/linter/ineffassign/analyzer.go b/build/linter/ineffassign/analyzer.go index 42179cb3ad567..0651b6a944f59 100644 --- a/build/linter/ineffassign/analyzer.go +++ b/build/linter/ineffassign/analyzer.go @@ -14,7 +14,14 @@ package ineffassign -import "github.com/gordonklaus/ineffassign/pkg/ineffassign" +import ( + "github.com/gordonklaus/ineffassign/pkg/ineffassign" + "github.com/pingcap/tidb/build/linter/util" +) // Analyzer is the analyzer struct of ineffassign. var Analyzer = ineffassign.Analyzer + +func init() { + util.SkipAnalyzer(Analyzer) +} diff --git a/build/linter/revive/BUILD.bazel b/build/linter/revive/BUILD.bazel new file mode 100644 index 0000000000000..922f493b7160c --- /dev/null +++ b/build/linter/revive/BUILD.bazel @@ -0,0 +1,17 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "revive", + srcs = ["analyzer.go"], + importpath = "github.com/pingcap/tidb/build/linter/revive", + visibility = ["//visibility:public"], + deps = [ + "//build/linter/util", + "@com_github_mgechev_revive//config", + "@com_github_mgechev_revive//lint", + "@com_github_mgechev_revive//rule", + "@com_github_pingcap_log//:log", + "@org_golang_x_tools//go/analysis", + "@org_uber_go_zap//:zap", + ], +) diff --git a/build/linter/revive/analyzer.go b/build/linter/revive/analyzer.go new file mode 100644 index 0000000000000..93b67358808e2 --- /dev/null +++ b/build/linter/revive/analyzer.go @@ -0,0 +1,194 @@ +// Copyright 2022 PingCAP, Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package revive + +import ( + "encoding/json" + "fmt" + "go/token" + "os" + + "github.com/mgechev/revive/config" + "github.com/mgechev/revive/lint" + "github.com/mgechev/revive/rule" + "github.com/pingcap/log" + "github.com/pingcap/tidb/build/linter/util" + "go.uber.org/zap" + "golang.org/x/tools/go/analysis" +) + +// Analyzer is the analyzer struct of gofmt. +var Analyzer = &analysis.Analyzer{ + Name: "revive", + Doc: "~6x faster, stricter, configurable, extensible, and beautiful drop-in replacement for golint", + Run: run, +} + +func init() { + util.SkipAnalyzer(Analyzer) +} + +// jsonObject defines a JSON object of a failure +type jsonObject struct { + Severity lint.Severity + lint.Failure `json:",inline"` +} + +var defaultRules = []lint.Rule{ + //&rule.VarDeclarationsRule{}, + &rule.PackageCommentsRule{}, + &rule.DotImportsRule{}, + &rule.BlankImportsRule{}, + &rule.ExportedRule{}, + &rule.VarNamingRule{}, + &rule.IndentErrorFlowRule{}, + &rule.RangeRule{}, + &rule.ErrorfRule{}, + &rule.ErrorNamingRule{}, + &rule.ErrorStringsRule{}, + &rule.ReceiverNamingRule{}, + &rule.IncrementDecrementRule{}, + &rule.ErrorReturnRule{}, + //&rule.UnexportedReturnRule{}, + &rule.TimeNamingRule{}, + &rule.ContextKeysType{}, + &rule.ContextAsArgumentRule{}, +} + +var allRules = append([]lint.Rule{ + //&rule.ArgumentsLimitRule{}, + //&rule.CyclomaticRule{}, + //&rule.FileHeaderRule{}, + &rule.EmptyBlockRule{}, + &rule.SuperfluousElseRule{}, + //&rule.ConfusingNamingRule{}, + &rule.GetReturnRule{}, + &rule.ModifiesParamRule{}, + &rule.ConfusingResultsRule{}, + //&rule.DeepExitRule{}, + &rule.UnusedParamRule{}, + &rule.UnreachableCodeRule{}, + //&rule.AddConstantRule{}, + //&rule.FlagParamRule{}, + &rule.UnnecessaryStmtRule{}, + //&rule.StructTagRule{}, + &rule.ModifiesValRecRule{}, + &rule.ConstantLogicalExprRule{}, + &rule.BoolLiteralRule{}, + //&rule.RedefinesBuiltinIDRule{}, + &rule.ImportsBlacklistRule{}, + //&rule.FunctionResultsLimitRule{}, + //&rule.MaxPublicStructsRule{}, + &rule.RangeValInClosureRule{}, + &rule.RangeValAddress{}, + &rule.WaitGroupByValueRule{}, + &rule.AtomicRule{}, + &rule.EmptyLinesRule{}, + //&rule.LineLengthLimitRule{}, + &rule.CallToGCRule{}, + &rule.DuplicatedImportsRule{}, + //&rule.ImportShadowingRule{}, + //&rule.BareReturnRule{}, + &rule.UnusedReceiverRule{}, + //&rule.UnhandledErrorRule{}, + //&rule.CognitiveComplexityRule{}, + &rule.StringOfIntRule{}, + &rule.StringFormatRule{}, + //&rule.EarlyReturnRule{}, + &rule.UnconditionalRecursionRule{}, + &rule.IdenticalBranchesRule{}, + &rule.DeferRule{}, + &rule.UnexportedNamingRule{}, + //&rule.FunctionLength{}, + //&rule.NestedStructs{}, + &rule.IfReturnRule{}, + &rule.UselessBreak{}, + &rule.TimeEqualRule{}, + //&rule.BannedCharsRule{}, + &rule.OptimizeOperandsOrderRule{}, +}, defaultRules...) + +func run(pass *analysis.Pass) (any, error) { + files := make([]string, 0, len(pass.Files)) + for _, file := range pass.Files { + files = append(files, pass.Fset.PositionFor(file.Pos(), false).Filename) + } + packages := [][]string{files} + + revive := lint.New(os.ReadFile, 1024) + conf := lint.Config{ + IgnoreGeneratedHeader: false, + Confidence: 0.8, + Severity: "error", + ErrorCode: -1, + WarningCode: -1, + Rules: map[string]lint.RuleConfig{}, + } + for _, r := range allRules { + conf.Rules[r.Name()] = lint.RuleConfig{} + } + lintingRules, err := config.GetLintingRules(&conf, []lint.Rule{}) + if err != nil { + return nil, err + } + + failures, err := revive.Lint(packages, lintingRules, conf) + if err != nil { + return nil, err + } + + formatChan := make(chan lint.Failure) + exitChan := make(chan bool) + + formatter, err := config.GetFormatter("json") + if err != nil { + return nil, err + } + var output string + go func() { + output, err = formatter.Format(formatChan, conf) + if err != nil { + log.Error("Format error", zap.Error(err)) + } + exitChan <- true + }() + + for f := range failures { + if f.Confidence < conf.Confidence { + continue + } + + formatChan <- f + } + + close(formatChan) + <-exitChan + + var results []jsonObject + err = json.Unmarshal([]byte(output), &results) + if err != nil { + return nil, err + } + for i := range results { + res := &results[i] + text := fmt.Sprintf("%s: %s", res.RuleName, res.Failure.Failure) + fileContent, tf, err := util.ReadFile(pass.Fset, res.Position.Start.Filename) + if err != nil { + panic(err) + } + pass.Reportf(token.Pos(tf.Base()+util.FindOffset(string(fileContent), res.Position.Start.Line, res.Position.Start.Column)), text) + } + return nil, nil +} diff --git a/build/linter/util/util.go b/build/linter/util/util.go index afa56c515613f..7dbf016106f07 100644 --- a/build/linter/util/util.go +++ b/build/linter/util/util.go @@ -201,7 +201,6 @@ func FindOffset(fileText string, line, column int) int { } else { currentCol++ } - } return -1 //not found } diff --git a/build/nogo_config.json b/build/nogo_config.json index b766d3ec45a14..21ea44e21175f 100644 --- a/build/nogo_config.json +++ b/build/nogo_config.json @@ -231,6 +231,28 @@ ".*_generated\\.go$": "ignore generated code" } }, + "revive": { + "exclude_files": { + "/external/": "no need to vet third party code", + "GOROOT/": "ignore code", + "/cgo/": "ignore cgo", + "tools/": "ignore tool code", + "parser/goyacc/": "ignore goyacc code", + "parser/ast/": "ignore parser/ast code", + "parser/test_driver/": "ignore parser/test_driver code", + ".*_test\\.go$": "ignore generated code", + ".*_generated\\.go$": "ignore generated code" + }, + "only_files": { + "lock/": "lock file", + "errno/": "errno code", + "structure/": "structure code", + "telemetry/": "telemetry code", + "util/": "util code", + "parser/": "parser code", + "meta/": "parser code" + } + }, "shift": { "exclude_files": { "/external/": "no need to vet third party code", diff --git a/cmd/ddltest/BUILD.bazel b/cmd/ddltest/BUILD.bazel index 295d073c6c02d..6870dddb5fd04 100644 --- a/cmd/ddltest/BUILD.bazel +++ b/cmd/ddltest/BUILD.bazel @@ -9,6 +9,7 @@ go_test( "main_test.go", "random_test.go", ], + flaky = True, deps = [ "//ddl", "//domain", diff --git a/cmd/explaintest/BUILD.bazel b/cmd/explaintest/BUILD.bazel index 85c88a8256bb6..48049b3d28a53 100644 --- a/cmd/explaintest/BUILD.bazel +++ b/cmd/explaintest/BUILD.bazel @@ -28,4 +28,5 @@ go_test( name = "explaintest_test", srcs = ["main_test.go"], embed = [":explaintest_lib"], + flaky = True, ) diff --git a/cmd/explaintest/r/index_merge.result b/cmd/explaintest/r/index_merge.result index 5c7fece7d5161..32b2369d0c549 100644 --- a/cmd/explaintest/r/index_merge.result +++ b/cmd/explaintest/r/index_merge.result @@ -452,9 +452,9 @@ c1 c2 c3 ///// MEMORY Table explain select count(c1) from (select /*+ use_index_merge(t_alias), stream_agg() */ count(1) c1 from information_schema.statements_summary where sum_latency >= 0 or max_latency >= 0 order by 1) dt; id estRows task access object operator info -StreamAgg_10 1.00 root funcs:count(Column#92)->Column#93 -└─Sort_11 1.00 root Column#92 - └─StreamAgg_14 1.00 root funcs:count(1)->Column#92 +StreamAgg_10 1.00 root funcs:count(Column#93)->Column#94 +└─Sort_11 1.00 root Column#93 + └─StreamAgg_14 1.00 root funcs:count(1)->Column#93 └─MemTableScan_18 10000.00 root table:STATEMENTS_SUMMARY show warnings; Level Code Message diff --git a/cmd/importer/BUILD.bazel b/cmd/importer/BUILD.bazel index 4f3907a2535ce..c8d8713c807f7 100644 --- a/cmd/importer/BUILD.bazel +++ b/cmd/importer/BUILD.bazel @@ -44,4 +44,5 @@ go_test( name = "importer_test", srcs = ["db_test.go"], embed = [":importer_lib"], + flaky = True, ) diff --git a/config/BUILD.bazel b/config/BUILD.bazel index fd000f17f4b8b..895971b701dcf 100644 --- a/config/BUILD.bazel +++ b/config/BUILD.bazel @@ -35,6 +35,7 @@ go_test( ], data = glob(["**"]), embed = [":config"], + flaky = True, deps = [ "//testkit/testsetup", "//util/logutil", diff --git a/config/config.go b/config/config.go index d5bca9f1c2692..193beee961f63 100644 --- a/config/config.go +++ b/config/config.go @@ -259,8 +259,6 @@ type Config struct { // EnableGlobalKill indicates whether to enable global kill. TrxSummary TrxSummary `toml:"transaction-summary" json:"transaction-summary"` EnableGlobalKill bool `toml:"enable-global-kill" json:"enable-global-kill"` - // LogBackup controls the log backup related items. - LogBackup LogBackup `toml:"log-backup" json:"log-backup"` // The following items are deprecated. We need to keep them here temporarily // to support the upgrade process. They can be removed in future. @@ -952,10 +950,6 @@ var defaultConf = Config{ NewCollationsEnabledOnFirstBootstrap: true, EnableGlobalKill: true, TrxSummary: DefaultTrxSummary(), - LogBackup: LogBackup{ - Advancer: logbackupconf.Default(), - Enabled: false, - }, } var ( diff --git a/ddl/BUILD.bazel b/ddl/BUILD.bazel index f02b31b630067..4774f5e9d883f 100644 --- a/ddl/BUILD.bazel +++ b/ddl/BUILD.bazel @@ -6,16 +6,19 @@ go_library( "backfilling.go", "callback.go", "column.go", + "constant.go", "ddl.go", "ddl_algorithm.go", "ddl_api.go", "ddl_tiflash_api.go", "ddl_worker.go", + "ddl_workerpool.go", "delete_range.go", "delete_range_util.go", "foreign_key.go", "generated_column.go", "index.go", + "job_table.go", "mock.go", "multi_schema_change.go", "options.go", @@ -144,6 +147,7 @@ go_test( "index_change_test.go", "index_modify_test.go", "integration_test.go", + "job_table_test.go", "main_test.go", "modify_column_test.go", "multi_schema_change_test.go", diff --git a/ddl/backfilling.go b/ddl/backfilling.go index 0b4ff4b6d554e..6a1e5ff0ecfa5 100644 --- a/ddl/backfilling.go +++ b/ddl/backfilling.go @@ -409,7 +409,7 @@ func (w *worker) handleReorgTasks(reorgInfo *reorgInfo, totalAddedCount *int64, if err != nil { // Update the reorg handle that has been processed. - err1 := reorgInfo.UpdateReorgMeta(nextKey) + err1 := reorgInfo.UpdateReorgMeta(nextKey, w.sessPool) metrics.BatchAddIdxHistogram.WithLabelValues(metrics.LblError).Observe(elapsedTime.Seconds()) logutil.BgLogger().Warn("[ddl] backfill worker handle batch tasks failed", zap.ByteString("elementType", reorgInfo.currElement.TypeKey), diff --git a/ddl/callback.go b/ddl/callback.go index e74c405af44d2..84b22cdfed944 100644 --- a/ddl/callback.go +++ b/ddl/callback.go @@ -39,7 +39,7 @@ type Interceptor interface { type BaseInterceptor struct{} // OnGetInfoSchema implements Interceptor.OnGetInfoSchema interface. -func (bi *BaseInterceptor) OnGetInfoSchema(ctx sessionctx.Context, is infoschema.InfoSchema) infoschema.InfoSchema { +func (*BaseInterceptor) OnGetInfoSchema(_ sessionctx.Context, is infoschema.InfoSchema) infoschema.InfoSchema { return is } @@ -55,6 +55,10 @@ type Callback interface { OnJobUpdated(job *model.Job) // OnWatched is called after watching owner is completed. OnWatched(ctx context.Context) + // OnGetJobBefore is called before getting job. + OnGetJobBefore(jobType string) + // OnGetJobAfter is called after getting job. + OnGetJobAfter(jobType string, job *model.Job) } // BaseCallback implements Callback.OnChanged interface. @@ -62,27 +66,37 @@ type BaseCallback struct { } // OnChanged implements Callback interface. -func (c *BaseCallback) OnChanged(err error) error { +func (*BaseCallback) OnChanged(err error) error { return err } // OnSchemaStateChanged implements Callback interface. -func (c *BaseCallback) OnSchemaStateChanged() { +func (*BaseCallback) OnSchemaStateChanged() { // Nothing to do. } // OnJobRunBefore implements Callback.OnJobRunBefore interface. -func (c *BaseCallback) OnJobRunBefore(job *model.Job) { +func (*BaseCallback) OnJobRunBefore(_ *model.Job) { // Nothing to do. } // OnJobUpdated implements Callback.OnJobUpdated interface. -func (c *BaseCallback) OnJobUpdated(job *model.Job) { +func (*BaseCallback) OnJobUpdated(job *model.Job) { // Nothing to do. } // OnWatched implements Callback.OnWatched interface. -func (c *BaseCallback) OnWatched(ctx context.Context) { +func (*BaseCallback) OnWatched(ctx context.Context) { + // Nothing to do. +} + +// OnGetJobBefore implements Callback.OnGetJobBefore interface. +func (c *BaseCallback) OnGetJobBefore(jobType string) { + // Nothing to do. +} + +// OnGetJobAfter implements Callback.OnGetJobAfter interface. +func (c *BaseCallback) OnGetJobAfter(jobType string, job *model.Job) { // Nothing to do. } @@ -160,7 +174,7 @@ func (c *ctcCallback) OnSchemaStateChanged() { } // OnJobRunBefore is used to run the user customized logic of `onJobRunBefore` first. -func (c *ctcCallback) OnJobRunBefore(job *model.Job) { +func (*ctcCallback) OnJobRunBefore(job *model.Job) { log.Info("on job run before", zap.String("job", job.String())) // Only block the ctc type ddl here. if job.Type != model.ActionModifyColumn { diff --git a/ddl/callback_test.go b/ddl/callback_test.go index c8975da252cad..85e26209fff7c 100644 --- a/ddl/callback_test.go +++ b/ddl/callback_test.go @@ -52,6 +52,8 @@ type TestDDLCallback struct { onJobUpdated func(*model.Job) OnJobUpdatedExported func(*model.Job) onWatched func(ctx context.Context) + OnGetJobBeforeExported func(string) + OnGetJobAfterExported func(string, *model.Job) } // OnChanged mock the same behavior with the main DDL hook. @@ -118,6 +120,24 @@ func (tc *TestDDLCallback) OnWatched(ctx context.Context) { tc.BaseCallback.OnWatched(ctx) } +// OnGetJobBefore implements Callback.OnGetJobBefore interface. +func (tc *TestDDLCallback) OnGetJobBefore(jobType string) { + if tc.OnGetJobBeforeExported != nil { + tc.OnGetJobBeforeExported(jobType) + return + } + tc.BaseCallback.OnGetJobBefore(jobType) +} + +// OnGetJobAfter implements Callback.OnGetJobAfter interface. +func (tc *TestDDLCallback) OnGetJobAfter(jobType string, job *model.Job) { + if tc.OnGetJobAfterExported != nil { + tc.OnGetJobAfterExported(jobType, job) + return + } + tc.BaseCallback.OnGetJobAfter(jobType, job) +} + func TestCallback(t *testing.T) { cb := &BaseCallback{} require.Nil(t, cb.OnChanged(nil)) diff --git a/ddl/column.go b/ddl/column.go index b31300d07e0ae..6fa7ad94dbbf4 100644 --- a/ddl/column.go +++ b/ddl/column.go @@ -119,7 +119,7 @@ func onAddColumn(d *ddlCtx, t *meta.Meta, job *model.Job) (ver int64, err error) if err != nil { if ifNotExists && infoschema.ErrColumnExists.Equal(err) { job.Warning = toTError(err) - job.FinishTableJob(model.JobStateDone, model.StatePublic, ver, tblInfo) + job.State = model.JobStateDone return ver, nil } return ver, errors.Trace(err) @@ -230,7 +230,7 @@ func onDropColumn(d *ddlCtx, t *meta.Meta, job *model.Job) (ver int64, _ error) if ifExists && dbterror.ErrCantDropFieldOrKey.Equal(err) { // Convert the "not exists" error to a warning. job.Warning = toTError(err) - job.FinishTableJob(model.JobStateDone, model.StateNone, ver, tblInfo) + job.State = model.JobStateDone return ver, nil } return ver, errors.Trace(err) @@ -260,6 +260,7 @@ func onDropColumn(d *ddlCtx, t *meta.Meta, job *model.Job) (ver int64, _ error) case model.StateWriteOnly: // write only -> delete only colInfo.State = model.StateDeleteOnly + tblInfo.MoveColumnInfo(colInfo.Offset, len(tblInfo.Columns)-1) if len(idxInfos) > 0 { newIndices := make([]*model.IndexInfo, 0, len(tblInfo.Indices)) for _, idx := range tblInfo.Indices { @@ -277,6 +278,7 @@ func onDropColumn(d *ddlCtx, t *meta.Meta, job *model.Job) (ver int64, _ error) case model.StateDeleteOnly: // delete only -> reorganization colInfo.State = model.StateDeleteReorganization + tblInfo.MoveColumnInfo(colInfo.Offset, len(tblInfo.Columns)-1) ver, err = updateVersionAndTableInfo(d, t, job, tblInfo, originalState != colInfo.State) if err != nil { return ver, errors.Trace(err) @@ -329,7 +331,7 @@ func checkDropColumn(t *meta.Meta, job *model.Job) (*model.TableInfo, *model.Col job.State = model.JobStateCancelled return nil, nil, nil, ifExists, dbterror.ErrCantDropFieldOrKey.GenWithStack("column %s doesn't exist", colName) } - if err = isDroppableColumn(job.MultiSchemaInfo != nil, tblInfo, colName); err != nil { + if err = isDroppableColumn(tblInfo, colName); err != nil { job.State = model.JobStateCancelled return nil, nil, nil, false, errors.Trace(err) } @@ -618,26 +620,41 @@ func rollbackModifyColumnJobWithData(d *ddlCtx, t *meta.Meta, tblInfo *model.Tab // Reset PreventNullInsertFlag flag. tblInfo.Columns[oldCol.Offset].SetFlag(oldCol.GetFlag() &^ mysql.PreventNullInsertFlag) } + var changingIdxIDs []int64 if modifyInfo.changingCol != nil { - // changingCol isn't nil means the job has been in the mid state. These appended changingCol and changingIndex should + changingIdxIDs = buildRelatedIndexIDs(tblInfo, modifyInfo.changingCol.ID) + // The job is in the middle state. The appended changingCol and changingIndex should // be removed from the tableInfo as well. - tblInfo.Columns = tblInfo.Columns[:len(tblInfo.Columns)-1] - tblInfo.Indices = tblInfo.Indices[:len(tblInfo.Indices)-len(modifyInfo.changingIdxs)] + removeChangingColAndIdxs(tblInfo, modifyInfo.changingCol.ID) } ver, err = updateVersionAndTableInfoWithCheck(d, t, job, tblInfo, true) if err != nil { return ver, errors.Trace(err) } job.FinishTableJob(model.JobStateRollbackDone, model.StateNone, ver, tblInfo) - // Refactor the job args to add the abandoned temporary index ids into delete range table. - idxIDs := make([]int64, 0, len(modifyInfo.changingIdxs)) - for _, idx := range modifyInfo.changingIdxs { - idxIDs = append(idxIDs, idx.ID) - } - job.Args = []interface{}{idxIDs, getPartitionIDs(tblInfo)} + // Reconstruct the job args to add the temporary index ids into delete range table. + job.Args = []interface{}{changingIdxIDs, getPartitionIDs(tblInfo)} return ver, nil } +func removeChangingColAndIdxs(tblInfo *model.TableInfo, changingColID int64) { + restIdx := tblInfo.Indices[:0] + for _, idx := range tblInfo.Indices { + if !idx.HasColumnInIndexColumns(tblInfo, changingColID) { + restIdx = append(restIdx, idx) + } + } + tblInfo.Indices = restIdx + + restCols := tblInfo.Columns[:0] + for _, c := range tblInfo.Columns { + if c.ID != changingColID { + restCols = append(restCols, c) + } + } + tblInfo.Columns = restCols +} + func (w *worker) doModifyColumnTypeWithData( d *ddlCtx, t *meta.Meta, job *model.Job, dbInfo *model.DBInfo, tblInfo *model.TableInfo, changingCol, oldCol *model.ColumnInfo, @@ -646,7 +663,7 @@ func (w *worker) doModifyColumnTypeWithData( originalState := changingCol.State targetCol := changingCol.Clone() targetCol.Name = colName - changingIdxs := getRelatedIndexInfos(tblInfo, changingCol.ID) + changingIdxs := buildRelatedIndexInfos(tblInfo, changingCol.ID) switch changingCol.State { case model.StateNone: // Column from null to not null. @@ -686,7 +703,7 @@ func (w *worker) doModifyColumnTypeWithData( // Make sure job args change after `updateVersionAndTableInfoWithCheck`, otherwise, the job args will // be updated in `updateDDLJob` even if it meets an error in `updateVersionAndTableInfoWithCheck`. job.SchemaState = model.StateDeleteOnly - metrics.GetBackfillProgressByLabel(metrics.LblModifyColumn).Set(0) + metrics.GetBackfillProgressByLabel(metrics.LblModifyColumn, job.SchemaName, tblInfo.Name.String()).Set(0) job.Args = append(job.Args, changingCol, changingIdxs, rmIdxIDs) case model.StateDeleteOnly: // Column from null to not null. @@ -733,7 +750,7 @@ func (w *worker) doModifyColumnTypeWithData( return ver, err } - rmIdxIDs = append(getRelatedIndexIDs(tblInfo, oldCol.ID), rmIdxIDs...) + rmIdxIDs = append(buildRelatedIndexIDs(tblInfo, oldCol.ID), rmIdxIDs...) err = adjustTableInfoAfterModifyColumnWithData(tblInfo, pos, oldCol, changingCol, colName, changingIdxs) if err != nil { @@ -776,7 +793,7 @@ func doReorgWorkForModifyColumnMultiSchema(w *worker, d *ddlCtx, t *meta.Meta, j func doReorgWorkForModifyColumn(w *worker, d *ddlCtx, t *meta.Meta, job *model.Job, tbl table.Table, oldCol, changingCol *model.ColumnInfo, changingIdxs []*model.IndexInfo) (done bool, ver int64, err error) { - rh := newReorgHandler(t) + rh := newReorgHandler(t, w.sess, w.concurrentDDL) reorgInfo, err := getReorgInfo(d.jobContext(job), d, rh, job, tbl, BuildElements(changingCol, changingIdxs)) if err != nil || reorgInfo.first { // If we run reorg firstly, we should update the job snapshot version @@ -926,27 +943,21 @@ func updateChangingCol(col *model.ColumnInfo, newName model.CIStr, newOffset int return col } -func getRelatedIndexInfos(tblInfo *model.TableInfo, colID int64) []*model.IndexInfo { +func buildRelatedIndexInfos(tblInfo *model.TableInfo, colID int64) []*model.IndexInfo { var indexInfos []*model.IndexInfo for _, idx := range tblInfo.Indices { - for _, idxCol := range idx.Columns { - if tblInfo.Columns[idxCol.Offset].ID == colID { - indexInfos = append(indexInfos, idx) - break - } + if idx.HasColumnInIndexColumns(tblInfo, colID) { + indexInfos = append(indexInfos, idx) } } return indexInfos } -func getRelatedIndexIDs(tblInfo *model.TableInfo, colID int64) []int64 { +func buildRelatedIndexIDs(tblInfo *model.TableInfo, colID int64) []int64 { var oldIdxIDs []int64 for _, idx := range tblInfo.Indices { - for _, idxCol := range idx.Columns { - if tblInfo.Columns[idxCol.Offset].ID == colID { - oldIdxIDs = append(oldIdxIDs, idx.ID) - break - } + if idx.HasColumnInIndexColumns(tblInfo, colID) { + oldIdxIDs = append(oldIdxIDs, idx.ID) } } return oldIdxIDs @@ -1053,7 +1064,7 @@ func (w *worker) updateColumnAndIndexes(t table.Table, oldCol, col *model.Column // Update the element in the reorgInfo for updating the reorg meta below. reorgInfo.currElement = reorgInfo.elements[i+1] // Write the reorg info to store so the whole reorganize process can recover from panic. - err := reorgInfo.UpdateReorgMeta(reorgInfo.StartKey) + err := reorgInfo.UpdateReorgMeta(reorgInfo.StartKey, w.sessPool) logutil.BgLogger().Info("[ddl] update column and indexes", zap.Int64("jobID", reorgInfo.Job.ID), zap.ByteString("elementType", reorgInfo.currElement.TypeKey), @@ -1094,7 +1105,7 @@ func newUpdateColumnWorker(sessCtx sessionctx.Context, id int, t table.PhysicalT backfillWorker: newBackfillWorker(sessCtx, id, t, reorgInfo), oldColInfo: oldCol, newColInfo: newCol, - metricCounter: metrics.BackfillTotalCounter.WithLabelValues("update_col_rate"), + metricCounter: metrics.BackfillTotalCounter.WithLabelValues(metrics.GenerateReorgLabel("update_col_rate", reorgInfo.SchemaName, t.Meta().Name.String())), rowDecoder: rowDecoder, rowMap: make(map[int64]types.Datum, len(decodeColMap)), sqlMode: reorgInfo.ReorgMeta.SQLMode, @@ -1560,7 +1571,7 @@ func isColumnWithIndex(colName string, indices []*model.IndexInfo) bool { return false } -func isColumnCanDropWithIndex(isMultiSchemaChange bool, colName string, indices []*model.IndexInfo) error { +func isColumnCanDropWithIndex(colName string, indices []*model.IndexInfo) error { for _, indexInfo := range indices { if indexInfo.Primary || len(indexInfo.Columns) > 1 { for _, col := range indexInfo.Columns { @@ -1569,9 +1580,6 @@ func isColumnCanDropWithIndex(isMultiSchemaChange bool, colName string, indices } } } - if len(indexInfo.Columns) == 1 && indexInfo.Columns[0].Name.L == colName && !isMultiSchemaChange { - return dbterror.ErrCantDropColWithIndex.GenWithStack("can't drop column %s with tidb_enable_change_multi_schema is disable", colName) - } } return nil } diff --git a/ddl/constant.go b/ddl/constant.go new file mode 100644 index 0000000000000..03e8d1fcfaaa5 --- /dev/null +++ b/ddl/constant.go @@ -0,0 +1,35 @@ +// Copyright 2022 PingCAP, Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package ddl + +import ( + "github.com/pingcap/tidb/meta" +) + +const ( + // JobTable stores the information of DDL jobs. + JobTable = "tidb_ddl_job" + // ReorgTable stores the information of DDL reorganization. + ReorgTable = "tidb_ddl_reorg" + // HistoryTable stores the history DDL jobs. + HistoryTable = "tidb_ddl_history" + + // JobTableID is the table ID of `tidb_ddl_job`. + JobTableID = meta.MaxInt48 - 1 + // ReorgTableID is the table ID of `tidb_ddl_reorg`. + ReorgTableID = meta.MaxInt48 - 2 + // HistoryTableID is the table ID of `tidb_ddl_history`. + HistoryTableID = meta.MaxInt48 - 3 +) diff --git a/ddl/db_cache_test.go b/ddl/db_cache_test.go index 8343cad58f37b..67aab9bb40edb 100644 --- a/ddl/db_cache_test.go +++ b/ddl/db_cache_test.go @@ -273,6 +273,7 @@ func TestIssue34069(t *testing.T) { store, clean := testkit.CreateMockStore(t) defer clean() sem.Enable() + defer sem.Disable() tk := testkit.NewTestKit(t, store) tk.Session().Auth(&auth.UserIdentity{Username: "root", Hostname: "%"}, nil, nil) diff --git a/ddl/db_change_test.go b/ddl/db_change_test.go index 5efbd6dc3b688..5589a3ff77c03 100644 --- a/ddl/db_change_test.go +++ b/ddl/db_change_test.go @@ -1378,7 +1378,7 @@ func prepareTestControlParallelExecSQL(t *testing.T, store kv.Storage, dom *doma require.NoError(t, err) txn, err := sess.Txn(true) require.NoError(t, err) - jobs, err := ddl.GetAllDDLJobs(meta.NewMeta(txn)) + jobs, err := ddl.GetAllDDLJobs(sess, meta.NewMeta(txn)) require.NoError(t, err) qLen = len(jobs) if qLen == 2 { @@ -1407,7 +1407,7 @@ func prepareTestControlParallelExecSQL(t *testing.T, store kv.Storage, dom *doma require.NoError(t, err) txn, err := sess.Txn(true) require.NoError(t, err) - jobs, err := ddl.GetAllDDLJobs(meta.NewMeta(txn)) + jobs, err := ddl.GetAllDDLJobs(sess, meta.NewMeta(txn)) require.NoError(t, err) qLen = len(jobs) if qLen == 1 { @@ -1961,19 +1961,6 @@ func TestExpressionIndexDDLError(t *testing.T) { tk.MustGetErrCode("alter table t drop column b", errno.ErrDependentByFunctionalIndex) } -func TestRestrainDropColumnWithIndex(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() - tk := testkit.NewTestKit(t, store) - tk.MustExec("use test") - tk.MustExec("create table t (a int, b int, index(a))") - tk.MustExec("set @@GLOBAL.tidb_enable_change_multi_schema=0") - tk.MustQuery("select @@tidb_enable_change_multi_schema").Check(testkit.Rows("0")) - tk.MustGetErrCode("alter table t drop column a", errno.ErrUnsupportedDDLOperation) - tk.MustExec("set @@GLOBAL.tidb_enable_change_multi_schema=1") - tk.MustExec("alter table t drop column a") -} - func TestParallelRenameTable(t *testing.T) { store, dom, clean := testkit.CreateMockStoreAndDomain(t) defer clean() diff --git a/ddl/db_integration_test.go b/ddl/db_integration_test.go index 4b1b510bfe1db..abbdc25775182 100644 --- a/ddl/db_integration_test.go +++ b/ddl/db_integration_test.go @@ -631,13 +631,6 @@ func TestErrnoErrorCode(t *testing.T) { tk.MustExec("create table test_error_code_null(c1 char(100) not null);") sql = "insert into test_error_code_null (c1) values(null);" tk.MustGetErrCode(sql, errno.ErrBadNull) - // disable tidb_enable_change_multi_schema - tk.MustExec("set global tidb_enable_change_multi_schema = false") - sql = "alter table test_error_code_null add column (x1 int, x2 int)" - tk.MustGetErrCode(sql, errno.ErrUnsupportedDDLOperation) - sql = "alter table test_error_code_null add column (x1 int, x2 int)" - tk.MustGetErrCode(sql, errno.ErrUnsupportedDDLOperation) - tk.MustExec("set global tidb_enable_change_multi_schema = true") } func TestTableDDLWithFloatType(t *testing.T) { diff --git a/ddl/db_partition_test.go b/ddl/db_partition_test.go index b112e85c8eb50..b155c0d27416f 100644 --- a/ddl/db_partition_test.go +++ b/ddl/db_partition_test.go @@ -563,6 +563,14 @@ create table log_message_1 ( "partition p1 values less than ('A'));", dbterror.ErrRangeNotIncreasing, }, + { + "create table t(d datetime)" + + "partition by range columns (d) (" + + "partition p0 values less than ('2022-01-01')," + + "partition p1 values less than (MAXVALUE), " + + "partition p2 values less than (MAXVALUE));", + dbterror.ErrRangeNotIncreasing, + }, { "CREATE TABLE t1(c0 INT) PARTITION BY HASH((NOT c0)) PARTITIONS 2;", dbterror.ErrPartitionFunctionIsNotAllowed, @@ -1994,6 +2002,40 @@ func TestAlterTableExchangePartition(t *testing.T) { tk.MustQuery("select * from e7").Check(testkit.Rows("1")) tk.MustGetErrCode("alter table e6 exchange partition p1 with table e7", tmysql.ErrRowDoesNotMatchPartition) + // validation test for list partition + tk.MustExec("set @@tidb_enable_list_partition=true") + tk.MustExec(`CREATE TABLE t1 (store_id int) + PARTITION BY LIST (store_id) ( + PARTITION pNorth VALUES IN (1, 2, 3, 4, 5), + PARTITION pEast VALUES IN (6, 7, 8, 9, 10), + PARTITION pWest VALUES IN (11, 12, 13, 14, 15), + PARTITION pCentral VALUES IN (16, 17, 18, 19, 20) + );`) + tk.MustExec(`create table t2 (store_id int);`) + tk.MustExec(`insert into t1 values (1);`) + tk.MustExec(`insert into t1 values (6);`) + tk.MustExec(`insert into t1 values (11);`) + tk.MustExec(`insert into t2 values (3);`) + tk.MustExec("alter table t1 exchange partition pNorth with table t2") + + tk.MustQuery("select * from t1 partition(pNorth)").Check(testkit.Rows("3")) + tk.MustGetErrCode("alter table t1 exchange partition pEast with table t2", tmysql.ErrRowDoesNotMatchPartition) + + // validation test for list columns partition + tk.MustExec(`CREATE TABLE t3 (id int, store_id int) + PARTITION BY LIST COLUMNS (id, store_id) ( + PARTITION p0 VALUES IN ((1, 1), (2, 2)), + PARTITION p1 VALUES IN ((3, 3), (4, 4)) + );`) + tk.MustExec(`create table t4 (id int, store_id int);`) + tk.MustExec(`insert into t3 values (1, 1);`) + tk.MustExec(`insert into t4 values (2, 2);`) + tk.MustExec("alter table t3 exchange partition p0 with table t4") + tk.MustQuery("show warnings").Check(testkit.Rows("Warning 1105 after the exchange, please analyze related table of the exchange to update statistics")) + + tk.MustQuery("select * from t3 partition(p0)").Check(testkit.Rows("2 2")) + tk.MustGetErrCode("alter table t3 exchange partition p1 with table t4", tmysql.ErrRowDoesNotMatchPartition) + // test exchange partition from different databases tk.MustExec("create table e8 (a int) partition by hash(a) partitions 2;") tk.MustExec("create database if not exists exchange_partition") @@ -2292,6 +2334,38 @@ func TestExchangePartitionTableCompatiable(t *testing.T) { "alter table pt27 exchange partition p0 with table nt27;", dbterror.ErrTablesDifferentMetadata, }, + { + "create table pt28 (a int primary key, b int, index(a)) partition by hash(a) partitions 1;", + "create table nt28 (a int not null, b int, index(a));", + "alter table pt28 exchange partition p0 with table nt28;", + dbterror.ErrTablesDifferentMetadata, + }, + { + "create table pt29 (a int primary key, b int) partition by hash(a) partitions 1;", + "create table nt29 (a int not null, b int, index(a));", + "alter table pt29 exchange partition p0 with table nt29;", + dbterror.ErrTablesDifferentMetadata, + }, + { + "create table pt30 (a int primary key, b int) partition by hash(a) partitions 1;", + "create table nt30 (a int, b int, unique index(a));", + "alter table pt30 exchange partition p0 with table nt30;", + dbterror.ErrTablesDifferentMetadata, + }, + { + // auto_increment + "create table pt31 (id bigint not null primary key auto_increment) partition by hash(id) partitions 1;", + "create table nt31 (id bigint not null primary key);", + "alter table pt31 exchange partition p0 with table nt31;", + dbterror.ErrTablesDifferentMetadata, + }, + { + // auto_random + "create table pt32 (id bigint not null primary key AUTO_RANDOM) partition by hash(id) partitions 1;", + "create table nt32 (id bigint not null primary key);", + "alter table pt32 exchange partition p0 with table nt32;", + dbterror.ErrTablesDifferentMetadata, + }, } tk := testkit.NewTestKit(t, store) @@ -2315,6 +2389,43 @@ func TestExchangePartitionTableCompatiable(t *testing.T) { require.NoError(t, err) } +func TestExchangePartitionHook(t *testing.T) { + store, dom, clean := testkit.CreateMockStoreAndDomain(t) + defer clean() + tk := testkit.NewTestKit(t, store) + // why use tkCancel, not tk. + tkCancel := testkit.NewTestKit(t, store) + + tk.MustExec("set @@tidb_enable_exchange_partition=1") + defer tk.MustExec("set @@tidb_enable_exchange_partition=0") + + tk.MustExec("use test") + tk.MustExec(`create table pt (a int) partition by range(a) ( + partition p0 values less than (3), + partition p1 values less than (6), + PARTITION p2 VALUES LESS THAN (9), + PARTITION p3 VALUES LESS THAN (MAXVALUE) + );`) + tk.MustExec(`create table nt(a int);`) + + tk.MustExec(`insert into pt values (0), (4), (7)`) + tk.MustExec("insert into nt values (1)") + + hook := &ddl.TestDDLCallback{Do: dom} + dom.DDL().SetHook(hook) + + hookFunc := func(job *model.Job) { + if job.Type == model.ActionExchangeTablePartition && job.SchemaState != model.StateNone { + tkCancel.MustExec("use test") + tkCancel.MustGetErrCode("insert into nt values (5)", tmysql.ErrRowDoesNotMatchGivenPartitionSet) + } + } + hook.OnJobUpdatedExported = hookFunc + + tk.MustExec("alter table pt exchange partition p0 with table nt") + tk.MustQuery("select * from pt partition(p0)").Check(testkit.Rows("1")) +} + func TestExchangePartitionExpressIndex(t *testing.T) { restore := config.RestoreFunc() defer restore() diff --git a/ddl/db_test.go b/ddl/db_test.go index 06d2f81b74c3a..5baa00377f19e 100644 --- a/ddl/db_test.go +++ b/ddl/db_test.go @@ -647,7 +647,7 @@ func TestAddExpressionIndexRollback(t *testing.T) { txn, err := ctx.Txn(true) require.NoError(t, err) m := meta.NewMeta(txn) - element, start, end, physicalID, err := m.GetDDLReorgHandle(currJob) + element, start, end, physicalID, err := ddl.NewReorgHandlerForTest(m, testkit.NewTestKit(t, store).Session()).GetDDLReorgHandle(currJob) require.True(t, meta.ErrDDLReorgElementNotExist.Equal(err)) require.Nil(t, element) require.Nil(t, start) @@ -918,6 +918,67 @@ func TestShardRowIDBitsOnTemporaryTable(t *testing.T) { dbterror.ErrUnsupportedLocalTempTableDDL.GenWithStackByArgs("ALTER TABLE").Error()) } +func TestAutoIncrementIDOnTemporaryTable(t *testing.T) { + store, clean := testkit.CreateMockStoreWithSchemaLease(t, dbTestLease) + defer clean() + tk := testkit.NewTestKit(t, store) + tk.MustExec("use test") + + // global temporary table with auto_increment=0 + tk.MustExec("drop table if exists global_temp_auto_id") + tk.MustExec("create global temporary table global_temp_auto_id(id int primary key auto_increment) on commit delete rows") + tk.MustExec("begin") + tk.MustQuery("show table global_temp_auto_id next_row_id").Check(testkit.Rows("test global_temp_auto_id id 1 AUTO_INCREMENT")) + tk.MustExec("insert into global_temp_auto_id value(null)") + tk.MustQuery("select @@last_insert_id").Check(testkit.Rows("1")) + tk.MustQuery("select id from global_temp_auto_id").Check(testkit.Rows("1")) + tk.MustQuery("show table global_temp_auto_id next_row_id").Check(testkit.Rows("test global_temp_auto_id id 2 AUTO_INCREMENT")) + tk.MustExec("commit") + tk.MustExec("drop table global_temp_auto_id") + + // global temporary table with auto_increment=100 + tk.MustExec("create global temporary table global_temp_auto_id(id int primary key auto_increment) auto_increment=100 on commit delete rows") + // the result should be the same in each transaction + for i := 0; i < 2; i++ { + tk.MustQuery("show create table global_temp_auto_id").Check(testkit.Rows("global_temp_auto_id CREATE GLOBAL TEMPORARY TABLE `global_temp_auto_id` (\n" + + " `id` int(11) NOT NULL AUTO_INCREMENT,\n" + + " PRIMARY KEY (`id`) /*T![clustered_index] CLUSTERED */\n" + + ") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin AUTO_INCREMENT=100 ON COMMIT DELETE ROWS")) + tk.MustQuery("show table global_temp_auto_id next_row_id").Check(testkit.Rows("test global_temp_auto_id id 100 AUTO_INCREMENT")) + tk.MustExec("begin") + tk.MustExec("insert into global_temp_auto_id value(null)") + tk.MustQuery("select @@last_insert_id").Check(testkit.Rows("100")) + tk.MustQuery("select id from global_temp_auto_id").Check(testkit.Rows("100")) + tk.MustQuery("show table global_temp_auto_id next_row_id").Check(testkit.Rows("test global_temp_auto_id id 101 AUTO_INCREMENT")) + tk.MustExec("commit") + } + tk.MustExec("drop table global_temp_auto_id") + + // local temporary table with auto_increment=0 + tk.MustExec("create temporary table local_temp_auto_id(id int primary key auto_increment)") + // It doesn't matter to report an error since `show next_row_id` is an extended syntax. + err := tk.QueryToErr("show table local_temp_auto_id next_row_id") + require.EqualError(t, err, "[schema:1146]Table 'test.local_temp_auto_id' doesn't exist") + tk.MustExec("insert into local_temp_auto_id value(null)") + tk.MustQuery("select @@last_insert_id").Check(testkit.Rows("1")) + tk.MustQuery("select id from local_temp_auto_id").Check(testkit.Rows("1")) + tk.MustExec("drop table local_temp_auto_id") + + // local temporary table with auto_increment=100 + tk.MustExec("create temporary table local_temp_auto_id(id int primary key auto_increment) auto_increment=100") + tk.MustQuery("show create table local_temp_auto_id").Check(testkit.Rows("local_temp_auto_id CREATE TEMPORARY TABLE `local_temp_auto_id` (\n" + + " `id` int(11) NOT NULL AUTO_INCREMENT,\n" + + " PRIMARY KEY (`id`) /*T![clustered_index] CLUSTERED */\n" + + ") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin AUTO_INCREMENT=100")) + tk.MustExec("insert into local_temp_auto_id value(null)") + tk.MustQuery("select @@last_insert_id").Check(testkit.Rows("100")) + tk.MustQuery("select id from local_temp_auto_id").Check(testkit.Rows("100")) + tk.MustQuery("show create table local_temp_auto_id").Check(testkit.Rows("local_temp_auto_id CREATE TEMPORARY TABLE `local_temp_auto_id` (\n" + + " `id` int(11) NOT NULL AUTO_INCREMENT,\n" + + " PRIMARY KEY (`id`) /*T![clustered_index] CLUSTERED */\n" + + ") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin AUTO_INCREMENT=101")) +} + func TestDDLJobErrorCount(t *testing.T) { store, dom, clean := testkit.CreateMockStoreAndDomainWithSchemaLease(t, dbTestLease) defer clean() @@ -1274,6 +1335,8 @@ func TestCancelJobWriteConflict(t *testing.T) { stmt := fmt.Sprintf("admin cancel ddl jobs %d", job.ID) require.NoError(t, failpoint.Enable("github.com/pingcap/tidb/kv/mockCommitErrorInNewTxn", `return("no_retry")`)) defer func() { require.NoError(t, failpoint.Disable("github.com/pingcap/tidb/kv/mockCommitErrorInNewTxn")) }() + require.NoError(t, failpoint.Enable("github.com/pingcap/tidb/ddl/mockCancelConcurencyDDL", `return(true)`)) + defer func() { require.NoError(t, failpoint.Disable("github.com/pingcap/tidb/ddl/mockCancelConcurencyDDL")) }() rs, cancelErr = tk2.Session().Execute(context.Background(), stmt) } } diff --git a/ddl/ddl.go b/ddl/ddl.go index 7ea6969353547..80e70eaa00375 100644 --- a/ddl/ddl.go +++ b/ddl/ddl.go @@ -23,6 +23,9 @@ import ( "encoding/json" "flag" "fmt" + "runtime" + "strconv" + "strings" "sync" "sync/atomic" "time" @@ -31,6 +34,7 @@ import ( "github.com/ngaut/pools" "github.com/pingcap/errors" "github.com/pingcap/failpoint" + "github.com/pingcap/kvproto/pkg/kvrpcpb" "github.com/pingcap/tidb/config" "github.com/pingcap/tidb/ddl/util" "github.com/pingcap/tidb/infoschema" @@ -50,9 +54,12 @@ import ( "github.com/pingcap/tidb/table" pumpcli "github.com/pingcap/tidb/tidb-binlog/pump_client" tidbutil "github.com/pingcap/tidb/util" + "github.com/pingcap/tidb/util/chunk" "github.com/pingcap/tidb/util/dbterror" "github.com/pingcap/tidb/util/gcutil" "github.com/pingcap/tidb/util/logutil" + "github.com/pingcap/tidb/util/mathutil" + "github.com/pingcap/tidb/util/sqlexec" "github.com/tikv/client-go/v2/tikvrpc" clientv3 "go.etcd.io/etcd/client/v3" atomicutil "go.uber.org/atomic" @@ -73,6 +80,9 @@ const ( batchAddingJobs = 10 + reorgWorkerCnt = 10 + generalWorkerCnt = 1 + // PartitionCountLimit is limit of the number of partitions in a table. // Reference linking https://dev.mysql.com/doc/refman/5.7/en/partitioning-limitations.html. PartitionCountLimit = 8192 @@ -90,6 +100,8 @@ const ( // supported by VIEWs at the moment. For other object types, this is // equivalent to OnExistError. OnExistReplace + + jobRecordCapacity = 16 ) var ( @@ -188,6 +200,10 @@ type DDL interface { GetInfoSchemaWithInterceptor(ctx sessionctx.Context) infoschema.InfoSchema // DoDDLJob does the DDL job, it's exported for test. DoDDLJob(ctx sessionctx.Context, job *model.Job) error + // MoveJobFromQueue2Table move existing DDLs from queue to table. + MoveJobFromQueue2Table(bool) error + // MoveJobFromTable2Queue move existing DDLs from table to queue. + MoveJobFromTable2Queue() error } type limitJobTask struct { @@ -206,6 +222,46 @@ type ddl struct { sessPool *sessionPool delRangeMgr delRangeManager enableTiFlashPoll *atomicutil.Bool + // used in the concurrency ddl. + reorgWorkerPool *workerPool + generalDDLWorkerPool *workerPool + // get notification if any DDL coming. + ddlJobCh chan struct{} +} + +// waitSchemaSyncedController is to control whether to waitSchemaSynced or not. +type waitSchemaSyncedController struct { + mu sync.RWMutex + job map[int64]struct{} + + // true if this node is elected to the DDL owner, we should wait 2 * lease before it runs the first DDL job. + once *atomicutil.Bool +} + +func newWaitSchemaSyncedController() *waitSchemaSyncedController { + return &waitSchemaSyncedController{ + job: make(map[int64]struct{}, jobRecordCapacity), + once: atomicutil.NewBool(true), + } +} + +func (w *waitSchemaSyncedController) registerSync(job *model.Job) { + w.mu.Lock() + defer w.mu.Unlock() + w.job[job.ID] = struct{}{} +} + +func (w *waitSchemaSyncedController) isSynced(job *model.Job) bool { + w.mu.RLock() + defer w.mu.RUnlock() + _, ok := w.job[job.ID] + return !ok +} + +func (w *waitSchemaSyncedController) synced(job *model.Job) { + w.mu.Lock() + defer w.mu.Unlock() + delete(w.job, job.ID) } // ddlCtx is the context when we use worker to handle DDL jobs. @@ -225,6 +281,15 @@ type ddlCtx struct { tableLockCkr util.DeadTableLockChecker etcdCli *clientv3.Client + *waitSchemaSyncedController + *schemaVersionManager + // recording the running jobs. + runningJobs struct { + sync.RWMutex + ids map[int64]struct{} + } + // It holds the running DDL jobs ID. + runningJobIDs []string // reorgCtx is used for reorganization. reorgCtx struct { sync.RWMutex @@ -249,6 +314,51 @@ type ddlCtx struct { sync.Mutex seqNum uint64 } + + waiting *atomicutil.Bool +} + +// schemaVersionManager is used to manage the schema version. To prevent the conflicts on this key between different DDL job, +// we use another transaction to update the schema version, so that we need to lock the schema version and unlock it until the job is committed. +type schemaVersionManager struct { + schemaVersionMu sync.Mutex + // lockOwner stores the job ID that is holding the lock. + lockOwner atomicutil.Int64 +} + +func newSchemaVersionManager() *schemaVersionManager { + return &schemaVersionManager{} +} + +func (sv *schemaVersionManager) setSchemaVersion(job *model.Job, store kv.Storage) (schemaVersion int64, err error) { + sv.lockSchemaVersion(job.ID) + err = kv.RunInNewTxn(kv.WithInternalSourceType(context.Background(), kv.InternalTxnDDL), store, true, func(ctx context.Context, txn kv.Transaction) error { + var err error + m := meta.NewMeta(txn) + schemaVersion, err = m.GenSchemaVersion() + return err + }) + return schemaVersion, err +} + +// lockSchemaVersion gets the lock to prevent the schema version from being updated. +func (sv *schemaVersionManager) lockSchemaVersion(jobID int64) { + ownerID := sv.lockOwner.Load() + // There may exist one job update schema version many times in multiple-schema-change, so we do not lock here again + // if they are the same job. + if ownerID != jobID { + sv.schemaVersionMu.Lock() + sv.lockOwner.Store(jobID) + } +} + +// unlockSchemaVersion releases the lock. +func (sv *schemaVersionManager) unlockSchemaVersion(jobID int64) { + ownerID := sv.lockOwner.Load() + if ownerID == jobID { + sv.lockOwner.Store(0) + sv.schemaVersionMu.Unlock() + } } func (dc *ddlCtx) isOwner() bool { @@ -277,9 +387,9 @@ func (dc *ddlCtx) setDDLSourceForDiagnosis(job *model.Job) { ctx, exists := dc.jobCtx.jobCtxMap[job.ID] if !exists { ctx = NewJobContext() + ctx.setDDLLabelForDiagnosis(job) dc.jobCtx.jobCtxMap[job.ID] = ctx } - ctx.setDDLLabelForDiagnosis(job) } func (dc *ddlCtx) getResourceGroupTaggerForTopSQL(job *model.Job) tikvrpc.ResourceGroupTagger { @@ -429,16 +539,19 @@ func newDDL(ctx context.Context, options ...Option) *ddl { } ddlCtx := &ddlCtx{ - uuid: id, - store: opt.Store, - lease: opt.Lease, - ddlJobDoneCh: make(chan struct{}, 1), - ownerManager: manager, - schemaSyncer: syncer, - binlogCli: binloginfo.GetPumpsClient(), - infoCache: opt.InfoCache, - tableLockCkr: deadLockCkr, - etcdCli: opt.EtcdCli, + uuid: id, + store: opt.Store, + lease: opt.Lease, + ddlJobDoneCh: make(chan struct{}, 1), + ownerManager: manager, + schemaSyncer: syncer, + binlogCli: binloginfo.GetPumpsClient(), + infoCache: opt.InfoCache, + tableLockCkr: deadLockCkr, + etcdCli: opt.EtcdCli, + schemaVersionManager: newSchemaVersionManager(), + waitSchemaSyncedController: newWaitSchemaSyncedController(), + runningJobIDs: make([]string, 0, jobRecordCapacity), } ddlCtx.reorgCtx.reorgCtxMap = make(map[int64]*reorgCtx) ddlCtx.jobCtx.jobCtxMap = make(map[int64]*JobContext) @@ -446,12 +559,18 @@ func newDDL(ctx context.Context, options ...Option) *ddl { ddlCtx.mu.interceptor = &BaseInterceptor{} ctx = kv.WithInternalSourceType(ctx, kv.InternalTxnDDL) ddlCtx.ctx, ddlCtx.cancel = context.WithCancel(ctx) + ddlCtx.runningJobs.ids = make(map[int64]struct{}) + ddlCtx.waiting = atomicutil.NewBool(false) + d := &ddl{ ddlCtx: ddlCtx, limitJobCh: make(chan *limitJobTask, batchAddingJobs), enableTiFlashPoll: atomicutil.NewBool(true), + ddlJobCh: make(chan struct{}, 100), } + variable.SwitchConcurrentDDL = d.SwitchConcurrentDDL + return d } @@ -478,13 +597,55 @@ func (d *ddl) newDeleteRangeManager(mock bool) delRangeManager { return delRangeMgr } +func (d *ddl) prepareWorkers4ConcurrencyDDL() { + workerFactory := func(tp workerType) func() (pools.Resource, error) { + return func() (pools.Resource, error) { + wk := newWorker(d.ctx, tp, d.sessPool, d.delRangeMgr, d.ddlCtx, true) + sessForJob, err := d.sessPool.get() + if err != nil { + return nil, err + } + sessForJob.SetDiskFullOpt(kvrpcpb.DiskFullOpt_AllowedOnAlmostFull) + wk.sess = newSession(sessForJob) + metrics.DDLCounter.WithLabelValues(fmt.Sprintf("%s_%s", metrics.CreateDDL, wk.String())).Inc() + return wk, nil + } + } + // reorg worker count at least 1 at most 10. + reorgCnt := mathutil.Min(mathutil.Max(runtime.GOMAXPROCS(0)/4, 1), reorgWorkerCnt) + d.reorgWorkerPool = newDDLWorkerPool(pools.NewResourcePool(workerFactory(addIdxWorker), reorgCnt, reorgCnt, 0), reorg) + d.generalDDLWorkerPool = newDDLWorkerPool(pools.NewResourcePool(workerFactory(generalWorker), generalWorkerCnt, generalWorkerCnt, 0), general) + failpoint.Inject("NoDDLDispatchLoop", func(val failpoint.Value) { + if val.(bool) { + failpoint.Return() + } + }) + d.wg.Run(d.startDispatchLoop) +} + +func (d *ddl) prepareWorkers4legacyDDL() { + d.workers = make(map[workerType]*worker, 2) + d.workers[generalWorker] = newWorker(d.ctx, generalWorker, d.sessPool, d.delRangeMgr, d.ddlCtx, false) + d.workers[addIdxWorker] = newWorker(d.ctx, addIdxWorker, d.sessPool, d.delRangeMgr, d.ddlCtx, false) + for _, worker := range d.workers { + worker.wg.Add(1) + w := worker + go w.start(d.ddlCtx) + + metrics.DDLCounter.WithLabelValues(fmt.Sprintf("%s_%s", metrics.CreateDDL, worker.String())).Inc() + + // When the start function is called, we will send a fake job to let worker + // checks owner firstly and try to find whether a job exists and run. + asyncNotify(worker.ddlJobCh) + } +} + // Start implements DDL.Start interface. func (d *ddl) Start(ctxPool *pools.ResourcePool) error { logutil.BgLogger().Info("[ddl] start DDL", zap.String("ID", d.uuid), zap.Bool("runWorker", RunWorker)) d.wg.Run(d.limitDDLJobs) d.sessPool = newSessionPool(ctxPool, d.store) - // If RunWorker is true, we need campaign owner and do DDL job. // Otherwise, we needn't do that. if RunWorker { @@ -501,21 +662,10 @@ func (d *ddl) Start(ctxPool *pools.ResourcePool) error { return errors.Trace(err) } - d.workers = make(map[workerType]*worker, 2) d.delRangeMgr = d.newDeleteRangeManager(ctxPool == nil) - d.workers[generalWorker] = newWorker(d.ctx, generalWorker, d.sessPool, d.delRangeMgr, d.ddlCtx) - d.workers[addIdxWorker] = newWorker(d.ctx, addIdxWorker, d.sessPool, d.delRangeMgr, d.ddlCtx) - for _, worker := range d.workers { - worker.wg.Add(1) - w := worker - go w.start(d.ddlCtx) - - metrics.DDLCounter.WithLabelValues(fmt.Sprintf("%s_%s", metrics.CreateDDL, worker.String())).Inc() - // When the start function is called, we will send a fake job to let worker - // checks owner firstly and try to find whether a job exists and run. - asyncNotify(worker.ddlJobCh) - } + d.prepareWorkers4ConcurrencyDDL() + d.prepareWorkers4legacyDDL() go d.schemaSyncer.StartCleanWork() if config.TableLockEnabled() { @@ -535,7 +685,7 @@ func (d *ddl) Start(ctxPool *pools.ResourcePool) error { return nil } -// GetNextDDLSeqNum return the next ddl seq num. +// GetNextDDLSeqNum return the next DDL seq num. func (d *ddl) GetNextDDLSeqNum() (uint64, error) { var count uint64 ctx := kv.WithInternalSourceType(d.ctx, kv.InternalTxnDDL) @@ -558,6 +708,12 @@ func (d *ddl) close() { d.wg.Wait() d.ownerManager.Cancel() d.schemaSyncer.Close() + if d.reorgWorkerPool != nil { + d.reorgWorkerPool.close() + } + if d.generalDDLWorkerPool != nil { + d.generalDDLWorkerPool.close() + } for _, worker := range d.workers { worker.Close() @@ -570,7 +726,6 @@ func (d *ddl) close() { if d.sessPool != nil { d.sessPool.close() } - variable.UnregisterStatistics(d) logutil.BgLogger().Info("[ddl] DDL closed", zap.String("ID", d.uuid), zap.Duration("take time", time.Since(startTime))) @@ -682,16 +837,24 @@ func (d *ddl) asyncNotifyWorker(job *model.Job) { if !RunWorker { return } - var worker *worker - if job.MayNeedReorg() { - worker = d.workers[addIdxWorker] - } else { - worker = d.workers[generalWorker] - } - if d.ownerManager.IsOwner() { - asyncNotify(worker.ddlJobCh) + if variable.EnableConcurrentDDL.Load() { + if d.isOwner() { + asyncNotify(d.ddlJobCh) + } else { + d.asyncNotifyByEtcd(addingDDLJobConcurrent, job) + } } else { - d.asyncNotifyByEtcd(worker.addingDDLJobKey, job) + var worker *worker + if job.MayNeedReorg() { + worker = d.workers[addIdxWorker] + } else { + worker = d.workers[generalWorker] + } + if d.ownerManager.IsOwner() { + asyncNotify(worker.ddlJobCh) + } else { + d.asyncNotifyByEtcd(worker.addingDDLJobKey, job) + } } } @@ -803,17 +966,17 @@ func (d *ddl) DoDDLJob(ctx sessionctx.Context, job *model.Job) error { // If the connection being killed, we need to CANCEL the DDL job. if atomic.LoadUint32(&sessVars.Killed) == 1 { if sessVars.StmtCtx.DDLJobID != 0 { + se, err := d.sessPool.get() + if err != nil { + logutil.BgLogger().Error("[ddl] get session failed, check again", zap.Error(err)) + continue + } sessVars.StmtCtx.DDLJobID = 0 // Avoid repeat. - - err := kv.RunInNewTxn(context.Background(), d.store, true, func(ctx context.Context, txn kv.Transaction) error { - // errs is the error per job, there is only one submitted - // err is the error of the overall task - errs, err := CancelJobs(txn, []int64{jobID}) - if len(errs) > 0 { - logutil.BgLogger().Warn("error canceling DDL job", zap.Error(errs[0])) - } - return err - }) + errs, err := CancelJobs(se, d.store, []int64{jobID}) + d.sessPool.put(se) + if len(errs) > 0 { + logutil.BgLogger().Warn("error canceling DDL job", zap.Error(errs[0])) + } if err != nil { logutil.BgLogger().Warn("Kill command could not cancel DDL job", zap.Error(err)) continue @@ -821,7 +984,13 @@ func (d *ddl) DoDDLJob(ctx sessionctx.Context, job *model.Job) error { } } - historyJob, err = d.getHistoryDDLJob(jobID) + se, err := d.sessPool.get() + if err != nil { + logutil.BgLogger().Error("[ddl] get session failed, check again", zap.Error(err)) + continue + } + historyJob, err = GetHistoryJobByID(se, jobID) + d.sessPool.put(se) if err != nil { logutil.BgLogger().Error("[ddl] get history DDL job failed, check again", zap.Error(err)) continue @@ -925,6 +1094,59 @@ func (d *ddl) startCleanDeadTableLock() { } } +// SwitchConcurrentDDL changes the DDL to concurrent DDL if toConcurrentDDL is true, otherwise, queue based DDL. +func (d *ddl) SwitchConcurrentDDL(toConcurrentDDL bool) error { + if !d.isOwner() { + return kv.RunInNewTxn(kv.WithInternalSourceType(context.Background(), kv.InternalTxnDDL), d.store, true, func(ctx context.Context, txn kv.Transaction) error { + isConcurrentDDL, err := meta.NewMeta(txn).IsConcurrentDDL() + if err != nil { + return err + } + if isConcurrentDDL != toConcurrentDDL { + return errors.New("please set it on the DDL owner node") + } + return nil + }) + } + + ctx, cancel := context.WithTimeout(context.Background(), time.Second*30) + defer cancel() + d.waiting.Store(true) + defer d.waiting.Store(false) + if err := d.wait4Switch(ctx); err != nil { + return err + } + + var err error + if toConcurrentDDL { + err = d.MoveJobFromQueue2Table(false) + } else { + err = d.MoveJobFromTable2Queue() + } + if err == nil { + variable.EnableConcurrentDDL.Store(toConcurrentDDL) + } + logutil.BgLogger().Info("[ddl] SwitchConcurrentDDL", zap.Bool("toConcurrentDDL", toConcurrentDDL), zap.Error(err)) + return err +} + +func (d *ddl) wait4Switch(ctx context.Context) error { + for { + select { + case <-ctx.Done(): + return ctx.Err() + default: + } + d.runningJobs.RLock() + if len(d.runningJobs.ids) == 0 { + d.runningJobs.RUnlock() + return nil + } + d.runningJobs.RUnlock() + time.Sleep(time.Second * 1) + } +} + // RecoverInfo contains information needed by DDL.RecoverTable. type RecoverInfo struct { SchemaID int64 @@ -1003,12 +1225,13 @@ type Info struct { // GetDDLInfoWithNewTxn returns DDL information using a new txn. func GetDDLInfoWithNewTxn(s sessionctx.Context) (*Info, error) { - err := sessiontxn.NewTxn(context.Background(), s) + sess := newSession(s) + err := sess.begin() if err != nil { return nil, err } info, err := GetDDLInfo(s) - s.RollbackTxn(context.Background()) + sess.rollback() return info, err } @@ -1016,37 +1239,41 @@ func GetDDLInfoWithNewTxn(s sessionctx.Context) (*Info, error) { func GetDDLInfo(s sessionctx.Context) (*Info, error) { var err error info := &Info{} - txn, err := s.Txn(true) + sess := newSession(s) + txn, err := sess.txn() if err != nil { - return nil, err + return nil, errors.Trace(err) } t := meta.NewMeta(txn) - info.Jobs = make([]*model.Job, 0, 2) - job, err := t.GetDDLJobByIdx(0) - if err != nil { - return nil, errors.Trace(err) - } - if job != nil { - info.Jobs = append(info.Jobs, job) + enable := variable.EnableConcurrentDDL.Load() + var generalJob, reorgJob *model.Job + if enable { + generalJob, reorgJob, err = get2JobsFromTable(sess) + } else { + generalJob, reorgJob, err = get2JobsFromQueue(t) } - addIdxJob, err := t.GetDDLJobByIdx(0, meta.AddIndexJobListKey) if err != nil { return nil, errors.Trace(err) } - if addIdxJob != nil { - info.Jobs = append(info.Jobs, addIdxJob) + + if generalJob != nil { + info.Jobs = append(info.Jobs, generalJob) + } + + if reorgJob != nil { + info.Jobs = append(info.Jobs, reorgJob) } - info.SchemaVer, err = t.GetSchemaVersion() + info.SchemaVer, err = t.GetSchemaVersionWithNonEmptyDiff() if err != nil { return nil, errors.Trace(err) } - if addIdxJob == nil { + if reorgJob == nil { return info, nil } - _, info.ReorgHandle, _, _, err = newReorgHandler(t).GetDDLReorgHandle(addIdxJob) + _, info.ReorgHandle, _, _, err = newReorgHandler(t, sess, enable).GetDDLReorgHandle(reorgJob) if err != nil { if meta.ErrDDLReorgElementNotExist.Equal(err) { return info, nil @@ -1057,8 +1284,53 @@ func GetDDLInfo(s sessionctx.Context) (*Info, error) { return info, nil } +func get2JobsFromQueue(t *meta.Meta) (*model.Job, *model.Job, error) { + generalJob, err := t.GetDDLJobByIdx(0) + if err != nil { + return nil, nil, errors.Trace(err) + } + reorgJob, err := t.GetDDLJobByIdx(0, meta.AddIndexJobListKey) + if err != nil { + return nil, nil, errors.Trace(err) + } + + return generalJob, reorgJob, nil +} + +func get2JobsFromTable(sess *session) (*model.Job, *model.Job, error) { + var generalJob, reorgJob *model.Job + jobs, err := getJobsBySQL(sess, JobTable, "not reorg order by job_id limit 1") + if err != nil { + return nil, nil, errors.Trace(err) + } + + if len(jobs) != 0 { + generalJob = jobs[0] + } + jobs, err = getJobsBySQL(sess, JobTable, "reorg order by job_id limit 1") + if err != nil { + return nil, nil, errors.Trace(err) + } + if len(jobs) != 0 { + reorgJob = jobs[0] + } + return generalJob, reorgJob, nil +} + // CancelJobs cancels the DDL jobs. -func CancelJobs(txn kv.Transaction, ids []int64) ([]error, error) { +func CancelJobs(se sessionctx.Context, store kv.Storage, ids []int64) (errs []error, err error) { + if variable.EnableConcurrentDDL.Load() { + return cancelConcurrencyJobs(se, ids) + } + + err = kv.RunInNewTxn(kv.WithInternalSourceType(context.Background(), kv.InternalTxnDDL), store, true, func(ctx context.Context, txn kv.Transaction) error { + errs, err = cancelLegacyJobs(txn, ids) + return err + }) + return +} + +func cancelLegacyJobs(txn kv.Transaction, ids []int64) ([]error, error) { if len(ids) == 0 { return nil, nil } @@ -1124,6 +1396,82 @@ func CancelJobs(txn kv.Transaction, ids []int64) ([]error, error) { return errs, nil } +// cancelConcurrencyJobs cancels the DDL jobs that are in the concurrent state. +func cancelConcurrencyJobs(se sessionctx.Context, ids []int64) ([]error, error) { + failpoint.Inject("mockCancelConcurencyDDL", func(val failpoint.Value) { + if val.(bool) { + failpoint.Return(nil, errors.New("mock commit error")) + } + }) + if len(ids) == 0 { + return nil, nil + } + var jobMap = make(map[int64]int) // jobID -> error index + + sess := newSession(se) + err := sess.begin() + if err != nil { + return nil, err + } + + idsStr := make([]string, 0, len(ids)) + for idx, id := range ids { + jobMap[id] = idx + idsStr = append(idsStr, strconv.FormatInt(id, 10)) + } + + jobs, err := getJobsBySQL(sess, JobTable, fmt.Sprintf("job_id in (%s) order by job_id", strings.Join(idsStr, ", "))) + if err != nil { + sess.rollback() + return nil, err + } + + errs := make([]error, len(ids)) + + for _, job := range jobs { + i, ok := jobMap[job.ID] + if !ok { + logutil.BgLogger().Debug("the job that needs to be canceled isn't equal to current job", + zap.Int64("need to canceled job ID", job.ID), + zap.Int64("current job ID", job.ID)) + continue + } + delete(jobMap, job.ID) + // These states can't be cancelled. + if job.IsDone() || job.IsSynced() { + errs[i] = dbterror.ErrCancelFinishedDDLJob.GenWithStackByArgs(job.ID) + continue + } + // If the state is rolling back, it means the work is cleaning the data after cancelling the job. + if job.IsCancelled() || job.IsRollingback() || job.IsRollbackDone() { + continue + } + if !job.IsRollbackable() { + errs[i] = dbterror.ErrCannotCancelDDLJob.GenWithStackByArgs(job.ID) + continue + } + job.State = model.JobStateCancelling + // Make sure RawArgs isn't overwritten. + err := json.Unmarshal(job.RawArgs, &job.Args) + if err != nil { + errs[i] = errors.Trace(err) + continue + } + err = updateDDLJob2Table(sess, job, true) + if err != nil { + errs[i] = errors.Trace(err) + } + } + err = sess.commit() + if err != nil { + return nil, err + } + for id, idx := range jobMap { + errs[idx] = dbterror.ErrDDLJobNotFound.GenWithStackByArgs(id) + } + return errs, nil +} + func getDDLJobsInQueue(t *meta.Meta, jobListKey meta.JobListKeyType) ([]*model.Job, error) { cnt, err := t.DDLJobQueueLen(jobListKey) if err != nil { @@ -1140,7 +1488,16 @@ func getDDLJobsInQueue(t *meta.Meta, jobListKey meta.JobListKeyType) ([]*model.J } // GetAllDDLJobs get all DDL jobs and sorts jobs by job.ID. -func GetAllDDLJobs(t *meta.Meta) ([]*model.Job, error) { +func GetAllDDLJobs(sess sessionctx.Context, t *meta.Meta) ([]*model.Job, error) { + if variable.EnableConcurrentDDL.Load() { + return getJobsBySQL(newSession(sess), JobTable, "1 order by job_id") + } + + return getDDLJobs(t) +} + +// getDDLJobs get all DDL jobs and sorts jobs by job.ID. +func getDDLJobs(t *meta.Meta) ([]*model.Job, error) { generalJobs, err := getDDLJobsInQueue(t, meta.DefaultJobListKey) if err != nil { return nil, errors.Trace(err) @@ -1167,7 +1524,7 @@ const batchNumHistoryJobs = 128 // GetLastNHistoryDDLJobs returns the DDL history jobs and an error. // The maximum count of history jobs is num. func GetLastNHistoryDDLJobs(t *meta.Meta, maxNumJobs int) ([]*model.Job, error) { - iterator, err := t.GetLastHistoryDDLJobsIterator() + iterator, err := GetLastHistoryDDLJobsIterator(t) if err != nil { return nil, errors.Trace(err) } @@ -1177,7 +1534,7 @@ func GetLastNHistoryDDLJobs(t *meta.Meta, maxNumJobs int) ([]*model.Job, error) // IterHistoryDDLJobs iterates history DDL jobs until the `finishFn` return true or error. func IterHistoryDDLJobs(txn kv.Transaction, finishFn func([]*model.Job) (bool, error)) error { txnMeta := meta.NewMeta(txn) - iter, err := txnMeta.GetLastHistoryDDLJobsIterator() + iter, err := GetLastHistoryDDLJobsIterator(txnMeta) if err != nil { return err } @@ -1196,8 +1553,8 @@ func IterHistoryDDLJobs(txn kv.Transaction, finishFn func([]*model.Job) (bool, e // IterAllDDLJobs will iterates running DDL jobs first, return directly if `finishFn` return true or error, // then iterates history DDL jobs until the `finishFn` return true or error. -func IterAllDDLJobs(txn kv.Transaction, finishFn func([]*model.Job) (bool, error)) error { - jobs, err := GetAllDDLJobs(meta.NewMeta(txn)) +func IterAllDDLJobs(ctx sessionctx.Context, txn kv.Transaction, finishFn func([]*model.Job) (bool, error)) error { + jobs, err := GetAllDDLJobs(ctx, meta.NewMeta(txn)) if err != nil { return err } @@ -1209,9 +1566,76 @@ func IterAllDDLJobs(txn kv.Transaction, finishFn func([]*model.Job) (bool, error return IterHistoryDDLJobs(txn, finishFn) } +// GetLastHistoryDDLJobsIterator gets latest N history DDL jobs iterator. +func GetLastHistoryDDLJobsIterator(m *meta.Meta) (meta.LastJobIterator, error) { + return m.GetLastHistoryDDLJobsIterator() +} + +// session wraps sessionctx.Context for transaction usage. +type session struct { + sessionctx.Context +} + +func newSession(s sessionctx.Context) *session { + return &session{s} +} + +func (s *session) begin() error { + err := sessiontxn.NewTxn(context.Background(), s) + if err != nil { + return err + } + s.GetSessionVars().SetInTxn(true) + return nil +} + +func (s *session) commit() error { + s.StmtCommit() + return s.CommitTxn(context.Background()) +} + +func (s *session) txn() (kv.Transaction, error) { + return s.Txn(true) +} + +func (s *session) rollback() { + s.StmtRollback() + s.RollbackTxn(context.Background()) +} + +func (s *session) reset() { + s.StmtRollback() +} + +func (s *session) execute(ctx context.Context, query string, label string) ([]chunk.Row, error) { + startTime := time.Now() + var err error + defer func() { + metrics.DDLJobTableDuration.WithLabelValues(label + "-" + metrics.RetLabel(err)).Observe(time.Since(startTime).Seconds()) + }() + rs, err := s.Context.(sqlexec.SQLExecutor).ExecuteInternal(kv.WithInternalSourceType(ctx, kv.InternalTxnDDL), query) + if err != nil { + return nil, errors.Trace(err) + } + + if rs == nil { + return nil, nil + } + var rows []chunk.Row + defer terror.Call(rs.Close) + if rows, err = sqlexec.DrainRecordSet(ctx, rs, 8); err != nil { + return nil, errors.Trace(err) + } + return rows, nil +} + +func (s *session) session() sessionctx.Context { + return s.Context +} + // GetAllHistoryDDLJobs get all the done DDL jobs. func GetAllHistoryDDLJobs(m *meta.Meta) ([]*model.Job, error) { - iterator, err := m.GetLastHistoryDDLJobsIterator() + iterator, err := GetLastHistoryDDLJobsIterator(m) if err != nil { return nil, errors.Trace(err) } @@ -1252,12 +1676,36 @@ func GetHistoryJobByID(sess sessionctx.Context, id int64) (*model.Job, error) { return job, errors.Trace(err) } -// AddHistoryDDLJob adds DDL job to history table. -func AddHistoryDDLJob(t *meta.Meta, job *model.Job, updateRawArgs bool) error { +// AddHistoryDDLJobForTest used for test. +func AddHistoryDDLJobForTest(sess sessionctx.Context, t *meta.Meta, job *model.Job, updateRawArgs bool) error { + return AddHistoryDDLJob(newSession(sess), t, job, updateRawArgs, variable.EnableConcurrentDDL.Load()) +} + +// AddHistoryDDLJob record the history job. +func AddHistoryDDLJob(sess *session, t *meta.Meta, job *model.Job, updateRawArgs bool, concurrentDDL bool) error { + if concurrentDDL { + // only add history job into table if it is concurrent DDL. + err := addHistoryDDLJob2Table(sess, job, updateRawArgs) + if err != nil { + logutil.BgLogger().Info("[ddl] failed to add DDL job to history table", zap.Error(err)) + } + } + // we always add history DDL job to job list at this moment. return t.AddHistoryDDLJob(job, updateRawArgs) } -// GetLastHistoryDDLJobsIterator gets latest N history ddl jobs iterator. -func GetLastHistoryDDLJobsIterator(m *meta.Meta) (meta.LastJobIterator, error) { - return m.GetLastHistoryDDLJobsIterator() +// addHistoryDDLJob2Table adds DDL job to history table. +func addHistoryDDLJob2Table(sess *session, job *model.Job, updateRawArgs bool) error { + b, err := job.Encode(updateRawArgs) + if err != nil { + return err + } + _, err = sess.execute(context.Background(), + fmt.Sprintf("insert ignore into mysql.tidb_ddl_history(job_id, job_meta, db_name, table_name, schema_ids, table_ids, create_time) values (%d, %s, %s, %s, %s, %s, %v)", + job.ID, wrapKey2String(b), strconv.Quote(job.SchemaName), strconv.Quote(job.TableName), + strconv.Quote(strconv.FormatInt(job.SchemaID, 10)), + strconv.Quote(strconv.FormatInt(job.TableID, 10)), + strconv.Quote(model.TSConvert2Time(job.StartTS).String())), + "insert_history") + return errors.Trace(err) } diff --git a/ddl/ddl_api.go b/ddl/ddl_api.go index 96348445a9320..640045e65940b 100644 --- a/ddl/ddl_api.go +++ b/ddl/ddl_api.go @@ -342,8 +342,9 @@ func (d *ddl) ModifySchemaSetTiFlashReplica(sctx sessionctx.Context, stmt *ast.A if !ok { return infoschema.ErrDatabaseNotExists.GenWithStackByArgs(dbName.O) } + if util.IsMemOrSysDB(dbInfo.Name.L) { - return errors.Trace(dbterror.ErrUnsupportedAlterReplicaForSysTable) + return errors.Trace(dbterror.ErrUnsupportedTiFlashOperationForSysOrMemTable) } total := len(dbInfo.Tables) @@ -510,7 +511,7 @@ func checkMultiSchemaSpecs(_sctx sessionctx.Context, specs []*ast.DatabaseOption for _, spec := range specs { if spec.Tp == ast.DatabaseSetTiFlashReplica { if hasSetTiFlashReplica { - return dbterror.ErrRunMultiSchemaChanges + return dbterror.ErrRunMultiSchemaChanges.FastGenByArgs(model.ActionSetTiFlashReplica.String()) } hasSetTiFlashReplica = true } @@ -2760,7 +2761,7 @@ func checkTwoRangeColumns(ctx sessionctx.Context, curr, prev *model.PartitionDef } for i := 0; i < len(pi.Columns); i++ { // Special handling for MAXVALUE. - if strings.EqualFold(curr.LessThan[i], partitionMaxValue) { + if strings.EqualFold(curr.LessThan[i], partitionMaxValue) && !strings.EqualFold(prev.LessThan[i], partitionMaxValue) { // If current is maxvalue, it certainly >= previous. return true, nil } @@ -3062,18 +3063,6 @@ func resolveAlterTableSpec(ctx sessionctx.Context, specs []*ast.AlterTableSpec) return validSpecs, nil } -func checkMultiSpecs(sctx sessionctx.Context, specs []*ast.AlterTableSpec) error { - if !variable.EnableChangeMultiSchema.Load() { - if len(specs) > 1 { - return dbterror.ErrRunMultiSchemaChanges - } - if len(specs) == 1 && len(specs[0].NewColumns) > 1 && specs[0].Tp == ast.AlterTableAddColumns { - return dbterror.ErrRunMultiSchemaChanges - } - } - return nil -} - func (d *ddl) AlterTable(ctx context.Context, sctx sessionctx.Context, stmt *ast.AlterTableStmt) (err error) { ident := ast.Ident{Schema: stmt.Table.Schema, Name: stmt.Table.Name} validSpecs, err := resolveAlterTableSpec(sctx, stmt.Specs) @@ -3098,15 +3087,9 @@ func (d *ddl) AlterTable(ctx context.Context, sctx sessionctx.Context, stmt *ast } } - err = checkMultiSpecs(sctx, validSpecs) - if err != nil { - return err - } - if len(validSpecs) > 1 { sctx.GetSessionVars().StmtCtx.MultiSchemaInfo = model.NewMultiSchemaInfo() } - for _, spec := range validSpecs { var handledCharsetOrCollate bool switch spec.Tp { @@ -3975,12 +3958,14 @@ func (d *ddl) ExchangeTablePartition(ctx sessionctx.Context, ident ast.Ident, sp Type: model.ActionExchangeTablePartition, BinlogInfo: &model.HistoryInfo{}, Args: []interface{}{defID, ptSchema.ID, ptMeta.ID, partName, spec.WithValidation}, + CtxVars: []interface{}{[]int64{ntSchema.ID, ptSchema.ID}, []int64{ntMeta.ID, ptMeta.ID}}, } err = d.DoDDLJob(ctx, job) if err != nil { return errors.Trace(err) } + ctx.GetSessionVars().StmtCtx.AppendWarning(fmt.Errorf("after the exchange, please analyze related table of the exchange to update statistics")) err = d.callHookOnChanged(job, err) return errors.Trace(err) } @@ -4005,21 +3990,15 @@ func (d *ddl) DropColumn(ctx sessionctx.Context, ti ast.Ident, spec *ast.AlterTa return err } - var multiSchemaInfo *model.MultiSchemaInfo - if variable.EnableChangeMultiSchema.Load() { - multiSchemaInfo = &model.MultiSchemaInfo{} - } - job := &model.Job{ - SchemaID: schema.ID, - TableID: t.Meta().ID, - SchemaName: schema.Name.L, - SchemaState: model.StatePublic, - TableName: t.Meta().Name.L, - Type: model.ActionDropColumn, - BinlogInfo: &model.HistoryInfo{}, - MultiSchemaInfo: multiSchemaInfo, - Args: []interface{}{colName, spec.IfExists}, + SchemaID: schema.ID, + TableID: t.Meta().ID, + SchemaName: schema.Name.L, + SchemaState: model.StatePublic, + TableName: t.Meta().Name.L, + Type: model.ActionDropColumn, + BinlogInfo: &model.HistoryInfo{}, + Args: []interface{}{colName, spec.IfExists}, } err = d.DoDDLJob(ctx, job) @@ -4041,7 +4020,7 @@ func checkIsDroppableColumn(ctx sessionctx.Context, t table.Table, spec *ast.Alt return false, err } - if err = isDroppableColumn(variable.EnableChangeMultiSchema.Load(), tblInfo, colName); err != nil { + if err = isDroppableColumn(tblInfo, colName); err != nil { return false, errors.Trace(err) } // We don't support dropping column with PK handle covered now. @@ -4917,19 +4896,10 @@ func (d *ddl) AlterTableSetTiFlashReplica(ctx sessionctx.Context, ident ast.Iden if err != nil { return errors.Trace(err) } - // Ban setting replica count for tables in system database. - if util.IsMemOrSysDB(schema.Name.L) { - return errors.Trace(dbterror.ErrUnsupportedAlterReplicaForSysTable) - } else if tb.Meta().TempTableType != model.TempTableNone { - return dbterror.ErrOptOnTemporaryTable.GenWithStackByArgs("set tiflash replica") - } - // Ban setting replica count for tables which has charset not supported by TiFlash - for _, col := range tb.Cols() { - _, ok := charset.TiFlashSupportedCharsets[col.GetCharset()] - if !ok { - return dbterror.ErrAlterReplicaForUnsupportedCharsetTable.GenWithStackByArgs(col.GetCharset()) - } + err = isTableTiFlashSupported(schema, tb) + if err != nil { + return errors.Trace(err) } tbReplicaInfo := tb.Meta().TiFlashReplica @@ -4956,6 +4926,26 @@ func (d *ddl) AlterTableSetTiFlashReplica(ctx sessionctx.Context, ident ast.Iden return errors.Trace(err) } +func isTableTiFlashSupported(schema *model.DBInfo, tb table.Table) error { + + // Memory tables and system tables are not supported by TiFlash + if util.IsMemOrSysDB(schema.Name.L) { + return errors.Trace(dbterror.ErrUnsupportedTiFlashOperationForSysOrMemTable) + } else if tb.Meta().TempTableType != model.TempTableNone { + return dbterror.ErrOptOnTemporaryTable.GenWithStackByArgs("set on tiflash") + } + + // Tables that has charset are not supported by TiFlash + for _, col := range tb.Cols() { + _, ok := charset.TiFlashSupportedCharsets[col.GetCharset()] + if !ok { + return dbterror.ErrUnsupportedTiFlashOperationForUnsupportedCharsetTable.GenWithStackByArgs(col.GetCharset()) + } + } + + return nil +} + func (d *ddl) AlterTableSetTiFlashMode(ctx sessionctx.Context, ident ast.Ident, mode model.TiFlashMode) error { schema, tb, err := d.getSchemaAndTableByIdent(ctx, ident) if err != nil { @@ -4966,6 +4956,18 @@ func (d *ddl) AlterTableSetTiFlashMode(ctx sessionctx.Context, ident ast.Ident, return fmt.Errorf("unsupported TiFlash mode %s", mode) } + err = isTableTiFlashSupported(schema, tb) + if err != nil { + return errors.Trace(err) + } + + // Prompt warning when there is no TiFlash replica, as TiFlash mode will + // only take effect when executing in TiFlash. + tbReplicaInfo := tb.Meta().TiFlashReplica + if tbReplicaInfo == nil || tbReplicaInfo.Count == 0 { + ctx.GetSessionVars().StmtCtx.AppendNote(dbterror.ErrAlterTiFlashModeForTableWithoutTiFlashReplica) + } + job := &model.Job{ SchemaID: schema.ID, TableID: tb.Meta().ID, @@ -5467,6 +5469,7 @@ func (d *ddl) renameTable(ctx sessionctx.Context, oldIdent, newIdent ast.Ident, Type: model.ActionRenameTable, BinlogInfo: &model.HistoryInfo{}, Args: []interface{}{schemas[0].ID, newIdent.Name, schemas[0].Name}, + CtxVars: []interface{}{[]int64{schemas[0].ID, schemas[1].ID}, []int64{tableID}}, } err = d.DoDDLJob(ctx, job) @@ -5515,6 +5518,7 @@ func (d *ddl) renameTables(ctx sessionctx.Context, oldIdents, newIdents []ast.Id Type: model.ActionRenameTables, BinlogInfo: &model.HistoryInfo{}, Args: []interface{}{oldSchemaIDs, newSchemaIDs, tableNames, tableIDs, oldSchemaNames, oldTableNames}, + CtxVars: []interface{}{append(oldSchemaIDs, newSchemaIDs...), tableIDs}, } err = d.DoDDLJob(ctx, job) @@ -6159,7 +6163,7 @@ func checkIsDropPrimaryKey(indexName model.CIStr, indexInfo *model.IndexInfo, t return isPK, nil } -func isDroppableColumn(multiSchemaChange bool, tblInfo *model.TableInfo, colName model.CIStr) error { +func isDroppableColumn(tblInfo *model.TableInfo, colName model.CIStr) error { if ok, dep, isHidden := hasDependentByGeneratedColumn(tblInfo, colName); ok { if isHidden { return dbterror.ErrDependentByFunctionalIndex.GenWithStackByArgs(dep) @@ -6172,7 +6176,7 @@ func isDroppableColumn(multiSchemaChange bool, tblInfo *model.TableInfo, colName colName, tblInfo.Name) } // We only support dropping column with single-value none Primary Key index covered now. - err := isColumnCanDropWithIndex(multiSchemaChange, colName.L, tblInfo.Indices) + err := isColumnCanDropWithIndex(colName.L, tblInfo.Indices) if err != nil { return err } @@ -6647,7 +6651,7 @@ func (d *ddl) AlterIndexVisibility(ctx sessionctx.Context, ident ast.Ident, inde invisible = true } - skip, err := validateAlterIndexVisibility(indexName, invisible, tb.Meta()) + skip, err := validateAlterIndexVisibility(ctx, indexName, invisible, tb.Meta()) if err != nil { return errors.Trace(err) } diff --git a/ddl/ddl_api_test.go b/ddl/ddl_api_test.go index 90f0291ae2b35..b23692445659e 100644 --- a/ddl/ddl_api_test.go +++ b/ddl/ddl_api_test.go @@ -22,6 +22,7 @@ import ( "github.com/pingcap/tidb/kv" "github.com/pingcap/tidb/meta" "github.com/pingcap/tidb/parser/model" + "github.com/pingcap/tidb/session" "github.com/pingcap/tidb/testkit" "github.com/stretchr/testify/require" "golang.org/x/exp/slices" @@ -47,15 +48,15 @@ func TestGetDDLJobs(t *testing.T) { SchemaID: 1, Type: model.ActionCreateTable, } - err := addDDLJobs(txn, jobs[i]) + err := addDDLJobs(sess, txn, jobs[i]) require.NoError(t, err) - currJobs, err := ddl.GetAllDDLJobs(meta.NewMeta(txn)) + currJobs, err := ddl.GetAllDDLJobs(sess, meta.NewMeta(txn)) require.NoError(t, err) require.Len(t, currJobs, i+1) currJobs2 = currJobs2[:0] - err = ddl.IterAllDDLJobs(txn, func(jobs []*model.Job) (b bool, e error) { + err = ddl.IterAllDDLJobs(sess, txn, func(jobs []*model.Job) (b bool, e error) { for _, job := range jobs { if job.NotStarted() { currJobs2 = append(currJobs2, job) @@ -69,7 +70,7 @@ func TestGetDDLJobs(t *testing.T) { require.Len(t, currJobs2, i+1) } - currJobs, err := ddl.GetAllDDLJobs(meta.NewMeta(txn)) + currJobs, err := ddl.GetAllDDLJobs(sess, meta.NewMeta(txn)) require.NoError(t, err) for i, job := range jobs { @@ -95,15 +96,15 @@ func TestGetDDLJobsIsSort(t *testing.T) { require.NoError(t, err) // insert 5 drop table jobs to DefaultJobListKey queue - enQueueDDLJobs(t, txn, model.ActionDropTable, 10, 15) + enQueueDDLJobs(t, sess, txn, model.ActionDropTable, 10, 15) // insert 5 create table jobs to DefaultJobListKey queue - enQueueDDLJobs(t, txn, model.ActionCreateTable, 0, 5) + enQueueDDLJobs(t, sess, txn, model.ActionCreateTable, 0, 5) // insert add index jobs to AddIndexJobListKey queue - enQueueDDLJobs(t, txn, model.ActionAddIndex, 5, 10) + enQueueDDLJobs(t, sess, txn, model.ActionAddIndex, 5, 10) - currJobs, err := ddl.GetAllDDLJobs(meta.NewMeta(txn)) + currJobs, err := ddl.GetAllDDLJobs(sess, meta.NewMeta(txn)) require.NoError(t, err) require.Len(t, currJobs, 15) @@ -124,8 +125,8 @@ func TestGetHistoryDDLJobs(t *testing.T) { err := kv.RunInNewTxn(kv.WithInternalSourceType(context.Background(), kv.InternalTxnDDL), store, false, func(ctx context.Context, txn kv.Transaction) error { return meta.NewMeta(txn).ClearAllHistoryJob() }) - require.NoError(t, err) + testkit.NewTestKit(t, store).MustExec("delete from mysql.tidb_ddl_history") tk := testkit.NewTestKit(t, store) sess := tk.Session() @@ -143,7 +144,7 @@ func TestGetHistoryDDLJobs(t *testing.T) { SchemaID: 1, Type: model.ActionCreateTable, } - err = ddl.AddHistoryDDLJob(m, jobs[i], true) + err = ddl.AddHistoryDDLJobForTest(sess, m, jobs[i], true) require.NoError(t, err) historyJobs, err := ddl.GetLastNHistoryDDLJobs(m, ddl.DefNumHistoryJobs) @@ -204,14 +205,14 @@ func TestIsJobRollbackable(t *testing.T) { } } -func enQueueDDLJobs(t *testing.T, txn kv.Transaction, jobType model.ActionType, start, end int) { +func enQueueDDLJobs(t *testing.T, sess session.Session, txn kv.Transaction, jobType model.ActionType, start, end int) { for i := start; i < end; i++ { job := &model.Job{ ID: int64(i), SchemaID: 1, Type: jobType, } - err := addDDLJobs(txn, job) + err := addDDLJobs(sess, txn, job) require.NoError(t, err) } } diff --git a/ddl/ddl_test.go b/ddl/ddl_test.go index 54eb13b955629..b0fedd991639b 100644 --- a/ddl/ddl_test.go +++ b/ddl/ddl_test.go @@ -19,6 +19,7 @@ import ( "testing" "time" + "github.com/pingcap/failpoint" "github.com/pingcap/tidb/infoschema" "github.com/pingcap/tidb/kv" "github.com/pingcap/tidb/meta" @@ -273,6 +274,9 @@ func TestNotifyDDLJob(t *testing.T) { require.NoError(t, store.Close()) }() + require.NoError(t, failpoint.Enable("github.com/pingcap/tidb/ddl/NoDDLDispatchLoop", `return(true)`)) + defer require.NoError(t, failpoint.Disable("github.com/pingcap/tidb/ddl/NoDDLDispatchLoop")) + getFirstNotificationAfterStartDDL := func(d *ddl) { select { case <-d.workers[addIdxWorker].ddlJobCh: @@ -284,6 +288,11 @@ func TestNotifyDDLJob(t *testing.T) { default: // The notification may be received by the worker. } + + select { + case <-d.ddlJobCh: + default: + } } d, err := testNewDDLAndStart( @@ -314,6 +323,7 @@ func TestNotifyDDLJob(t *testing.T) { d.asyncNotifyWorker(job) select { case <-d.workers[generalWorker].ddlJobCh: + case <-d.ddlJobCh: default: require.FailNow(t, "do not get the general job notification") } @@ -323,6 +333,7 @@ func TestNotifyDDLJob(t *testing.T) { d.asyncNotifyWorker(job) select { case <-d.workers[addIdxWorker].ddlJobCh: + case <-d.ddlJobCh: default: require.FailNow(t, "do not get the add index job notification") } @@ -354,6 +365,8 @@ func TestNotifyDDLJob(t *testing.T) { require.FailNow(t, "should not get the add index job notification") case <-d1.workers[generalWorker].ddlJobCh: require.FailNow(t, "should not get the general job notification") + case <-d1.ddlJobCh: + require.FailNow(t, "should not get the job notification") default: } } diff --git a/ddl/ddl_tiflash_api.go b/ddl/ddl_tiflash_api.go index ac200a9667655..4c3f9a70a3cec 100644 --- a/ddl/ddl_tiflash_api.go +++ b/ddl/ddl_tiflash_api.go @@ -499,7 +499,7 @@ func getDropOrTruncateTableTiflash(ctx sessionctx.Context, currentSchema infosch return GetDropOrTruncateTableInfoFromJobsByStore(jobs, gcSafePoint, getTable, handleJobAndTableInfo) } - err = IterAllDDLJobs(txn, fn) + err = IterAllDDLJobs(ctx, txn, fn) if err != nil { if terror.ErrorEqual(variable.ErrSnapshotTooOld, err) { // The err indicate that current ddl job and remain DDL jobs was been deleted by GC, diff --git a/ddl/ddl_tiflash_test.go b/ddl/ddl_tiflash_test.go index 87001a8f6b971..2db35d19cb744 100644 --- a/ddl/ddl_tiflash_test.go +++ b/ddl/ddl_tiflash_test.go @@ -392,8 +392,8 @@ func TestSetTiFlashModeAvailable(t *testing.T) { tk.MustExec("use test") tk.MustExec("drop table if exists ddltiflash") tk.MustExec("create table ddltiflash(z int)") - tk.MustExec("alter table ddltiflash set tiflash mode fast") tk.MustExec("alter table ddltiflash set tiflash replica 1") + tk.MustExec("alter table ddltiflash set tiflash mode fast") time.Sleep(ddl.PollTiFlashInterval * RoundToBeAvailable * 3) tb, err := s.dom.InfoSchema().TableByName(model.NewCIStr("test"), model.NewCIStr("ddltiflash")) require.NoError(t, err) @@ -408,6 +408,29 @@ func TestSetTiFlashModeAvailable(t *testing.T) { tiflashmode = tb.Meta().TiFlashMode require.NotNil(t, tiflashmode) require.Equal(t, tiflashmode, model.TiFlashModeNormal) + + // check the warning when set tiflash mode on the table whose tiflash replica is nil + tk.MustExec("use test") + tk.MustExec("drop table if exists ddltiflash") + tk.MustExec("create table ddltiflash(z int)") + tk.MustExec("alter table ddltiflash set tiflash mode fast") + tk.MustQuery("show warnings").Check( + testkit.Rows("Note 0 TiFlash mode will take effect after at least one TiFlash replica is set for the table")) +} + +// check for the condition that unsupport set tiflash mode +func TestSetTiFlashModeUnsupported(t *testing.T) { + s, teardown := createTiFlashContext(t) + defer teardown() + tk := testkit.NewTestKit(t, s.store) + + tk.MustExec("use test") + tk.MustExec("drop table if exists ddltiflash") + tk.MustExec("create temporary table ddltiflash(z int)") + // unsupport for temporary table + tk.MustGetErrMsg("alter table ddltiflash set tiflash mode fast", "[ddl:8200]TiDB doesn't support ALTER TABLE for local temporary table") + // unsupport for system table + tk.MustGetErrMsg("alter table information_schema.tiflash_replica set tiflash mode fast", "[ddl:8200]Unsupported ALTER TiFlash settings for system table and memory table") } // Truncate partition shall not block. @@ -760,10 +783,10 @@ func TestAlterDatabaseErrorGrammar(t *testing.T) { defer tear() tk := testkit.NewTestKit(t, store) - tk.MustGetErrMsg("ALTER DATABASE t SET TIFLASH REPLICA 1 SET TIFLASH REPLICA 2 LOCATION LABELS 'a','b'", "[ddl:8200]Unsupported multi schema change") - tk.MustGetErrMsg("ALTER DATABASE t SET TIFLASH REPLICA 1 SET TIFLASH REPLICA 2", "[ddl:8200]Unsupported multi schema change") - tk.MustGetErrMsg("ALTER DATABASE t SET TIFLASH REPLICA 1 LOCATION LABELS 'a','b' SET TIFLASH REPLICA 2", "[ddl:8200]Unsupported multi schema change") - tk.MustGetErrMsg("ALTER DATABASE t SET TIFLASH REPLICA 1 LOCATION LABELS 'a','b' SET TIFLASH REPLICA 2 LOCATION LABELS 'a','b'", "[ddl:8200]Unsupported multi schema change") + tk.MustGetErrMsg("ALTER DATABASE t SET TIFLASH REPLICA 1 SET TIFLASH REPLICA 2 LOCATION LABELS 'a','b'", "[ddl:8200]Unsupported multi schema change for set tiflash replica") + tk.MustGetErrMsg("ALTER DATABASE t SET TIFLASH REPLICA 1 SET TIFLASH REPLICA 2", "[ddl:8200]Unsupported multi schema change for set tiflash replica") + tk.MustGetErrMsg("ALTER DATABASE t SET TIFLASH REPLICA 1 LOCATION LABELS 'a','b' SET TIFLASH REPLICA 2", "[ddl:8200]Unsupported multi schema change for set tiflash replica") + tk.MustGetErrMsg("ALTER DATABASE t SET TIFLASH REPLICA 1 LOCATION LABELS 'a','b' SET TIFLASH REPLICA 2 LOCATION LABELS 'a','b'", "[ddl:8200]Unsupported multi schema change for set tiflash replica") } func TestAlterDatabaseBasic(t *testing.T) { diff --git a/ddl/ddl_worker.go b/ddl/ddl_worker.go index 830579fab895f..b1b30f07d7f4d 100644 --- a/ddl/ddl_worker.go +++ b/ddl/ddl_worker.go @@ -17,6 +17,7 @@ package ddl import ( "context" "fmt" + "math/rand" "strconv" "sync" "sync/atomic" @@ -91,10 +92,13 @@ type worker struct { wg sync.WaitGroup sessPool *sessionPool // sessPool is used to new sessions to execute SQL in ddl package. + sess *session // sess is used and only used in running DDL job. delRangeManager delRangeManager logCtx context.Context lockSeqNum bool + concurrentDDL bool + *ddlCtx } @@ -119,7 +123,7 @@ func NewJobContext() *JobContext { } } -func newWorker(ctx context.Context, tp workerType, sessPool *sessionPool, delRangeMgr delRangeManager, dCtx *ddlCtx) *worker { +func newWorker(ctx context.Context, tp workerType, sessPool *sessionPool, delRangeMgr delRangeManager, dCtx *ddlCtx, concurrentDDL bool) *worker { worker := &worker{ id: ddlWorkerID.Add(1), tp: tp, @@ -128,8 +132,8 @@ func newWorker(ctx context.Context, tp workerType, sessPool *sessionPool, delRan ddlCtx: dCtx, sessPool: sessPool, delRangeManager: delRangeMgr, + concurrentDDL: concurrentDDL, } - worker.addingDDLJobKey = addingDDLJobPrefix + worker.typeStr() worker.logCtx = logutil.WithKeyValue(context.Background(), "worker", worker.String()) return worker @@ -154,6 +158,9 @@ func (w *worker) String() string { func (w *worker) Close() { startTime := time.Now() + if w.sess != nil { + w.sessPool.put(w.sess.session()) + } w.wg.Wait() logutil.Logger(w.logCtx).Info("[ddl] DDL worker closed", zap.Duration("take time", time.Since(startTime))) } @@ -286,8 +293,29 @@ func (d *ddl) limitDDLJobs() { // addBatchDDLJobs gets global job IDs and puts the DDL jobs in the DDL queue. func (d *ddl) addBatchDDLJobs(tasks []*limitJobTask) { startTime := time.Now() + var err error + if variable.EnableConcurrentDDL.Load() { + err = d.addBatchDDLJobs2Table(tasks) + } else { + err = d.addBatchDDLJobs2Queue(tasks) + } + var jobs string + for _, task := range tasks { + task.err <- err + jobs += task.job.String() + "; " + metrics.DDLWorkerHistogram.WithLabelValues(metrics.WorkerAddDDLJob, task.job.Type.String(), + metrics.RetLabel(err)).Observe(time.Since(startTime).Seconds()) + } + if err != nil { + logutil.BgLogger().Warn("[ddl] add DDL jobs failed", zap.String("jobs", jobs), zap.Error(err)) + } else { + logutil.BgLogger().Info("[ddl] add DDL jobs", zap.Int("batch count", len(tasks)), zap.String("jobs", jobs)) + } +} + +func (d *ddl) addBatchDDLJobs2Queue(tasks []*limitJobTask) error { ctx := kv.WithInternalSourceType(context.Background(), kv.InternalTxnDDL) - err := kv.RunInNewTxn(ctx, d.store, true, func(ctx context.Context, txn kv.Transaction) error { + return kv.RunInNewTxn(ctx, d.store, true, func(ctx context.Context, txn kv.Transaction) error { t := meta.NewMeta(txn) ids, err := t.GenGlobalIDs(len(tasks)) if err != nil { @@ -319,18 +347,6 @@ func (d *ddl) addBatchDDLJobs(tasks []*limitJobTask) { }) return nil }) - var jobs string - for _, task := range tasks { - task.err <- err - jobs += task.job.String() + "; " - metrics.DDLWorkerHistogram.WithLabelValues(metrics.WorkerAddDDLJob, task.job.Type.String(), - metrics.RetLabel(err)).Observe(time.Since(startTime).Seconds()) - } - if err != nil { - logutil.BgLogger().Warn("[ddl] add DDL jobs failed", zap.String("jobs", jobs), zap.Error(err)) - } else { - logutil.BgLogger().Info("[ddl] add DDL jobs", zap.Int("batch count", len(tasks)), zap.String("jobs", jobs)) - } } func injectModifyJobArgFailPoint(job *model.Job) { @@ -357,16 +373,41 @@ func setJobStateToQueueing(job *model.Job) { job.State = model.JobStateQueueing } -// getHistoryDDLJob gets a DDL job with job's ID from history queue. -func (d *ddl) getHistoryDDLJob(id int64) (*model.Job, error) { - se, err := d.sessPool.get() - if err != nil { - return nil, errors.Trace(err) +// addBatchDDLJobs2Table gets global job IDs and puts the DDL jobs in the DDL job table. +func (d *ddl) addBatchDDLJobs2Table(tasks []*limitJobTask) error { + var ids []int64 + var err error + startTS := uint64(0) + ctx := kv.WithInternalSourceType(context.Background(), kv.InternalTxnDDL) + err = kv.RunInNewTxn(ctx, d.store, true, func(ctx context.Context, txn kv.Transaction) error { + t := meta.NewMeta(txn) + ids, err = t.GenGlobalIDs(len(tasks)) + if err != nil { + return errors.Trace(err) + } + startTS = txn.StartTS() + return nil + }) + if err == nil { + jobTasks := make([]*model.Job, len(tasks)) + for i, task := range tasks { + job := task.job + job.Version = currentVersion + job.StartTS = startTS + job.ID = ids[i] + setJobStateToQueueing(job) + jobTasks[i] = job + injectModifyJobArgFailPoint(job) + } + sess, err1 := d.sessPool.get() + if err1 == nil { + sess.SetDiskFullOpt(kvrpcpb.DiskFullOpt_AllowedOnAlmostFull) + err1 = insertDDLJobs2Table(newSession(sess), jobTasks, true) + d.sessPool.put(sess) + } + err = err1 } - defer d.sessPool.put(se) - job, err := GetHistoryJobByID(se, id) - - return job, errors.Trace(err) + return errors.Trace(err) } func injectFailPointForGetJob(job *model.Job) { @@ -419,7 +460,13 @@ func (w *worker) updateDDLJob(t *meta.Meta, job *model.Job, meetErr bool) error logutil.Logger(w.logCtx).Info("[ddl] meet something wrong before update DDL job, shouldn't update raw args", zap.String("job", job.String())) } - return errors.Trace(t.UpdateDDLJob(0, job, updateRawArgs)) + var err error + if w.concurrentDDL { + err = updateDDLJob2Table(w.sess, job, updateRawArgs) + } else { + err = t.UpdateDDLJob(0, job, updateRawArgs) + } + return errors.Trace(err) } func needUpdateRawArgs(job *model.Job, meetErr bool) bool { @@ -502,8 +549,11 @@ func (w *worker) finishDDLJob(t *meta.Meta, job *model.Job) (err error) { if err != nil { return errors.Trace(err) } - - _, err = t.DeQueueDDLJob() + if w.concurrentDDL { + err = w.deleteDDLJob(job) + } else { + _, err = t.DeQueueDDLJob() + } if err != nil { return errors.Trace(err) } @@ -518,7 +568,7 @@ func (w *worker) finishDDLJob(t *meta.Meta, job *model.Job) (err error) { } w.writeDDLSeqNum(job) w.removeJobCtx(job) - err = t.AddHistoryDDLJob(job, updateRawArgs) + err = AddHistoryDDLJob(w.sess, t, job, updateRawArgs, w.concurrentDDL) return errors.Trace(err) } @@ -614,6 +664,146 @@ func (w *JobContext) setDDLLabelForDiagnosis(job *model.Job) { w.ddlJobCtx = kv.WithInternalSourceType(w.ddlJobCtx, w.ddlJobSourceType()) } +func (w *worker) HandleJobDone(d *ddlCtx, job *model.Job, t *meta.Meta) error { + err := w.finishDDLJob(t, job) + if err != nil { + w.sess.rollback() + return err + } + + err = w.sess.commit() + if err != nil { + return err + } + asyncNotify(d.ddlJobDoneCh) + return nil +} + +func (w *worker) HandleDDLJobTable(d *ddlCtx, job *model.Job) error { + var ( + err error + schemaVer int64 + runJobErr error + waitTime = 2 * d.lease + ) + defer func() { + w.unlockSeqNum(err) + }() + + err = w.sess.begin() + if err != nil { + return err + } + if !variable.EnableConcurrentDDL.Load() || d.waiting.Load() { + w.sess.rollback() + return nil + } + failpoint.Inject("mockRunJobTime", func(val failpoint.Value) { + if val.(bool) { + time.Sleep(time.Duration(rand.Intn(5)) * time.Second) // #nosec G404 + } + }) + txn, err := w.sess.txn() + if err != nil { + w.sess.rollback() + return err + } + // Only general DDLs are allowed to be executed when TiKV is disk full. + if w.tp == addIdxWorker && job.IsRunning() { + txn.SetDiskFullOpt(kvrpcpb.DiskFullOpt_NotAllowedOnFull) + } + w.setDDLLabelForTopSQL(job) + w.setDDLSourceForDiagnosis(job) + jobContext := w.jobContext(job) + if tagger := w.getResourceGroupTaggerForTopSQL(job); tagger != nil { + txn.SetOption(kv.ResourceGroupTagger, tagger) + } + t := meta.NewMeta(txn) + if job.IsDone() || job.IsRollbackDone() { + if job.IsDone() { + job.State = model.JobStateSynced + } + err = w.HandleJobDone(d, job, t) + return err + } + + d.mu.RLock() + d.mu.hook.OnJobRunBefore(job) + d.mu.RUnlock() + + // set request source type to DDL type + txn.SetOption(kv.RequestSourceType, jobContext.ddlJobSourceType()) + + // If running job meets error, we will save this error in job Error + // and retry later if the job is not cancelled. + schemaVer, runJobErr = w.runDDLJob(d, t, job) + + if job.IsCancelled() { + defer d.unlockSchemaVersion(job.ID) + w.sess.reset() + err = w.HandleJobDone(d, job, t) + return err + } + + if runJobErr != nil && !job.IsRollingback() && !job.IsRollbackDone() { + // If the running job meets an error + // and the job state is rolling back, it means that we have already handled this error. + // Some DDL jobs (such as adding indexes) may need to update the table info and the schema version, + // then shouldn't discard the KV modification. + // And the job state is rollback done, it means the job was already finished, also shouldn't discard too. + // Otherwise, we should discard the KV modification when running job. + w.sess.reset() + // If error happens after updateSchemaVersion(), then the schemaVer is updated. + // Result in the retry duration is up to 2 * lease. + schemaVer = 0 + } + + err = w.updateDDLJob(t, job, runJobErr != nil) + if err = w.handleUpdateJobError(t, job, err); err != nil { + w.sess.rollback() + d.unlockSchemaVersion(job.ID) + return err + } + writeBinlog(d.binlogCli, txn, job) + // reset the SQL digest to make topsql work right. + w.sess.GetSessionVars().StmtCtx.ResetSQLDigest(job.Query) + err = w.sess.commit() + d.unlockSchemaVersion(job.ID) + if err != nil { + return err + } + w.registerSync(job) + + if runJobErr != nil { + // wait a while to retry again. If we don't wait here, DDL will retry this job immediately, + // which may act like a deadlock. + logutil.Logger(w.logCtx).Info("[ddl] run DDL job failed, sleeps a while then retries it.", + zap.Duration("waitTime", GetWaitTimeWhenErrorOccurred()), zap.Error(runJobErr)) + time.Sleep(GetWaitTimeWhenErrorOccurred()) + } + + // Here means the job enters another state (delete only, write only, public, etc...) or is cancelled. + // If the job is done or still running or rolling back, we will wait 2 * lease time to guarantee other servers to update + // the newest schema. + ctx, cancel := context.WithTimeout(w.ctx, waitTime) + w.waitSchemaChanged(ctx, d, waitTime, schemaVer, job) + cancel() + d.synced(job) + + if RunInGoTest { + // d.mu.hook is initialed from domain / test callback, which will force the owner host update schema diff synchronously. + d.mu.RLock() + d.mu.hook.OnSchemaStateChanged() + d.mu.RUnlock() + } + + d.mu.RLock() + d.mu.hook.OnJobUpdated(job) + d.mu.RUnlock() + + return nil +} + func (w *JobContext) getResourceGroupTaggerForTopSQL() tikvrpc.ResourceGroupTagger { if !topsqlstate.TopSQLEnabled() || w.cacheDigest == nil { return nil @@ -648,18 +838,26 @@ func (w *worker) handleDDLJobQueue(d *ddlCtx) error { waitTime := 2 * d.lease ctx := kv.WithInternalSourceType(context.Background(), kv.InternalTxnDDL) err := kv.RunInNewTxn(ctx, d.store, false, func(ctx context.Context, txn kv.Transaction) error { + d.runningJobs.Lock() // We are not owner, return and retry checking later. - if !d.isOwner() { + if !d.isOwner() || variable.EnableConcurrentDDL.Load() || d.waiting.Load() { + d.runningJobs.Unlock() return nil } var err error t := newMetaWithQueueTp(txn, w.tp) + // We become the owner. Get the first job and run it. job, err = w.getFirstDDLJob(t) if job == nil || err != nil { + d.runningJobs.Unlock() return errors.Trace(err) } + d.runningJobs.ids[job.ID] = struct{}{} + d.runningJobs.Unlock() + + defer d.deleteRunningDDLJobMap(job.ID) // only general ddls allowed to be executed when TiKV is disk full. if w.tp == addIdxWorker && job.IsRunning() { @@ -731,6 +929,9 @@ func (w *worker) handleDDLJobQueue(d *ddlCtx) error { zap.Duration("waitTime", GetWaitTimeWhenErrorOccurred()), zap.Error(runJobErr)) time.Sleep(GetWaitTimeWhenErrorOccurred()) } + if job != nil { + d.unlockSchemaVersion(job.ID) + } if err != nil { w.unlockSeqNum(err) @@ -786,7 +987,7 @@ func writeBinlog(binlogCli *pumpcli.PumpsClient, txn kv.Transaction, job *model. // When this column is in the "delete only" and "delete reorg" states, the binlog of "drop column" has not been written yet, // but the column has been removed from the binlog of the write operation. // So we add this binlog to enable downstream components to handle DML correctly in this schema state. - ((job.Type == model.ActionDropColumn) && job.SchemaState == model.StateDeleteOnly) { + (job.Type == model.ActionDropColumn && job.SchemaState == model.StateDeleteOnly) { if skipWriteBinlog(job) { return } @@ -877,7 +1078,9 @@ func (w *worker) runDDLJob(d *ddlCtx, t *meta.Meta, job *model.Job) (ver int64, // Mock for run ddl job panic. failpoint.Inject("mockPanicInRunDDLJob", func(val failpoint.Value) {}) - logutil.Logger(w.logCtx).Info("[ddl] run DDL job", zap.String("job", job.String())) + if job.Type != model.ActionMultiSchemaChange { + logutil.Logger(w.logCtx).Info("[ddl] run DDL job", zap.String("job", job.String())) + } timeStart := time.Now() if job.RealStartTS == 0 { job.RealStartTS = t.StartTS @@ -886,10 +1089,12 @@ func (w *worker) runDDLJob(d *ddlCtx, t *meta.Meta, job *model.Job) (ver int64, metrics.DDLWorkerHistogram.WithLabelValues(metrics.WorkerRunDDLJob, job.Type.String(), metrics.RetLabel(err)).Observe(time.Since(timeStart).Seconds()) }() if job.IsFinished() { + logutil.Logger(w.logCtx).Debug("[ddl] finish DDL job", zap.String("job", job.String())) return } // The cause of this job state is that the job is cancelled by client. if job.IsCancelling() { + logutil.Logger(w.logCtx).Debug("[ddl] cancel DDL job", zap.String("job", job.String())) return convertJob2RollbackJob(w, d, t, job) } @@ -1126,8 +1331,8 @@ func buildPlacementAffects(oldIDs []int64, newIDs []int64) []*model.AffectedOpti } // updateSchemaVersion increments the schema version by 1 and sets SchemaDiff. -func updateSchemaVersion(_ *ddlCtx, t *meta.Meta, job *model.Job) (int64, error) { - schemaVersion, err := t.GenSchemaVersion() +func updateSchemaVersion(d *ddlCtx, t *meta.Meta, job *model.Job) (int64, error) { + schemaVersion, err := d.setSchemaVersion(job, d.store) if err != nil { return 0, errors.Trace(err) } @@ -1209,10 +1414,12 @@ func updateSchemaVersion(_ *ddlCtx, t *meta.Meta, job *model.Job) (int64, error) diff.AffectedOpts = affects case model.ActionExchangeTablePartition: var ( - ptSchemaID int64 - ptTableID int64 + ptSchemaID int64 + ptTableID int64 + partName string + withValidation bool ) - err = job.DecodeArgs(&diff.TableID, &ptSchemaID, &ptTableID) + err = job.DecodeArgs(&diff.TableID, &ptSchemaID, &ptTableID, &partName, &withValidation) if err != nil { return 0, errors.Trace(err) } diff --git a/ddl/ddl_worker_test.go b/ddl/ddl_worker_test.go index 6c21be950aead..01a11dd1da9eb 100644 --- a/ddl/ddl_worker_test.go +++ b/ddl/ddl_worker_test.go @@ -15,7 +15,6 @@ package ddl_test import ( - "context" "strconv" "sync" "testing" @@ -24,7 +23,6 @@ import ( "github.com/pingcap/errors" "github.com/pingcap/failpoint" "github.com/pingcap/tidb/ddl" - "github.com/pingcap/tidb/kv" "github.com/pingcap/tidb/meta" "github.com/pingcap/tidb/parser/model" "github.com/pingcap/tidb/sessionctx" @@ -33,7 +31,7 @@ import ( "github.com/stretchr/testify/require" ) -const testLease = 5 * time.Millisecond +const testLease = 5 * time.Second func TestCheckOwner(t *testing.T) { _, dom, clean := testkit.CreateMockStoreAndDomainWithSchemaLease(t, testLease) @@ -102,30 +100,29 @@ func TestParallelDDL(t *testing.T) { tk.MustExec("create table test_parallel_ddl_2.t3(c1 int, c2 int, c3 int, c4 int)") // set hook to execute jobs after all jobs are in queue. - jobCnt := int64(11) + jobCnt := 11 tc := &ddl.TestDDLCallback{Do: dom} once := sync.Once{} var checkErr error tc.OnJobRunBeforeExported = func(job *model.Job) { // TODO: extract a unified function for other tests. once.Do(func() { - qLen1 := int64(0) - qLen2 := int64(0) - var err error for { - ctx := kv.WithInternalSourceType(context.Background(), kv.InternalTxnDDL) - checkErr = kv.RunInNewTxn(ctx, store, false, func(ctx context.Context, txn kv.Transaction) error { - m := meta.NewMeta(txn) - qLen1, err = m.DDLJobQueueLen() - if err != nil { - return err + tk1 := testkit.NewTestKit(t, store) + tk1.MustExec("begin") + txn, err := tk1.Session().Txn(true) + require.NoError(t, err) + jobs, err := ddl.GetAllDDLJobs(tk1.Session(), meta.NewMeta(txn)) + require.NoError(t, err) + tk1.MustExec("rollback") + var qLen1, qLen2 int + for _, job := range jobs { + if !job.MayNeedReorg() { + qLen1++ + } else { + qLen2++ } - qLen2, err = m.DDLJobQueueLen(meta.AddIndexJobListKey) - if err != nil { - return err - } - return nil - }) + } if checkErr != nil { break } @@ -139,6 +136,25 @@ func TestParallelDDL(t *testing.T) { } }) } + + once1 := sync.Once{} + tc.OnGetJobBeforeExported = func(string) { + once1.Do(func() { + for { + tk := testkit.NewTestKit(t, store) + tk.MustExec("begin") + txn, err := tk.Session().Txn(true) + require.NoError(t, err) + jobs, err := ddl.GetAllDDLJobs(tk.Session(), meta.NewMeta(txn)) + require.NoError(t, err) + tk.MustExec("rollback") + if len(jobs) == jobCnt { + break + } + time.Sleep(time.Millisecond * 20) + } + }) + } dom.DDL().SetHook(tc) /* @@ -232,8 +248,7 @@ func TestParallelDDL(t *testing.T) { time.Sleep(5 * time.Millisecond) wg.Run(func() { tk := testkit.NewTestKit(t, store) - err := tk.ExecToErr("alter table test_parallel_ddl_2.t3 add index db3_idx1(c2)") - require.Error(t, err) + _ = tk.ExecToErr("alter table test_parallel_ddl_2.t3 add index db3_idx1(c2)") rs := tk.MustQuery("select json_extract(@@tidb_last_ddl_info, '$.seq_num')") seqIDs[10], _ = strconv.Atoi(rs.Rows()[0][0].(string)) }) @@ -253,18 +268,6 @@ func TestParallelDDL(t *testing.T) { require.Less(t, seqIDs[6], seqIDs[7]) require.Less(t, seqIDs[7], seqIDs[9]) require.Less(t, seqIDs[9], seqIDs[10]) - - // General job order. - require.Less(t, seqIDs[1], seqIDs[3]) - require.Less(t, seqIDs[3], seqIDs[4]) - require.Less(t, seqIDs[4], seqIDs[6]) - require.Less(t, seqIDs[6], seqIDs[7]) - require.Less(t, seqIDs[7], seqIDs[9]) - - // Reorg job order. - require.Less(t, seqIDs[2], seqIDs[5]) - require.Less(t, seqIDs[5], seqIDs[8]) - require.Less(t, seqIDs[8], seqIDs[10]) } func TestJobNeedGC(t *testing.T) { diff --git a/ddl/ddl_workerpool.go b/ddl/ddl_workerpool.go new file mode 100644 index 0000000000000..2d931bf7823e7 --- /dev/null +++ b/ddl/ddl_workerpool.go @@ -0,0 +1,89 @@ +// Copyright 2022 PingCAP, Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package ddl + +import ( + "github.com/ngaut/pools" + "github.com/pingcap/errors" + "github.com/pingcap/tidb/util/logutil" + "go.uber.org/atomic" +) + +// workerPool is used to new worker. +type workerPool struct { + t jobType + exit atomic.Bool + resPool *pools.ResourcePool +} + +func newDDLWorkerPool(resPool *pools.ResourcePool, tp jobType) *workerPool { + return &workerPool{ + t: tp, + exit: *atomic.NewBool(false), + resPool: resPool, + } +} + +// get gets workerPool from context resource pool. +// Please remember to call put after you finished using workerPool. +func (wp *workerPool) get() (*worker, error) { + if wp.resPool == nil { + return nil, nil + } + + if wp.exit.Load() { + return nil, errors.Errorf("workerPool is closed") + } + + // no need to protect wp.resPool + resource, err := wp.resPool.TryGet() + if err != nil { + return nil, errors.Trace(err) + } + + if resource == nil { + return nil, nil + } + + worker := resource.(*worker) + return worker, nil +} + +// put returns workerPool to context resource pool. +func (wp *workerPool) put(wk *worker) { + if wp.resPool == nil { + return + } + + // no need to protect wp.resPool, even the wp.resPool is closed, the ctx still need to + // put into resPool, because when resPool is closing, it will wait all the ctx returns, then resPool finish closing. + wp.resPool.Put(wk) +} + +// close clean up the workerPool. +func (wp *workerPool) close() { + // prevent closing resPool twice. + if wp.exit.Load() || wp.resPool == nil { + return + } + wp.exit.Store(true) + logutil.BgLogger().Info("[ddl] closing workerPool") + wp.resPool.Close() +} + +// tp return the type of worker pool. +func (wp *workerPool) tp() jobType { + return wp.t +} diff --git a/ddl/foreign_key.go b/ddl/foreign_key.go index b81e2729af379..dfccb1086c9af 100644 --- a/ddl/foreign_key.go +++ b/ddl/foreign_key.go @@ -111,5 +111,4 @@ func onDropForeignKey(d *ddlCtx, t *meta.Meta, job *model.Job) (ver int64, _ err default: return ver, dbterror.ErrInvalidDDLState.GenWithStackByArgs("foreign key", fkInfo.State) } - } diff --git a/ddl/index.go b/ddl/index.go index ac0f74a0e384d..aef4b5be3aac5 100644 --- a/ddl/index.go +++ b/ddl/index.go @@ -338,11 +338,16 @@ func onRenameIndex(d *ddlCtx, t *meta.Meta, job *model.Job) (ver int64, _ error) return ver, nil } -func validateAlterIndexVisibility(indexName model.CIStr, invisible bool, tbl *model.TableInfo) (bool, error) { - if idx := tbl.FindIndexByName(indexName.L); idx == nil { +func validateAlterIndexVisibility(ctx sessionctx.Context, indexName model.CIStr, invisible bool, tbl *model.TableInfo) (bool, error) { + var idx *model.IndexInfo + if idx = tbl.FindIndexByName(indexName.L); idx == nil || idx.State != model.StatePublic { return false, errors.Trace(infoschema.ErrKeyNotExists.GenWithStackByArgs(indexName.O, tbl.Name)) - } else if idx.Invisible == invisible { - return true, nil + } + if ctx == nil || ctx.GetSessionVars() == nil || ctx.GetSessionVars().StmtCtx.MultiSchemaInfo == nil { + // Early return. + if idx.Invisible == invisible { + return true, nil + } } return false, nil } @@ -352,8 +357,13 @@ func onAlterIndexVisibility(d *ddlCtx, t *meta.Meta, job *model.Job) (ver int64, if err != nil || tblInfo == nil { return ver, errors.Trace(err) } - idx := tblInfo.FindIndexByName(from.L) - idx.Invisible = invisible + + if job.MultiSchemaInfo != nil && job.MultiSchemaInfo.Revertible { + job.MarkNonRevertible() + return updateVersionAndTableInfo(d, t, job, tblInfo, false) + } + + setIndexVisibility(tblInfo, from, invisible) if ver, err = updateVersionAndTableInfoWithCheck(d, t, job, tblInfo, true); err != nil { job.State = model.JobStateCancelled return ver, errors.Trace(err) @@ -362,6 +372,14 @@ func onAlterIndexVisibility(d *ddlCtx, t *meta.Meta, job *model.Job) (ver int64, return ver, nil } +func setIndexVisibility(tblInfo *model.TableInfo, name model.CIStr, invisible bool) { + for _, idx := range tblInfo.Indices { + if idx.Name.L == name.L || (isTempIdxInfo(idx, tblInfo) && getChangingIndexOriginName(idx) == name.O) { + idx.Invisible = invisible + } + } +} + func getNullColInfos(tblInfo *model.TableInfo, indexInfo *model.IndexInfo) ([]*model.ColumnInfo, error) { nullCols := make([]*model.ColumnInfo, 0, len(indexInfo.Columns)) for _, colName := range indexInfo.Columns { @@ -559,7 +577,7 @@ func (w *worker) onCreateIndex(d *ddlCtx, t *meta.Meta, job *model.Job, isPK boo return ver, err } job.SchemaState = model.StateDeleteOnly - metrics.GetBackfillProgressByLabel(metrics.LblAddIndex).Set(0) + metrics.GetBackfillProgressByLabel(metrics.LblAddIndex, job.SchemaName, tblInfo.Name.String()).Set(0) case model.StateDeleteOnly: // delete only -> write only indexInfo.State = model.StateWriteOnly @@ -640,7 +658,7 @@ func doReorgWorkForCreateIndexMultiSchema(w *worker, d *ddlCtx, t *meta.Meta, jo func doReorgWorkForCreateIndex(w *worker, d *ddlCtx, t *meta.Meta, job *model.Job, tbl table.Table, indexInfo *model.IndexInfo) (done bool, ver int64, err error) { elements := []*meta.Element{{ID: indexInfo.ID, TypeKey: meta.IndexElementKey}} - rh := newReorgHandler(t) + rh := newReorgHandler(t, w.sess, w.concurrentDDL) reorgInfo, err := getReorgInfo(d.jobContext(job), d, rh, job, tbl, elements) if err != nil || reorgInfo.first { // If we run reorg firstly, we should update the job snapshot version @@ -677,7 +695,7 @@ func onDropIndex(d *ddlCtx, t *meta.Meta, job *model.Job) (ver int64, _ error) { if err != nil { if ifExists && dbterror.ErrCantDropFieldOrKey.Equal(err) { job.Warning = toTError(err) - job.FinishTableJob(model.JobStateDone, model.StateNone, ver, tblInfo) + job.State = model.JobStateDone return ver, nil } return ver, errors.Trace(err) @@ -915,12 +933,13 @@ func checkAlterIndexVisibility(t *meta.Meta, job *model.Job) (*model.TableInfo, return nil, indexName, invisible, errors.Trace(err) } - skip, err := validateAlterIndexVisibility(indexName, invisible, tblInfo) + skip, err := validateAlterIndexVisibility(nil, indexName, invisible, tblInfo) if err != nil { job.State = model.JobStateCancelled return nil, indexName, invisible, errors.Trace(err) } if skip { + job.State = model.JobStateDone return nil, indexName, invisible, nil } return tblInfo, indexName, invisible, nil @@ -971,7 +990,7 @@ func newAddIndexWorker(sessCtx sessionctx.Context, worker *worker, id int, t tab rowDecoder: rowDecoder, defaultVals: make([]types.Datum, len(t.WritableCols())), rowMap: make(map[int64]types.Datum, len(decodeColMap)), - metricCounter: metrics.BackfillTotalCounter.WithLabelValues("add_idx_rate"), + metricCounter: metrics.BackfillTotalCounter.WithLabelValues(metrics.GenerateReorgLabel("add_idx_rate", reorgInfo.SchemaName, t.Meta().Name.String())), sqlMode: reorgInfo.ReorgMeta.SQLMode, jobContext: jc, }, @@ -1333,7 +1352,7 @@ func (w *worker) updateReorgInfo(t table.PartitionedTable, reorg *reorgInfo) (bo ts := oracle.GoTimeToTS(time.Now()) s := reorg.d.store.(tikv.Storage) s.UpdateSPCache(ts, time.Now()) - time.Sleep(time.Millisecond * 3) + time.Sleep(time.Second * 3) } }) currentVer, err := getValidCurrentVersion(reorg.d.store) @@ -1347,7 +1366,7 @@ func (w *worker) updateReorgInfo(t table.PartitionedTable, reorg *reorgInfo) (bo reorg.StartKey, reorg.EndKey, reorg.PhysicalTableID = start, end, pid // Write the reorg info to store so the whole reorganize process can recover from panic. - err = reorg.UpdateReorgMeta(start) + err = reorg.UpdateReorgMeta(start, w.sessPool) logutil.BgLogger().Info("[ddl] job update reorgInfo", zap.Int64("jobID", reorg.Job.ID), zap.ByteString("elementType", reorg.currElement.TypeKey), @@ -1423,7 +1442,7 @@ func newCleanUpIndexWorker(sessCtx sessionctx.Context, worker *worker, id int, t rowDecoder: rowDecoder, defaultVals: make([]types.Datum, len(t.WritableCols())), rowMap: make(map[int64]types.Datum, len(decodeColMap)), - metricCounter: metrics.BackfillTotalCounter.WithLabelValues("cleanup_idx_rate"), + metricCounter: metrics.BackfillTotalCounter.WithLabelValues(metrics.GenerateReorgLabel("cleanup_idx_rate", reorgInfo.SchemaName, t.Meta().Name.String())), sqlMode: reorgInfo.ReorgMeta.SQLMode, jobContext: jc, }, @@ -1533,7 +1552,7 @@ func (w *worker) updateReorgInfoForPartitions(t table.PartitionedTable, reorg *r reorg.StartKey, reorg.EndKey, reorg.PhysicalTableID = start, end, pid // Write the reorg info to store so the whole reorganize process can recover from panic. - err = reorg.UpdateReorgMeta(reorg.StartKey) + err = reorg.UpdateReorgMeta(reorg.StartKey, w.sessPool) logutil.BgLogger().Info("[ddl] job update reorgInfo", zap.Int64("jobID", reorg.Job.ID), zap.ByteString("elementType", reorg.currElement.TypeKey), zap.Int64("elementID", reorg.currElement.ID), zap.Int64("partitionTableID", pid), zap.String("startHandle", tryDecodeToHandleString(start)), diff --git a/ddl/job_table.go b/ddl/job_table.go new file mode 100644 index 0000000000000..23cedfb8b1b56 --- /dev/null +++ b/ddl/job_table.go @@ -0,0 +1,556 @@ +// Copyright 2022 PingCAP, Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package ddl + +import ( + "bytes" + "context" + "fmt" + "math" + "strconv" + "strings" + "time" + + "github.com/pingcap/errors" + "github.com/pingcap/failpoint" + "github.com/pingcap/kvproto/pkg/kvrpcpb" + "github.com/pingcap/tidb/kv" + "github.com/pingcap/tidb/meta" + "github.com/pingcap/tidb/metrics" + "github.com/pingcap/tidb/parser/model" + "github.com/pingcap/tidb/sessionctx/variable" + "github.com/pingcap/tidb/util/logutil" + clientv3 "go.etcd.io/etcd/client/v3" + "go.uber.org/zap" + "golang.org/x/exp/slices" +) + +var ( + addingDDLJobConcurrent = "/tidb/ddl/add_ddl_job_general" +) + +func (dc *ddlCtx) insertRunningDDLJobMap(id int64) { + dc.runningJobs.Lock() + defer dc.runningJobs.Unlock() + dc.runningJobs.ids[id] = struct{}{} +} + +func (dc *ddlCtx) deleteRunningDDLJobMap(id int64) { + dc.runningJobs.Lock() + defer dc.runningJobs.Unlock() + delete(dc.runningJobs.ids, id) +} + +func (dc *ddlCtx) excludeJobIDs() string { + dc.runningJobs.RLock() + defer dc.runningJobs.RUnlock() + if len(dc.runningJobs.ids) == 0 { + return "" + } + dc.runningJobIDs = dc.runningJobIDs[:0] + for id := range dc.runningJobs.ids { + dc.runningJobIDs = append(dc.runningJobIDs, strconv.Itoa(int(id))) + } + return fmt.Sprintf("and job_id not in (%s)", strings.Join(dc.runningJobIDs, ",")) +} + +const ( + getJobSQL = "select job_meta, processing from mysql.tidb_ddl_job where job_id in (select min(job_id) from mysql.tidb_ddl_job group by schema_ids, table_ids) and %s reorg %s order by processing desc, job_id" +) + +type jobType int + +func (t jobType) String() string { + switch t { + case general: + return "general" + case reorg: + return "reorg" + } + return "unknown job type: " + strconv.Itoa(int(t)) +} + +const ( + general jobType = iota + reorg +) + +func (d *ddl) getJob(sess *session, tp jobType, filter func(*model.Job) (bool, error)) (*model.Job, error) { + not := "not" + label := "get_job_general" + if tp == reorg { + not = "" + label = "get_job_reorg" + } + sql := fmt.Sprintf(getJobSQL, not, d.excludeJobIDs()) + rows, err := sess.execute(context.Background(), sql, label) + if err != nil { + return nil, errors.Trace(err) + } + for _, row := range rows { + jobBinary := row.GetBytes(0) + runJob := model.Job{} + err := runJob.Decode(jobBinary) + if err != nil { + return nil, errors.Trace(err) + } + if row.GetInt64(1) == 1 { + return &runJob, nil + } + b, err := filter(&runJob) + if err != nil { + return nil, errors.Trace(err) + } + if b { + if err := d.markJobProcessing(sess, &runJob); err != nil { + logutil.BgLogger().Warn("[ddl] handle ddl job failed: mark job is processing meet error", zap.Error(err), zap.String("job", runJob.String())) + return nil, errors.Trace(err) + } + return &runJob, nil + } + } + return nil, nil +} + +func (d *ddl) getGeneralJob(sess *session) (*model.Job, error) { + return d.getJob(sess, general, func(job *model.Job) (bool, error) { + if job.Type == model.ActionDropSchema { + sql := fmt.Sprintf("select job_id from mysql.tidb_ddl_job where find_in_set(%s, schema_ids) != 0 and processing limit 1", strconv.Quote(strconv.FormatInt(job.SchemaID, 10))) + return d.checkJobIsRunnable(sess, sql) + } + // For general job, there is only 1 general worker to handle it, so at this moment the processing job must be reorg job and the reorg job must only contain one table id. + // So it's not possible the find_in_set("1,2", "1,2,3") occurs. + sql := fmt.Sprintf("select job_id from mysql.tidb_ddl_job t1, (select table_ids from mysql.tidb_ddl_job where job_id = %d) t2 where processing and find_in_set(t1.table_ids, t2.table_ids) != 0", job.ID) + return d.checkJobIsRunnable(sess, sql) + }) +} + +func (d *ddl) checkJobIsRunnable(sess *session, sql string) (bool, error) { + rows, err := sess.execute(context.Background(), sql, "check_runnable") + return len(rows) == 0, err +} + +func (d *ddl) getReorgJob(sess *session) (*model.Job, error) { + return d.getJob(sess, reorg, func(job *model.Job) (bool, error) { + sql := fmt.Sprintf("select job_id from mysql.tidb_ddl_job where (find_in_set(%s, schema_ids) != 0 and type = %d and processing) or (find_in_set(%s, table_ids) != 0 and processing) limit 1", + strconv.Quote(strconv.FormatInt(job.SchemaID, 10)), model.ActionDropSchema, strconv.Quote(strconv.FormatInt(job.TableID, 10))) + return d.checkJobIsRunnable(sess, sql) + }) +} + +func (d *ddl) startDispatchLoop() { + se, err := d.sessPool.get() + if err != nil { + logutil.BgLogger().Fatal("dispatch loop get session failed, it should not happen, please try restart TiDB", zap.Error(err)) + } + defer d.sessPool.put(se) + sess := newSession(se) + var notifyDDLJobByEtcdCh clientv3.WatchChan + if d.etcdCli != nil { + notifyDDLJobByEtcdCh = d.etcdCli.Watch(d.ctx, addingDDLJobConcurrent) + } + ticker := time.NewTicker(1 * time.Second) + defer ticker.Stop() + for { + if isChanClosed(d.ctx.Done()) { + return + } + if !variable.EnableConcurrentDDL.Load() || !d.isOwner() || d.waiting.Load() { + d.once.Store(true) + time.Sleep(time.Second) + continue + } + select { + case <-d.ddlJobCh: + case <-ticker.C: + case _, ok := <-notifyDDLJobByEtcdCh: + if !ok { + logutil.BgLogger().Warn("[ddl] start worker watch channel closed", zap.String("watch key", addingDDLJobConcurrent)) + notifyDDLJobByEtcdCh = d.etcdCli.Watch(d.ctx, addingDDLJobConcurrent) + time.Sleep(time.Second) + continue + } + case <-d.ctx.Done(): + return + } + d.getDDLJobAndRun(sess, d.generalDDLWorkerPool, d.getGeneralJob) + d.getDDLJobAndRun(sess, d.reorgWorkerPool, d.getReorgJob) + } +} + +func (d *ddl) getDDLJobAndRun(sess *session, pool *workerPool, getJob func(*session) (*model.Job, error)) { + wk, err := pool.get() + if err != nil || wk == nil { + logutil.BgLogger().Debug(fmt.Sprintf("[ddl] no %v worker available now", pool.tp()), zap.Error(err)) + return + } + + d.mu.RLock() + d.mu.hook.OnGetJobBefore(pool.tp().String()) + d.mu.RUnlock() + + job, err := getJob(sess) + if job == nil || err != nil { + if err != nil { + logutil.BgLogger().Warn("[ddl] get job met error", zap.Error(err)) + } + pool.put(wk) + return + } + d.mu.RLock() + d.mu.hook.OnGetJobAfter(pool.tp().String(), job) + d.mu.RUnlock() + + d.delivery2worker(wk, pool, job) +} + +func (d *ddl) delivery2worker(wk *worker, pool *workerPool, job *model.Job) { + injectFailPointForGetJob(job) + d.insertRunningDDLJobMap(job.ID) + d.wg.Run(func() { + metrics.DDLRunningJobCount.WithLabelValues(pool.tp().String()).Inc() + defer func() { + pool.put(wk) + d.deleteRunningDDLJobMap(job.ID) + asyncNotify(d.ddlJobCh) + metrics.DDLRunningJobCount.WithLabelValues(pool.tp().String()).Dec() + }() + // we should wait 2 * d.lease time to guarantee all TiDB server have finished the schema change. + // see waitSchemaSynced for more details. + if !d.isSynced(job) || d.once.Load() { + wk.waitSchemaSynced(d.ddlCtx, job, 2*d.lease) + d.once.Store(false) + } + if err := wk.HandleDDLJobTable(d.ddlCtx, job); err != nil { + logutil.BgLogger().Info("[ddl] handle ddl job failed", zap.Error(err), zap.String("job", job.String())) + } + }) +} + +func (d *ddl) markJobProcessing(sess *session, job *model.Job) error { + sess.SetDiskFullOpt(kvrpcpb.DiskFullOpt_AllowedOnAlmostFull) + _, err := sess.execute(context.Background(), fmt.Sprintf("update mysql.tidb_ddl_job set processing = 1 where job_id = %d", job.ID), "mark_job_processing") + return errors.Trace(err) +} + +const ( + addDDLJobSQL = "insert into mysql.tidb_ddl_job(job_id, reorg, schema_ids, table_ids, job_meta, type, processing) values" + updateDDLJobSQL = "update mysql.tidb_ddl_job set job_meta = %s where job_id = %d" +) + +func insertDDLJobs2Table(sess *session, jobs []*model.Job, updateRawArgs bool) error { + failpoint.Inject("mockAddBatchDDLJobsErr", func(val failpoint.Value) { + if val.(bool) { + failpoint.Return(errors.Errorf("mockAddBatchDDLJobsErr")) + } + }) + if len(jobs) == 0 { + return nil + } + var sql bytes.Buffer + sql.WriteString(addDDLJobSQL) + for i, job := range jobs { + b, err := job.Encode(updateRawArgs) + if err != nil { + return err + } + if i != 0 { + sql.WriteString(",") + } + sql.WriteString(fmt.Sprintf("(%d, %t, %s, %s, %s, %d, %t)", job.ID, job.MayNeedReorg(), strconv.Quote(job2SchemaIDs(job)), strconv.Quote(job2TableIDs(job)), wrapKey2String(b), job.Type, !job.NotStarted())) + } + sess.SetDiskFullOpt(kvrpcpb.DiskFullOpt_AllowedOnAlmostFull) + ctx := kv.WithInternalSourceType(context.Background(), kv.InternalTxnDDL) + _, err := sess.execute(ctx, sql.String(), "insert_job") + logutil.BgLogger().Debug("[ddl] add job to mysql.tidb_ddl_job table", zap.String("sql", sql.String())) + return errors.Trace(err) +} + +func job2SchemaIDs(job *model.Job) string { + return job2UniqueIDs(job, true) +} + +func job2TableIDs(job *model.Job) string { + return job2UniqueIDs(job, false) +} + +func job2UniqueIDs(job *model.Job, schema bool) string { + switch job.Type { + case model.ActionExchangeTablePartition, model.ActionRenameTables, model.ActionRenameTable: + var ids []int64 + if schema { + ids = job.CtxVars[0].([]int64) + } else { + ids = job.CtxVars[1].([]int64) + } + set := make(map[int64]struct{}, len(ids)) + for _, id := range ids { + set[id] = struct{}{} + } + + s := make([]string, 0, len(set)) + for id := range set { + s = append(s, strconv.FormatInt(id, 10)) + } + slices.Sort(s) + return strings.Join(s, ",") + } + if schema { + return strconv.FormatInt(job.SchemaID, 10) + } + return strconv.FormatInt(job.TableID, 10) +} + +func (w *worker) deleteDDLJob(job *model.Job) error { + sql := fmt.Sprintf("delete from mysql.tidb_ddl_job where job_id = %d", job.ID) + _, err := w.sess.execute(context.Background(), sql, "delete_job") + return errors.Trace(err) +} + +func updateDDLJob2Table(sctx *session, job *model.Job, updateRawArgs bool) error { + b, err := job.Encode(updateRawArgs) + if err != nil { + return err + } + sql := fmt.Sprintf(updateDDLJobSQL, wrapKey2String(b), job.ID) + _, err = sctx.execute(context.Background(), sql, "update_job") + return errors.Trace(err) +} + +// getDDLReorgHandle gets DDL reorg handle. +func getDDLReorgHandle(sess *session, job *model.Job) (element *meta.Element, startKey, endKey kv.Key, physicalTableID int64, err error) { + sql := fmt.Sprintf("select ele_id, ele_type, start_key, end_key, physical_id from mysql.tidb_ddl_reorg where job_id = %d", job.ID) + rows, err := sess.execute(context.Background(), sql, "get_handle") + if err != nil { + return nil, nil, nil, 0, err + } + if len(rows) == 0 { + return nil, nil, nil, 0, meta.ErrDDLReorgElementNotExist + } + id := rows[0].GetInt64(0) + tp := rows[0].GetBytes(1) + element = &meta.Element{ + ID: id, + TypeKey: tp, + } + startKey = rows[0].GetBytes(2) + endKey = rows[0].GetBytes(3) + physicalTableID = rows[0].GetInt64(4) + // physicalTableID may be 0, because older version TiDB (without table partition) doesn't store them. + // update them to table's in this case. + if physicalTableID == 0 { + if job.ReorgMeta != nil { + endKey = kv.IntHandle(job.ReorgMeta.EndHandle).Encoded() + } else { + endKey = kv.IntHandle(math.MaxInt64).Encoded() + } + physicalTableID = job.TableID + logutil.BgLogger().Warn("new TiDB binary running on old TiDB DDL reorg data", + zap.Int64("partition ID", physicalTableID), + zap.Stringer("startHandle", startKey), + zap.Stringer("endHandle", endKey)) + } + return +} + +// updateDDLReorgStartHandle update the startKey of the handle. +func updateDDLReorgStartHandle(sess *session, job *model.Job, element *meta.Element, startKey kv.Key) error { + sql := fmt.Sprintf("update mysql.tidb_ddl_reorg set ele_id = %d, ele_type = %s, start_key = %s where job_id = %d", + element.ID, wrapKey2String(element.TypeKey), wrapKey2String(startKey), job.ID) + _, err := sess.execute(context.Background(), sql, "update_start_handle") + return err +} + +// updateDDLReorgHandle update startKey, endKey physicalTableID and element of the handle. +func updateDDLReorgHandle(sess *session, jobID int64, startKey kv.Key, endKey kv.Key, physicalTableID int64, element *meta.Element) error { + sql := fmt.Sprintf("update mysql.tidb_ddl_reorg set ele_id = %d, ele_type = %s, start_key = %s, end_key = %s, physical_id = %d where job_id = %d", + element.ID, wrapKey2String(element.TypeKey), wrapKey2String(startKey), wrapKey2String(endKey), physicalTableID, jobID) + _, err := sess.execute(context.Background(), sql, "update_handle") + return err +} + +// initDDLReorgHandle initializes the handle for ddl reorg. +func initDDLReorgHandle(sess *session, jobID int64, startKey kv.Key, endKey kv.Key, physicalTableID int64, element *meta.Element) error { + sql := fmt.Sprintf("insert into mysql.tidb_ddl_reorg(job_id, ele_id, ele_type, start_key, end_key, physical_id) values (%d, %d, %s, %s, %s, %d)", + jobID, element.ID, wrapKey2String(element.TypeKey), wrapKey2String(startKey), wrapKey2String(endKey), physicalTableID) + _, err := sess.execute(context.Background(), sql, "update_handle") + return err +} + +// deleteDDLReorgHandle deletes the handle for ddl reorg. +func removeDDLReorgHandle(sess *session, job *model.Job, elements []*meta.Element) error { + if len(elements) == 0 { + return nil + } + sql := fmt.Sprintf("delete from mysql.tidb_ddl_reorg where job_id = %d", job.ID) + _, err := sess.execute(context.Background(), sql, "remove_handle") + return err +} + +// removeReorgElement removes the element from ddl reorg, it is the same with removeDDLReorgHandle, only used in failpoint +func removeReorgElement(sess *session, job *model.Job) error { + sql := fmt.Sprintf("delete from mysql.tidb_ddl_reorg where job_id = %d", job.ID) + _, err := sess.execute(context.Background(), sql, "remove_handle") + return err +} + +func wrapKey2String(key []byte) string { + if len(key) == 0 { + return "''" + } + return fmt.Sprintf("0x%x", key) +} + +func getJobsBySQL(sess *session, tbl, condition string) ([]*model.Job, error) { + rows, err := sess.execute(context.Background(), fmt.Sprintf("select job_meta from mysql.%s where %s", tbl, condition), "get_job") + if err != nil { + return nil, errors.Trace(err) + } + jobs := make([]*model.Job, 0, 16) + for _, row := range rows { + jobBinary := row.GetBytes(0) + job := model.Job{} + err := job.Decode(jobBinary) + if err != nil { + return nil, errors.Trace(err) + } + jobs = append(jobs, &job) + } + return jobs, nil +} + +// MoveJobFromQueue2Table move existing DDLs in queue to table. +func (d *ddl) MoveJobFromQueue2Table(force bool) error { + sess, err := d.sessPool.get() + if err != nil { + return err + } + defer d.sessPool.put(sess) + return runInTxn(newSession(sess), func(se *session) error { + txn, err := se.txn() + if err != nil { + return errors.Trace(err) + } + t := meta.NewMeta(txn) + isConcurrentDDL, err := t.IsConcurrentDDL() + if !force && (isConcurrentDDL || err != nil) { + return errors.Trace(err) + } + for _, tp := range []workerType{addIdxWorker, generalWorker} { + t := newMetaWithQueueTp(txn, tp) + jobs, err := t.GetAllDDLJobsInQueue() + if err != nil { + return errors.Trace(err) + } + err = insertDDLJobs2Table(se, jobs, false) + if err != nil { + return errors.Trace(err) + } + if tp == generalWorker { + // general job do not have reorg info. + continue + } + for _, job := range jobs { + element, start, end, pid, err := t.GetDDLReorgHandle(job) + if meta.ErrDDLReorgElementNotExist.Equal(err) { + continue + } + if err != nil { + return errors.Trace(err) + } + err = initDDLReorgHandle(se, job.ID, start, end, pid, element) + if err != nil { + return errors.Trace(err) + } + } + } + + if err = t.ClearALLDDLJob(); err != nil { + return errors.Trace(err) + } + if err = t.ClearAllDDLReorgHandle(); err != nil { + return errors.Trace(err) + } + return t.SetConcurrentDDL(true) + }) +} + +// MoveJobFromTable2Queue move existing DDLs in table to queue. +func (d *ddl) MoveJobFromTable2Queue() error { + sess, err := d.sessPool.get() + if err != nil { + return err + } + defer d.sessPool.put(sess) + return runInTxn(newSession(sess), func(se *session) error { + txn, err := se.txn() + if err != nil { + return errors.Trace(err) + } + t := meta.NewMeta(txn) + isConcurrentDDL, err := t.IsConcurrentDDL() + if !isConcurrentDDL || err != nil { + return errors.Trace(err) + } + jobs, err := getJobsBySQL(se, "tidb_ddl_job", "1 order by job_id") + if err != nil { + return errors.Trace(err) + } + + for _, job := range jobs { + jobListKey := meta.DefaultJobListKey + if job.MayNeedReorg() { + jobListKey = meta.AddIndexJobListKey + } + if err := t.EnQueueDDLJobNoUpdate(job, jobListKey); err != nil { + return errors.Trace(err) + } + } + + reorgHandle, err := se.execute(context.Background(), "select job_id, start_key, end_key, physical_id, ele_id, ele_type from mysql.tidb_ddl_reorg", "get_handle") + if err != nil { + return errors.Trace(err) + } + for _, row := range reorgHandle { + if err := t.UpdateDDLReorgHandle(row.GetInt64(0), row.GetBytes(1), row.GetBytes(2), row.GetInt64(3), &meta.Element{ID: row.GetInt64(4), TypeKey: row.GetBytes(5)}); err != nil { + return errors.Trace(err) + } + } + + // clean up these 2 tables. + _, err = se.execute(context.Background(), "delete from mysql.tidb_ddl_job", "delete_old_ddl") + if err != nil { + return errors.Trace(err) + } + _, err = se.execute(context.Background(), "delete from mysql.tidb_ddl_reorg", "delete_old_reorg") + if err != nil { + return errors.Trace(err) + } + return t.SetConcurrentDDL(false) + }) +} + +func runInTxn(se *session, f func(*session) error) (err error) { + err = se.begin() + if err != nil { + return err + } + err = f(se) + if err != nil { + se.rollback() + return + } + return errors.Trace(se.commit()) +} diff --git a/ddl/job_table_test.go b/ddl/job_table_test.go new file mode 100644 index 0000000000000..6c586bd2d3aca --- /dev/null +++ b/ddl/job_table_test.go @@ -0,0 +1,301 @@ +// Copyright 2022 PingCAP, Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package ddl_test + +import ( + "context" + "fmt" + "math/rand" + "sync" + "testing" + "time" + + "github.com/pingcap/failpoint" + "github.com/pingcap/tidb/ddl" + "github.com/pingcap/tidb/kv" + "github.com/pingcap/tidb/meta" + "github.com/pingcap/tidb/parser/model" + "github.com/pingcap/tidb/sessionctx/variable" + "github.com/pingcap/tidb/testkit" + "github.com/pingcap/tidb/util" + "github.com/stretchr/testify/require" + "go.uber.org/atomic" + "golang.org/x/exp/slices" +) + +func TestDDLSchedulingMultiTimes(t *testing.T) { + if !variable.EnableConcurrentDDL.Load() { + t.Skipf("test requires concurrent ddl") + } + for i := 0; i < 3; i++ { + testDDLScheduling(t) + } +} + +// testDDLScheduling tests the DDL scheduling. See Concurrent DDL RFC for the rules of DDL scheduling. +// This test checks the chosen job records to see if there are wrong scheduling, if job A and job B cannot run concurrently, +// then the all the record of job A must before or after job B, no cross record between these 2 jobs should be in between. +func testDDLScheduling(t *testing.T) { + store, dom, clean := testkit.CreateMockStoreAndDomain(t) + defer clean() + + tk := testkit.NewTestKit(t, store) + tk.MustExec("use test") + tk.MustExec("CREATE TABLE e (id INT NOT NULL) PARTITION BY RANGE (id) (PARTITION p1 VALUES LESS THAN (50), PARTITION p2 VALUES LESS THAN (100));") + tk.MustExec("CREATE TABLE e2 (id INT NOT NULL);") + tk.MustExec("CREATE TABLE e3 (id INT NOT NULL);") + + d := dom.DDL() + + ddlJobs := []string{ + "alter table e2 add index idx(id)", + "alter table e2 add index idx1(id)", + "alter table e2 add index idx2(id)", + "create table e5 (id int)", + "ALTER TABLE e EXCHANGE PARTITION p1 WITH TABLE e2;", + "alter table e add index idx(id)", + "alter table e add partition (partition p3 values less than (150))", + "create table e4 (id int)", + "alter table e3 add index idx1(id)", + "ALTER TABLE e EXCHANGE PARTITION p1 WITH TABLE e3;", + } + + hook := &ddl.TestDDLCallback{} + var wg util.WaitGroupWrapper + wg.Add(1) + var once sync.Once + hook.OnGetJobBeforeExported = func(jobType string) { + once.Do(func() { + for i, job := range ddlJobs { + wg.Run(func() { + tk := testkit.NewTestKit(t, store) + tk.MustExec("use test") + tk.MustExec("set @@tidb_enable_exchange_partition=1") + recordSet, _ := tk.Exec(job) + if recordSet != nil { + require.NoError(t, recordSet.Close()) + } + }) + for { + time.Sleep(time.Millisecond * 100) + jobs, err := ddl.GetAllDDLJobs(testkit.NewTestKit(t, store).Session(), nil) + require.NoError(t, err) + if len(jobs) == i+1 { + break + } + } + } + wg.Done() + }) + } + + record := make([]int64, 0, 16) + hook.OnGetJobAfterExported = func(jobType string, job *model.Job) { + // record the job schedule order + record = append(record, job.ID) + } + + err := failpoint.Enable("github.com/pingcap/tidb/ddl/mockRunJobTime", `return(true)`) + require.NoError(t, err) + defer func() { + err := failpoint.Disable("github.com/pingcap/tidb/ddl/mockRunJobTime") + require.NoError(t, err) + }() + + d.SetHook(hook) + wg.Wait() + + // sort all the job id. + ids := make(map[int64]struct{}, 16) + for _, id := range record { + ids[id] = struct{}{} + } + + sortedIDs := make([]int64, 0, 16) + for id := range ids { + sortedIDs = append(sortedIDs, id) + } + slices.Sort(sortedIDs) + + // map the job id to the DDL sequence. + // sortedIDs may looks like [30, 32, 34, 36, ...], it is the same order with the job in `ddlJobs`, 30 is the first job in `ddlJobs`, 32 is second... + // record may looks like [30, 30, 32, 32, 34, 32, 36, 34, ...] + // and the we map the record to the DDL sequence, [0, 0, 1, 1, 2, 1, 3, 2, ...] + for i := range record { + idx, b := slices.BinarySearch(sortedIDs, record[i]) + require.True(t, b) + record[i] = int64(idx) + } + + check(t, record, 0, 1, 2) + check(t, record, 0, 4) + check(t, record, 1, 4) + check(t, record, 2, 4) + check(t, record, 4, 5) + check(t, record, 4, 6) + check(t, record, 4, 9) + check(t, record, 5, 6) + check(t, record, 5, 9) + check(t, record, 6, 9) + check(t, record, 8, 9) +} + +// check will check if there are any cross between ids. +// e.g. if ids is [1, 2] this function checks all `1` is before or after than `2` in record. +func check(t *testing.T, record []int64, ids ...int64) { + // have return true if there are any `i` is before `j`, false if there are any `j` is before `i`. + have := func(i, j int64) bool { + for _, id := range record { + if id == i { + return true + } + if id == j { + return false + } + } + require.FailNow(t, "should not reach here") + return false + } + + // all checks if all `i` is before `j`. + all := func(i, j int64) { + meet := false + for _, id := range record { + if id == j { + meet = true + } + require.False(t, meet && id == i) + } + } + + for i := 0; i < len(ids)-1; i++ { + for j := i + 1; j < len(ids); j++ { + if have(ids[i], ids[j]) { + all(ids[i], ids[j]) + } else { + all(ids[j], ids[i]) + } + } + } +} + +func TestConcurrentDDLSwitch(t *testing.T) { + store, clean := testkit.CreateMockStore(t) + defer clean() + + type table struct { + columnIdx int + indexIdx int + } + + var tables []*table + tblCount := 20 + for i := 0; i < tblCount; i++ { + tables = append(tables, &table{1, 0}) + } + + tk := testkit.NewTestKit(t, store) + tk.MustExec("use test") + tk.MustExec("set @@global.tidb_ddl_reorg_worker_cnt=1") + tk.MustExec("set @@global.tidb_ddl_reorg_batch_size=32") + + for i := range tables { + tk.MustExec(fmt.Sprintf("create table t%d (col0 int) partition by range columns (col0) ("+ + "partition p1 values less than (100), "+ + "partition p2 values less than (300), "+ + "partition p3 values less than (500), "+ + "partition p4 values less than (700), "+ + "partition p5 values less than (1000), "+ + "partition p6 values less than maxvalue);", + i)) + for j := 0; j < 1000; j++ { + tk.MustExec(fmt.Sprintf("insert into t%d values (%d)", i, j)) + } + } + + ddls := make([]string, 0, tblCount) + ddlCount := 500 + for i := 0; i < ddlCount; i++ { + tblIdx := rand.Intn(tblCount) + if rand.Intn(2) == 0 { + ddls = append(ddls, fmt.Sprintf("alter table t%d add index idx%d (col0)", tblIdx, tables[tblIdx].indexIdx)) + tables[tblIdx].indexIdx++ + } else { + ddls = append(ddls, fmt.Sprintf("alter table t%d add column col%d int", tblIdx, tables[tblIdx].columnIdx)) + tables[tblIdx].columnIdx++ + } + } + + c := atomic.NewInt32(0) + ch := make(chan struct{}) + go func() { + var wg util.WaitGroupWrapper + for i := range ddls { + wg.Add(1) + go func(idx int) { + tk := testkit.NewTestKit(t, store) + tk.MustExec("use test") + tk.MustExec(ddls[idx]) + c.Add(1) + wg.Done() + }(i) + } + wg.Wait() + ch <- struct{}{} + }() + + ticker := time.NewTicker(time.Second * 2) + count := 0 + done := false + for !done { + select { + case <-ch: + done = true + case <-ticker.C: + var b bool + var err error + err = kv.RunInNewTxn(kv.WithInternalSourceType(context.Background(), kv.InternalTxnDDL), store, false, func(ctx context.Context, txn kv.Transaction) error { + b, err = meta.NewMeta(txn).IsConcurrentDDL() + return err + }) + require.NoError(t, err) + rs, err := testkit.NewTestKit(t, store).Exec(fmt.Sprintf("set @@global.tidb_enable_concurrent_ddl=%t", !b)) + if rs != nil { + require.NoError(t, rs.Close()) + } + if err == nil { + count++ + if b { + tk := testkit.NewTestKit(t, store) + tk.MustQuery("select count(*) from mysql.tidb_ddl_job").Check(testkit.Rows("0")) + tk.MustQuery("select count(*) from mysql.tidb_ddl_reorg").Check(testkit.Rows("0")) + } + } + } + } + + require.Equal(t, int32(ddlCount), c.Load()) + require.Greater(t, count, 0) + + tk = testkit.NewTestKit(t, store) + tk.MustExec("use test") + for i, tbl := range tables { + tk.MustQuery(fmt.Sprintf("select count(*) from information_schema.columns where TABLE_SCHEMA = 'test' and TABLE_NAME = 't%d'", i)).Check(testkit.Rows(fmt.Sprintf("%d", tbl.columnIdx))) + tk.MustExec(fmt.Sprintf("admin check table t%d", i)) + for j := 0; j < tbl.indexIdx; j++ { + tk.MustExec(fmt.Sprintf("admin check index t%d idx%d", i, j)) + } + } +} diff --git a/ddl/label/BUILD.bazel b/ddl/label/BUILD.bazel index 608f7fa1929c0..68b1ff757ac20 100644 --- a/ddl/label/BUILD.bazel +++ b/ddl/label/BUILD.bazel @@ -26,6 +26,7 @@ go_test( "rule_test.go", ], embed = [":label"], + flaky = True, deps = [ "//parser/ast", "//testkit/testsetup", diff --git a/ddl/mock.go b/ddl/mock.go index c5f1f69f086f9..a5dfb75e2025e 100644 --- a/ddl/mock.go +++ b/ddl/mock.go @@ -120,13 +120,13 @@ func (s *MockSchemaSyncer) OwnerCheckAllVersions(ctx context.Context, latestVer } // NotifyCleanExpiredPaths implements SchemaSyncer.NotifyCleanExpiredPaths interface. -func (s *MockSchemaSyncer) NotifyCleanExpiredPaths() bool { return true } +func (*MockSchemaSyncer) NotifyCleanExpiredPaths() bool { return true } // StartCleanWork implements SchemaSyncer.StartCleanWork interface. -func (s *MockSchemaSyncer) StartCleanWork() {} +func (*MockSchemaSyncer) StartCleanWork() {} // Close implements SchemaSyncer.Close interface. -func (s *MockSchemaSyncer) Close() {} +func (*MockSchemaSyncer) Close() {} type mockDelRange struct { } @@ -137,12 +137,12 @@ func newMockDelRangeManager() delRangeManager { } // addDelRangeJob implements delRangeManager interface. -func (dr *mockDelRange) addDelRangeJob(ctx context.Context, job *model.Job) error { +func (*mockDelRange) addDelRangeJob(_ context.Context, _ *model.Job) error { return nil } // removeFromGCDeleteRange implements delRangeManager interface. -func (dr *mockDelRange) removeFromGCDeleteRange(ctx context.Context, jobID int64, tableIDs []int64) error { +func (*mockDelRange) removeFromGCDeleteRange(_ context.Context, _ int64, _ []int64) error { return nil } diff --git a/ddl/modify_column_test.go b/ddl/modify_column_test.go index cec65fb769c49..783f11d7c71d0 100644 --- a/ddl/modify_column_test.go +++ b/ddl/modify_column_test.go @@ -120,7 +120,7 @@ func TestModifyColumnReorgInfo(t *testing.T) { txn, err := ctx.Txn(true) require.NoError(t, err) m := meta.NewMeta(txn) - e, start, end, physicalID, err := m.GetDDLReorgHandle(currJob) + e, start, end, physicalID, err := ddl.NewReorgHandlerForTest(m, testkit.NewTestKit(t, store).Session()).GetDDLReorgHandle(currJob) require.True(t, meta.ErrDDLReorgElementNotExist.Equal(err)) require.Nil(t, e) require.Nil(t, start) diff --git a/ddl/multi_schema_change.go b/ddl/multi_schema_change.go index a7ce46fc2aae7..894b926ba512e 100644 --- a/ddl/multi_schema_change.go +++ b/ddl/multi_schema_change.go @@ -76,7 +76,7 @@ func onMultiSchemaChange(w *worker, d *ddlCtx, t *meta.Meta, job *model.Job) (ve if err != nil { return ver, err } - sub.FromProxyJob(&proxyJob) + sub.FromProxyJob(&proxyJob, ver) return ver, nil } // The last rollback/cancelling sub-job is done. @@ -95,7 +95,7 @@ func onMultiSchemaChange(w *worker, d *ddlCtx, t *meta.Meta, job *model.Job) (ve } proxyJob := sub.ToProxyJob(job) ver, err = w.runDDLJob(d, t, &proxyJob) - sub.FromProxyJob(&proxyJob) + sub.FromProxyJob(&proxyJob, ver) handleRevertibleException(job, sub, proxyJob.Error) return ver, err } @@ -106,16 +106,23 @@ func onMultiSchemaChange(w *worker, d *ddlCtx, t *meta.Meta, job *model.Job) (ve if err != nil { return ver, err } + var schemaVersionGenerated = false subJobs := make([]model.SubJob, len(job.MultiSchemaInfo.SubJobs)) // Step the sub-jobs to the non-revertible states all at once. + // We only generate 1 schema version for these sub-job. for i, sub := range job.MultiSchemaInfo.SubJobs { if sub.IsFinished() { continue } subJobs[i] = *sub proxyJob := sub.ToProxyJob(job) + if schemaVersionGenerated { + proxyJob.MultiSchemaInfo.SkipVersion = true + } else { + schemaVersionGenerated = true + } ver, err = w.runDDLJob(d, t, &proxyJob) - sub.FromProxyJob(&proxyJob) + sub.FromProxyJob(&proxyJob, ver) if err != nil || proxyJob.Error != nil { for j := i - 1; j >= 0; j-- { job.MultiSchemaInfo.SubJobs[j] = &subJobs[j] @@ -137,11 +144,10 @@ func onMultiSchemaChange(w *worker, d *ddlCtx, t *meta.Meta, job *model.Job) (ve } proxyJob := sub.ToProxyJob(job) ver, err = w.runDDLJob(d, t, &proxyJob) - sub.FromProxyJob(&proxyJob) + sub.FromProxyJob(&proxyJob, ver) return ver, err } - job.State = model.JobStateDone - return ver, err + return finishMultiSchemaJob(job, t) } func handleRevertibleException(job *model.Job, subJob *model.SubJob, err *terror.Error) { @@ -247,8 +253,12 @@ func fillMultiSchemaInfo(info *model.MultiSchemaInfo, job *model.Job) (err error case model.ActionSetDefaultValue: col := job.Args[0].(*table.Column) info.ModifyColumns = append(info.ModifyColumns, col.Name) + case model.ActionAlterIndexVisibility: + idxName := job.Args[0].(model.CIStr) + info.AlterIndexes = append(info.AlterIndexes, idxName) + case model.ActionRebaseAutoID, model.ActionModifyTableComment, model.ActionModifyTableCharsetAndCollate: default: - return dbterror.ErrRunMultiSchemaChanges + return dbterror.ErrRunMultiSchemaChanges.FastGenByArgs(job.Type.String()) } return nil } @@ -323,20 +333,14 @@ func checkMultiSchemaInfo(info *model.MultiSchemaInfo, t table.Table) error { } func appendMultiChangeWarningsToOwnerCtx(ctx sessionctx.Context, job *model.Job) { - if job.MultiSchemaInfo == nil { + if job.MultiSchemaInfo == nil || job.Type != model.ActionMultiSchemaChange { return } - if job.Type == model.ActionMultiSchemaChange { - for _, sub := range job.MultiSchemaInfo.SubJobs { - if sub.Warning != nil { - ctx.GetSessionVars().StmtCtx.AppendNote(sub.Warning) - } + for _, sub := range job.MultiSchemaInfo.SubJobs { + if sub.Warning != nil { + ctx.GetSessionVars().StmtCtx.AppendNote(sub.Warning) } } - for _, w := range job.MultiSchemaInfo.Warnings { - ctx.GetSessionVars().StmtCtx.AppendNote(w) - } - } // rollingBackMultiSchemaChange updates a multi-schema change job @@ -360,3 +364,17 @@ func rollingBackMultiSchemaChange(job *model.Job) error { job.State = model.JobStateRollingback return dbterror.ErrCancelledDDLJob } + +func finishMultiSchemaJob(job *model.Job, t *meta.Meta) (ver int64, err error) { + for _, sub := range job.MultiSchemaInfo.SubJobs { + if ver < sub.SchemaVer { + ver = sub.SchemaVer + } + } + tblInfo, err := t.GetTable(job.SchemaID, job.TableID) + if err != nil { + return ver, err + } + job.FinishTableJob(model.JobStateDone, model.StateNone, ver, tblInfo) + return ver, err +} diff --git a/ddl/multi_schema_change_test.go b/ddl/multi_schema_change_test.go index eeede7a8ea954..b95788281a689 100644 --- a/ddl/multi_schema_change_test.go +++ b/ddl/multi_schema_change_test.go @@ -15,7 +15,6 @@ package ddl_test import ( - "context" "strconv" "testing" @@ -25,6 +24,7 @@ import ( "github.com/pingcap/tidb/errno" "github.com/pingcap/tidb/kv" "github.com/pingcap/tidb/parser/model" + "github.com/pingcap/tidb/sessionctx" "github.com/pingcap/tidb/testkit" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" @@ -141,7 +141,7 @@ func TestMultiSchemaChangeAddColumnsCancelled(t *testing.T) { tk.MustExec("create table t (a int);") tk.MustExec("insert into t values (1);") - hook := newCancelJobHook(store, dom, func(job *model.Job) bool { + hook := newCancelJobHook(t, store, dom, func(job *model.Job) bool { // Cancel job when the column 'c' is in write-reorg. return job.MultiSchemaInfo.SubJobs[1].SchemaState == model.StateWriteReorganization }) @@ -223,7 +223,7 @@ func TestMultiSchemaChangeDropColumnsCancelled(t *testing.T) { // Test for cancelling the job in a middle state. tk.MustExec("create table t (a int default 1, b int default 2, c int default 3, d int default 4);") tk.MustExec("insert into t values ();") - hook := newCancelJobHook(store, dom, func(job *model.Job) bool { + hook := newCancelJobHook(t, store, dom, func(job *model.Job) bool { // Cancel job when the column 'a' is in delete-reorg. return job.MultiSchemaInfo.SubJobs[1].SchemaState == model.StateDeleteReorganization }) @@ -237,7 +237,7 @@ func TestMultiSchemaChangeDropColumnsCancelled(t *testing.T) { tk.MustExec("drop table if exists t;") tk.MustExec("create table t (a int default 1, b int default 2, c int default 3, d int default 4);") tk.MustExec("insert into t values ();") - hook = newCancelJobHook(store, dom, func(job *model.Job) bool { + hook = newCancelJobHook(t, store, dom, func(job *model.Job) bool { // Cancel job when the column 'a' is in public. return job.MultiSchemaInfo.SubJobs[1].SchemaState == model.StatePublic }) @@ -259,7 +259,7 @@ func TestMultiSchemaChangeDropIndexedColumnsCancelled(t *testing.T) { tk.MustExec("create table t (a int default 1, b int default 2, c int default 3, d int default 4, " + "index(a), index(b), index(c), index(d));") tk.MustExec("insert into t values ();") - hook := newCancelJobHook(store, dom, func(job *model.Job) bool { + hook := newCancelJobHook(t, store, dom, func(job *model.Job) bool { // Cancel job when the column 'a' is in delete-reorg. return job.MultiSchemaInfo.SubJobs[1].SchemaState == model.StateDeleteReorganization }) @@ -361,7 +361,7 @@ func TestMultiSchemaChangeRenameColumns(t *testing.T) { tk.MustExec("drop table if exists t") tk.MustExec("create table t (a int default 1, b int default 2)") tk.MustExec("insert into t values ()") - hook := newCancelJobHook(store, dom, func(job *model.Job) bool { + hook := newCancelJobHook(t, store, dom, func(job *model.Job) bool { // Cancel job when the column 'c' is in write-reorg. return job.MultiSchemaInfo.SubJobs[0].SchemaState == model.StateWriteReorganization }) @@ -430,7 +430,7 @@ func TestMultiSchemaChangeAlterColumns(t *testing.T) { // Test cancel job with alter columns tk.MustExec("drop table if exists t") tk.MustExec("create table t (a int default 1, b int default 2)") - hook := newCancelJobHook(store, dom, func(job *model.Job) bool { + hook := newCancelJobHook(t, store, dom, func(job *model.Job) bool { // Cancel job when the column 'a' is in write-reorg. return job.MultiSchemaInfo.SubJobs[0].SchemaState == model.StateWriteReorganization }) @@ -498,7 +498,7 @@ func TestMultiSchemaChangeChangeColumns(t *testing.T) { tk.MustExec("drop table if exists t") tk.MustExec("create table t (a int default 1, b int default 2)") tk.MustExec("insert into t values ()") - hook := newCancelJobHook(store, dom, func(job *model.Job) bool { + hook := newCancelJobHook(t, store, dom, func(job *model.Job) bool { // Cancel job when the column 'c' is in write-reorg. return job.MultiSchemaInfo.SubJobs[0].SchemaState == model.StateWriteReorganization }) @@ -558,7 +558,7 @@ func TestMultiSchemaChangeAddIndexesCancelled(t *testing.T) { tk.MustExec("drop table if exists t;") tk.MustExec("create table t (a int, b int, c int);") tk.MustExec("insert into t values (1, 2, 3);") - cancelHook := newCancelJobHook(store, dom, func(job *model.Job) bool { + cancelHook := newCancelJobHook(t, store, dom, func(job *model.Job) bool { // Cancel the job when index 't2' is in write-reorg. return job.MultiSchemaInfo.SubJobs[2].SchemaState == model.StateWriteReorganization }) @@ -576,7 +576,7 @@ func TestMultiSchemaChangeAddIndexesCancelled(t *testing.T) { tk.MustExec("drop table if exists t;") tk.MustExec("create table t (a int, b int, c int);") tk.MustExec("insert into t values (1, 2, 3);") - cancelHook = newCancelJobHook(store, dom, func(job *model.Job) bool { + cancelHook = newCancelJobHook(t, store, dom, func(job *model.Job) bool { // Cancel the job when index 't1' is in public. return job.MultiSchemaInfo.SubJobs[1].SchemaState == model.StatePublic }) @@ -627,7 +627,7 @@ func TestMultiSchemaChangeDropIndexesCancelled(t *testing.T) { // Test for cancelling the job in a middle state. tk.MustExec("create table t (a int, b int, index(a), unique index(b), index idx(a, b));") - hook := newCancelJobHook(store, dom, func(job *model.Job) bool { + hook := newCancelJobHook(t, store, dom, func(job *model.Job) bool { return job.MultiSchemaInfo.SubJobs[1].SchemaState == model.StateDeleteOnly }) dom.DDL().SetHook(hook) @@ -641,7 +641,7 @@ func TestMultiSchemaChangeDropIndexesCancelled(t *testing.T) { // Test for cancelling the job in none state. tk.MustExec("drop table if exists t;") tk.MustExec("create table t (a int, b int, index(a), unique index(b), index idx(a, b));") - hook = newCancelJobHook(store, dom, func(job *model.Job) bool { + hook = newCancelJobHook(t, store, dom, func(job *model.Job) bool { return job.MultiSchemaInfo.SubJobs[1].SchemaState == model.StatePublic }) dom.DDL().SetHook(hook) @@ -737,7 +737,7 @@ func TestMultiSchemaChangeRenameIndexes(t *testing.T) { tk.MustExec("drop table if exists t") tk.MustExec("create table t (a int default 1, b int default 2, index t(a))") tk.MustExec("insert into t values ()") - hook := newCancelJobHook(store, dom, func(job *model.Job) bool { + hook := newCancelJobHook(t, store, dom, func(job *model.Job) bool { // Cancel job when the column 'c' is in write-reorg. return job.MultiSchemaInfo.SubJobs[0].SchemaState == model.StateWriteReorganization }) @@ -859,11 +859,22 @@ func TestMultiSchemaChangeModifyColumns(t *testing.T) { tk.MustExec("create table t (a BIGINT NULL DEFAULT '-283977870758975838', b double);") tk.MustExec("insert into t values (-283977870758975838, 0);") tk.MustGetErrCode("alter table t change column a c tinyint null default '111' after b, modify column b time null default '13:51:02' FIRST;", errno.ErrDataOutOfRange) + rows := tk.MustQuery("admin show ddl jobs 1").Rows() + require.Equal(t, rows[0][11], "rollback done") + require.Equal(t, rows[1][11], "rollback done") + require.Equal(t, rows[2][11], "cancelled") tk.MustExec("drop table if exists t;") tk.MustExec("create table t(a int, b int);") tk.MustExec("insert into t values (1, 2);") tk.MustGetErrCode("alter table t add index i(b), modify column a int null default 1 after a;", errno.ErrBadField) + + // Test rolling back modify column with reorganization. + tk.MustExec("drop table if exists t;") + tk.MustExec("create table t(a char(3), b int, unique index i1(a), index i2(a, b));") + tk.MustExec("insert into t values ('aaa', 1), ('aa', 2);") + tk.MustExec("set @@sql_mode = '';") // Make it possible to truncate 'aaa' to 'aa'. + tk.MustGetErrCode("alter table t modify column b tinyint, modify column a char(2);", errno.ErrDupEntry) } func TestMultiSchemaChangeModifyColumnsCancelled(t *testing.T) { @@ -876,7 +887,7 @@ func TestMultiSchemaChangeModifyColumnsCancelled(t *testing.T) { // Test for cancelling the job in a middle state. tk.MustExec("create table t (a int, b int, c int, index i1(a), unique index i2(b), index i3(a, b));") tk.MustExec("insert into t values (1, 2, 3);") - hook := newCancelJobHook(store, dom, func(job *model.Job) bool { + hook := newCancelJobHook(t, store, dom, func(job *model.Job) bool { return job.MultiSchemaInfo.SubJobs[2].SchemaState == model.StateWriteReorganization }) dom.DDL().SetHook(hook) @@ -891,6 +902,191 @@ func TestMultiSchemaChangeModifyColumnsCancelled(t *testing.T) { Check(testkit.Rows("int")) } +func TestMultiSchemaChangeAlterIndex(t *testing.T) { + store, dom, clean := testkit.CreateMockStoreAndDomain(t) + defer clean() + tk := testkit.NewTestKit(t, store) + tk.MustExec("use test;") + + // unsupported ddl operations + { + // Test alter the same index + tk.MustExec("drop table if exists t;") + tk.MustExec("create table t (a int, b int, index idx(a, b));") + tk.MustGetErrCode("alter table t alter index idx visible, alter index idx invisible;", errno.ErrUnsupportedDDLOperation) + + // Test drop and alter the same index + tk.MustExec("drop table if exists t;") + tk.MustExec("create table t (a int, b int, index idx(a, b));") + tk.MustGetErrCode("alter table t drop index idx, alter index idx visible;", errno.ErrUnsupportedDDLOperation) + + // Test add and alter the same index + tk.MustExec("drop table if exists t;") + tk.MustExec("create table t (a int, b int);") + tk.MustGetErrCode("alter table t add index idx(a, b), alter index idx invisible", errno.ErrKeyDoesNotExist) + } + + tk.MustExec("drop table t;") + tk.MustExec("create table t (a int, b int, index i1(a, b), index i2(b));") + tk.MustExec("insert into t values (1, 2);") + tk.MustExec("alter table t modify column a tinyint, alter index i2 invisible, alter index i1 invisible;") + tk.MustGetErrCode("select * from t use index (i1);", errno.ErrKeyDoesNotExist) + tk.MustGetErrCode("select * from t use index (i2);", errno.ErrKeyDoesNotExist) + tk.MustQuery("select * from t;").Check(testkit.Rows("1 2")) + tk.MustExec("admin check table t;") + + tk.MustExec("drop table t;") + tk.MustExec("create table t (a int, b int, index i1(a, b), index i2(b));") + tk.MustExec("insert into t values (1, 2);") + originHook := dom.DDL().GetHook() + var checked bool + dom.DDL().SetHook(&ddl.TestDDLCallback{Do: dom, + OnJobUpdatedExported: func(job *model.Job) { + assert.NotNil(t, job.MultiSchemaInfo) + // "modify column a tinyint" in write-reorg. + if job.MultiSchemaInfo.SubJobs[1].SchemaState == model.StateWriteReorganization { + checked = true + rs, err := tk.Exec("select * from t use index(i1);") + assert.NoError(t, err) + assert.NoError(t, rs.Close()) + } + }}) + tk.MustExec("alter table t alter index i1 invisible, modify column a tinyint, alter index i2 invisible;") + dom.DDL().SetHook(originHook) + require.True(t, checked) + tk.MustGetErrCode("select * from t use index (i1);", errno.ErrKeyDoesNotExist) + tk.MustGetErrCode("select * from t use index (i2);", errno.ErrKeyDoesNotExist) + tk.MustQuery("select * from t;").Check(testkit.Rows("1 2")) + tk.MustExec("admin check table t;") +} + +func TestMultiSchemaChangeMix(t *testing.T) { + store, clean := testkit.CreateMockStore(t) + defer clean() + tk := testkit.NewTestKit(t, store) + tk.MustExec("use test;") + + tk.MustExec("create table t (a int, b int, c int, index i1(c), index i2(c));") + tk.MustExec("insert into t values (1, 2, 3);") + tk.MustExec("alter table t add column d int default 4, add index i3(c), " + + "drop column a, drop column if exists z, add column if not exists e int default 5, " + + "drop index i2, add column f int default 6, drop column b, drop index i1, add column if not exists c int;") + tk.MustQuery("select * from t;").Check(testkit.Rows("3 4 5 6")) + tk.MustGetErrCode("select * from t use index (i1);", errno.ErrKeyDoesNotExist) + tk.MustGetErrCode("select * from t use index (i2);", errno.ErrKeyDoesNotExist) + tk.MustQuery("select * from t use index (i3);").Check(testkit.Rows("3 4 5 6")) +} + +func TestMultiSchemaChangeMixCancelled(t *testing.T) { + store, dom, clean := testkit.CreateMockStoreAndDomain(t) + defer clean() + tk := testkit.NewTestKit(t, store) + tk.MustExec("use test;") + + tk.MustExec("create table t (a int, b int, c int, index i1(c), index i2(c));") + tk.MustExec("insert into t values (1, 2, 3);") + origin := dom.DDL().GetHook() + cancelHook := newCancelJobHook(t, store, dom, func(job *model.Job) bool { + return job.MultiSchemaInfo != nil && + len(job.MultiSchemaInfo.SubJobs) > 8 && + job.MultiSchemaInfo.SubJobs[8].SchemaState == model.StateWriteReorganization + }) + dom.DDL().SetHook(cancelHook) + tk.MustGetErrCode("alter table t add column d int default 4, add index i3(c), "+ + "drop column a, drop column if exists z, add column if not exists e int default 5, "+ + "drop index i2, add column f int default 6, drop column b, drop index i1, add column if not exists g int;", + errno.ErrCancelledDDLJob) + dom.DDL().SetHook(origin) + cancelHook.MustCancelDone(t) + tk.MustQuery("select * from t;").Check(testkit.Rows("1 2 3")) + tk.MustQuery("select * from t use index(i1, i2);").Check(testkit.Rows("1 2 3")) + tk.MustExec("admin check table t;") +} + +func TestMultiSchemaChangeAdminShowDDLJobs(t *testing.T) { + store, dom, clean := testkit.CreateMockStoreAndDomain(t) + defer clean() + + tk := testkit.NewTestKit(t, store) + tk.MustExec("use test") + originHook := dom.DDL().GetHook() + hook := &ddl.TestDDLCallback{Do: dom} + hook.OnJobRunBeforeExported = func(job *model.Job) { + assert.Equal(t, model.ActionMultiSchemaChange, job.Type) + if job.MultiSchemaInfo.SubJobs[0].SchemaState == model.StateDeleteOnly { + newTk := testkit.NewTestKit(t, store) + rows := newTk.MustQuery("admin show ddl jobs 1").Rows() + // 1 history job and 1 running job with 2 subjobs + assert.Equal(t, len(rows), 4) + assert.Equal(t, rows[1][1], "test") + assert.Equal(t, rows[1][2], "t") + assert.Equal(t, rows[1][3], "add index /* subjob */") + assert.Equal(t, rows[1][4], "delete only") + assert.Equal(t, rows[1][len(rows[1])-1], "running") + + assert.Equal(t, rows[2][3], "add index /* subjob */") + assert.Equal(t, rows[2][4], "none") + assert.Equal(t, rows[2][len(rows[2])-1], "queueing") + } + } + + tk.MustExec("create table t (a int, b int, c int)") + tk.MustExec("insert into t values (1, 2, 3)") + + dom.DDL().SetHook(hook) + tk.MustExec("alter table t add index t(a), add index t1(b)") + dom.DDL().SetHook(originHook) +} + +func TestMultiSchemaChangeTableOption(t *testing.T) { + store, clean := testkit.CreateMockStore(t) + defer clean() + + tk := testkit.NewTestKit(t, store) + tk.MustExec("use test;") + + tk.MustExec("create table t (a int auto_increment primary key, b int);") + tk.MustExec("alter table t modify column b tinyint, auto_increment = 100;") + tk.MustExec("insert into t (b) values (1);") + tk.MustQuery("select * from t;").Check(testkit.Rows("100 1")) + + tk.MustExec("drop table if exists t;") + tk.MustExec("create table t (a int auto_increment primary key, b int);") + tk.MustExec("alter table t auto_increment = 110, auto_increment = 90;") + tk.MustQuery("show warnings;").Check(testkit.Rows("Note 1105 Can't reset AUTO_INCREMENT to 90 without FORCE option, using 110 instead")) + tk.MustExec("insert into t (b) values (1);") + tk.MustQuery("select * from t;").Check(testkit.Rows("110 1")) + + tk.MustExec("drop table if exists t;") + tk.MustExec("create table t (a int, b int) charset = utf8 shard_row_id_bits=2;") + tk.MustExec("alter table t modify column a tinyint, comment = 'abc', charset = utf8mb4;") + tk.MustQuery("select TIDB_ROW_ID_SHARDING_INFO, TABLE_COMMENT, TABLE_COLLATION from information_schema.tables where table_name = 't';"). + Check(testkit.Rows("SHARD_BITS=2 abc utf8mb4_bin")) +} + +func TestMultiSchemaChangeNonPublicDefaultValue(t *testing.T) { + store, clean := testkit.CreateMockStore(t) + defer clean() + tk := testkit.NewTestKit(t, store) + tk.MustExec("use test;") + tk.MustExec("create table t (a tinyint);") + tk.MustExec("insert into t set a = 10;") + tk.MustExec("alter table t add column b int not null, change column a c char(5) first;") + tk.MustQuery("select * from t;").Check(testkit.Rows("10 0")) +} + +func TestMultiSchemaChangeAlterIndexVisibility(t *testing.T) { + store, clean := testkit.CreateMockStore(t) + defer clean() + tk := testkit.NewTestKit(t, store) + tk.MustExec("use test;") + tk.MustExec("create table t (a int, b int, index idx(b));") + tk.MustExec("alter table t add index idx2(a), alter index idx visible;") + tk.MustQuery("select * from t use index (idx, idx2);").Check(testkit.Rows( /* no rows */ )) + tk.MustGetErrCode("alter table t drop column b, alter index idx invisible;", errno.ErrKeyDoesNotExist) + tk.MustQuery("select a, b from t;").Check(testkit.Rows( /* no rows */ )) +} + func TestMultiSchemaChangeWithExpressionIndex(t *testing.T) { store, dom, clean := testkit.CreateMockStoreAndDomain(t) defer clean() @@ -934,11 +1130,78 @@ func TestMultiSchemaChangeWithExpressionIndex(t *testing.T) { tk.MustQuery("select * from t use index(idx1, idx2);").Check(testkit.Rows("1 2 10", "2 1 10")) } +func TestMultiSchemaChangeNoSubJobs(t *testing.T) { + store, clean := testkit.CreateMockStore(t) + defer clean() + tk := testkit.NewTestKit(t, store) + tk.MustExec("use test;") + + tk.MustExec("create table t (a int, b int);") + tk.MustExec("alter table t add column if not exists a int, add column if not exists b int;") + tk.MustQuery("show warnings;").Check(testkit.Rows( + "Note 1060 Duplicate column name 'a'", "Note 1060 Duplicate column name 'b'")) + rs := tk.MustQuery("admin show ddl jobs 1;").Rows() + require.Equal(t, "create table", rs[0][3]) +} + +func TestMultiSchemaChangeUnsupportedType(t *testing.T) { + store, clean := testkit.CreateMockStore(t) + defer clean() + tk := testkit.NewTestKit(t, store) + tk.MustExec("use test;") + + tk.MustExec("create table t (a int, b int);") + tk.MustGetErrMsg("alter table t add column c int, auto_id_cache = 1;", + "[ddl:8200]Unsupported multi schema change for modify auto id cache") +} + +func TestMultiSchemaChangeMixedWithUpdate(t *testing.T) { + store, dom, clean := testkit.CreateMockStoreAndDomain(t) + defer clean() + tk := testkit.NewTestKit(t, store) + tk.MustExec("use test;") + tk.MustExec("create table t (c_1 int, c_2 char(20), c_pos_1 int, c_idx_visible int, c_3 decimal(5, 3), " + + "c_drop_1 time, c_4 datetime, c_drop_idx char(10), c_5 time, c_6 double, c_drop_2 int, c_pos_2 char(10), " + + "c_add_idx_1 int, c_add_idx_2 char(20), index idx_1(c_1), index idx_2(c_2), index idx_drop(c_drop_idx), " + + "index idx_3(c_drop_1), index idx_4(c_4), index idx_5(c_pos_1, c_pos_2), index idx_visible(c_idx_visible));") + tk.MustExec("insert into t values (100, 'c_2_insert', 101, 12, 2.1, '10:00:00', " + + "'2020-01-01 10:00:00', 'wer', '10:00:00', 2.1, 12, 'qwer', 12, 'asdf');") + + originHook := dom.DDL().GetHook() + hook := &ddl.TestDDLCallback{Do: dom} + var checkErr error + hook.OnJobRunBeforeExported = func(job *model.Job) { + if checkErr != nil { + return + } + assert.Equal(t, model.ActionMultiSchemaChange, job.Type) + if job.MultiSchemaInfo.SubJobs[9].SchemaState == model.StateDeleteOnly { + tk2 := testkit.NewTestKit(t, store) + tk2.MustExec("use test;") + _, checkErr = tk2.Exec("update t set c_4 = '2020-01-01 10:00:00', c_5 = 'c_5_update', c_1 = 102, " + + "c_2 = '1', c_pos_1 = 102, c_idx_visible = 102, c_3 = 3.1, c_drop_idx = 'er', c_6 = 2, c_pos_2 = 'dddd', " + + "c_add_idx_1 = 102, c_add_idx_2 = 'zxc', c_add_2 = 10001, c_add_1 = 10001 where c_drop_idx = 'wer';") + if checkErr != nil { + return + } + } + } + dom.DDL().SetHook(hook) + tk.MustExec("alter table t add index i_add_1(c_add_idx_1), drop index idx_drop, " + + "add index i_add_2(c_add_idx_2), modify column c_2 char(100), add column c_add_2 bigint, " + + "modify column c_1 bigint, add column c_add_1 bigint, modify column c_5 varchar(255) first, " + + "modify column c_4 datetime first, drop column c_drop_1, drop column c_drop_2, modify column c_6 int, " + + "alter index idx_visible invisible, modify column c_3 decimal(10, 2);") + require.NoError(t, checkErr) + dom.DDL().SetHook(originHook) +} + type cancelOnceHook struct { store kv.Storage triggered bool cancelErr error pred func(job *model.Job) bool + s sessionctx.Context ddl.TestDDLCallback } @@ -948,15 +1211,12 @@ func (c *cancelOnceHook) OnJobUpdated(job *model.Job) { return } c.triggered = true - ctx := kv.WithInternalSourceType(context.Background(), kv.InternalTxnDDL) - c.cancelErr = kv.RunInNewTxn(ctx, c.store, false, - func(ctx context.Context, txn kv.Transaction) error { - errs, err := ddl.CancelJobs(txn, []int64{job.ID}) - if errs[0] != nil { - return errs[0] - } - return err - }) + errs, err := ddl.CancelJobs(c.s, c.store, []int64{job.ID}) + if errs[0] != nil { + c.cancelErr = errs[0] + return + } + c.cancelErr = err } func (c *cancelOnceHook) MustCancelDone(t *testing.T) { @@ -969,12 +1229,15 @@ func (c *cancelOnceHook) MustCancelFailed(t *testing.T) { require.Contains(t, c.cancelErr.Error(), strconv.Itoa(errno.ErrCannotCancelDDLJob)) } -func newCancelJobHook(store kv.Storage, dom *domain.Domain, +func newCancelJobHook(t *testing.T, store kv.Storage, dom *domain.Domain, pred func(job *model.Job) bool) *cancelOnceHook { + tk := testkit.NewTestKit(t, store) + tk.MustExec("use test") return &cancelOnceHook{ store: store, pred: pred, TestDDLCallback: ddl.TestDDLCallback{Do: dom}, + s: tk.Session(), } } diff --git a/ddl/partition.go b/ddl/partition.go index 3ab281c7f1afc..41810d33fdc77 100644 --- a/ddl/partition.go +++ b/ddl/partition.go @@ -1166,7 +1166,7 @@ func (w *worker) onDropTablePartition(d *ddlCtx, t *meta.Meta, job *model.Job) ( elements = append(elements, &meta.Element{ID: idxInfo.ID, TypeKey: meta.IndexElementKey}) } } - rh := newReorgHandler(t) + rh := newReorgHandler(t, w.sess, w.concurrentDDL) reorgInfo, err := getReorgInfoFromPartitions(d.jobContext(job), d, rh, job, tbl, physicalTableIDs, elements) if err != nil || reorgInfo.first { @@ -1388,6 +1388,18 @@ func (w *worker) onExchangeTablePartition(d *ddlCtx, t *meta.Meta, job *model.Jo if err != nil { return ver, errors.Trace(err) } + if nt.ExchangePartitionInfo == nil || !nt.ExchangePartitionInfo.ExchangePartitionFlag { + nt.ExchangePartitionInfo = &model.ExchangePartitionInfo{ + ExchangePartitionFlag: true, + ExchangePartitionID: ptID, + ExchangePartitionDefID: defID, + } + return updateVersionAndTableInfoWithCheck(d, t, job, nt, true) + } + + if d.lease > 0 { + delayForAsyncCommit() + } if withValidation { err = checkExchangePartitionRecordValidation(w, pt, index, ntDbInfo.Name, nt.Name) @@ -1471,6 +1483,12 @@ func (w *worker) onExchangeTablePartition(d *ddlCtx, t *meta.Meta, job *model.Jo return ver, errors.Trace(err) } + err = checkExchangePartitionPlacementPolicy(t, partDef.PlacementPolicyRef, nt.PlacementPolicyRef) + if err != nil { + job.State = model.JobStateCancelled + return ver, errors.Trace(err) + } + // the follow code is a swap function for rules of two partitions // though partitions has exchanged their ID, swap still take effect @@ -1521,7 +1539,8 @@ func (w *worker) onExchangeTablePartition(d *ddlCtx, t *meta.Meta, job *model.Jo return ver, errors.Wrapf(err, "failed to notify PD the label rules") } - ver, err = updateSchemaVersion(d, t, job) + nt.ExchangePartitionInfo = nil + ver, err = updateVersionAndTableInfoWithCheck(d, t, job, nt, true) if err != nil { return ver, errors.Trace(err) } @@ -1603,7 +1622,7 @@ func checkExchangePartitionRecordValidation(w *worker, pt *model.TableInfo, inde case model.PartitionTypeList: if len(pi.Columns) == 0 { sql, paramList = buildCheckSQLForListPartition(pi, index, schemaName, tableName) - } else if len(pi.Columns) == 1 { + } else { sql, paramList = buildCheckSQLForListColumnsPartition(pi, index, schemaName, tableName) } default: @@ -1628,6 +1647,29 @@ func checkExchangePartitionRecordValidation(w *worker, pt *model.TableInfo, inde return nil } +func checkExchangePartitionPlacementPolicy(t *meta.Meta, ntPlacementPolicyRef *model.PolicyRefInfo, ptPlacementPolicyRef *model.PolicyRefInfo) error { + if ntPlacementPolicyRef == nil && ptPlacementPolicyRef == nil { + return nil + } + if ntPlacementPolicyRef == nil || ptPlacementPolicyRef == nil { + return dbterror.ErrTablesDifferentMetadata + } + + ptPlacementPolicyInfo, _ := getPolicyInfo(t, ptPlacementPolicyRef.ID) + ntPlacementPolicyInfo, _ := getPolicyInfo(t, ntPlacementPolicyRef.ID) + if ntPlacementPolicyInfo == nil && ptPlacementPolicyInfo == nil { + return nil + } + if ntPlacementPolicyInfo == nil || ptPlacementPolicyInfo == nil { + return dbterror.ErrTablesDifferentMetadata + } + if ntPlacementPolicyInfo.Name.L != ptPlacementPolicyInfo.Name.L { + return dbterror.ErrTablesDifferentMetadata + } + + return nil +} + func buildCheckSQLForRangeExprPartition(pi *model.PartitionInfo, index int, schemaName, tableName model.CIStr) (string, []interface{}) { var buf strings.Builder paramList := make([]interface{}, 0, 4) diff --git a/ddl/placement/bundle.go b/ddl/placement/bundle.go index 5b53bb3758109..83e2eff7b91e8 100644 --- a/ddl/placement/bundle.go +++ b/ddl/placement/bundle.go @@ -63,68 +63,68 @@ func NewBundleFromConstraintsOptions(options *model.PlacementSettings) (*Bundle, } constraints := options.Constraints - leaderConstraints := options.LeaderConstraints + leaderConst := options.LeaderConstraints learnerConstraints := options.LearnerConstraints followerConstraints := options.FollowerConstraints followerCount := options.Followers learnerCount := options.Learners - CommonConstraints, err := NewConstraintsFromYaml([]byte(constraints)) + commonConstraints, err := NewConstraintsFromYaml([]byte(constraints)) if err != nil { return nil, fmt.Errorf("%w: 'Constraints' should be [constraint1, ...] or any yaml compatible array representation", err) } - Rules := []*Rule{} + rules := []*Rule{} - LeaderConstraints, err := NewConstraintsFromYaml([]byte(leaderConstraints)) + leaderConstraints, err := NewConstraintsFromYaml([]byte(leaderConst)) if err != nil { return nil, fmt.Errorf("%w: 'LeaderConstraints' should be [constraint1, ...] or any yaml compatible array representation", err) } - for _, cnst := range CommonConstraints { - if err := LeaderConstraints.Add(cnst); err != nil { + for _, cnst := range commonConstraints { + if err := leaderConstraints.Add(cnst); err != nil { return nil, fmt.Errorf("%w: LeaderConstraints conflicts with Constraints", err) } } - Rules = append(Rules, NewRule(Leader, 1, LeaderConstraints)) + rules = append(rules, NewRule(Leader, 1, leaderConstraints)) - FollowerRules, err := NewRules(Voter, followerCount, followerConstraints) + followerRules, err := NewRules(Voter, followerCount, followerConstraints) if err != nil { return nil, fmt.Errorf("%w: invalid FollowerConstraints", err) } - for _, rule := range FollowerRules { + for _, rule := range followerRules { // give a default of 2 followers if rule.Count == 0 { rule.Count = 2 } - for _, cnst := range CommonConstraints { + for _, cnst := range commonConstraints { if err := rule.Constraints.Add(cnst); err != nil { return nil, fmt.Errorf("%w: FollowerConstraints conflicts with Constraints", err) } } } - Rules = append(Rules, FollowerRules...) + rules = append(rules, followerRules...) - LearnerRules, err := NewRules(Learner, learnerCount, learnerConstraints) + learnerRules, err := NewRules(Learner, learnerCount, learnerConstraints) if err != nil { return nil, fmt.Errorf("%w: invalid LearnerConstraints", err) } - for _, rule := range LearnerRules { + for _, rule := range learnerRules { if rule.Count == 0 { if len(rule.Constraints) > 0 { return nil, fmt.Errorf("%w: specify learner constraints without specify how many learners to be placed", ErrInvalidPlacementOptions) } } - for _, cnst := range CommonConstraints { + for _, cnst := range commonConstraints { if err := rule.Constraints.Add(cnst); err != nil { return nil, fmt.Errorf("%w: LearnerConstraints conflicts with Constraints", err) } } if rule.Count > 0 { - Rules = append(Rules, rule) + rules = append(rules, rule) } } - return &Bundle{Rules: Rules}, nil + return &Bundle{Rules: rules}, nil } // NewBundleFromSugarOptions will transform syntax sugar options into the bundle. @@ -153,12 +153,12 @@ func NewBundleFromSugarOptions(options *model.PlacementSettings) (*Bundle, error } schedule := options.Schedule - var Rules []*Rule + var rules []*Rule // in case empty primaryRegion and regions, just return an empty bundle if primaryRegion == "" && len(regions) == 0 { - Rules = append(Rules, NewRule(Voter, followers+1, NewConstraintsDirect())) - return &Bundle{Rules: Rules}, nil + rules = append(rules, NewRule(Voter, followers+1, NewConstraintsDirect())) + return &Bundle{Rules: rules}, nil } // regions must include the primary @@ -181,19 +181,19 @@ func NewBundleFromSugarOptions(options *model.PlacementSettings) (*Bundle, error return nil, fmt.Errorf("%w: unsupported schedule %s", ErrInvalidPlacementOptions, schedule) } - Rules = append(Rules, NewRule(Voter, primaryCount, NewConstraintsDirect(NewConstraintDirect("region", In, primaryRegion)))) + rules = append(rules, NewRule(Voter, primaryCount, NewConstraintsDirect(NewConstraintDirect("region", In, primaryRegion)))) if followers+1 > primaryCount { // delete primary from regions regions = regions[:primaryIndex+copy(regions[primaryIndex:], regions[primaryIndex+1:])] if len(regions) > 0 { - Rules = append(Rules, NewRule(Follower, followers+1-primaryCount, NewConstraintsDirect(NewConstraintDirect("region", In, regions...)))) + rules = append(rules, NewRule(Follower, followers+1-primaryCount, NewConstraintsDirect(NewConstraintDirect("region", In, regions...)))) } else { - Rules = append(Rules, NewRule(Follower, followers+1-primaryCount, NewConstraintsDirect())) + rules = append(rules, NewRule(Follower, followers+1-primaryCount, NewConstraintsDirect())) } } - return &Bundle{Rules: Rules}, nil + return &Bundle{Rules: rules}, nil } // Non-Exported functionality function, do not use it directly but NewBundleFromOptions diff --git a/ddl/placement_policy_test.go b/ddl/placement_policy_test.go index 3c4c1b4cd3109..0a1663abd85cd 100644 --- a/ddl/placement_policy_test.go +++ b/ddl/placement_policy_test.go @@ -1928,9 +1928,6 @@ func TestExchangePartitionWithPlacement(t *testing.T) { policy1, ok := dom.InfoSchema().PolicyByName(model.NewCIStr("p1")) require.True(t, ok) - policy2, ok := dom.InfoSchema().PolicyByName(model.NewCIStr("p2")) - require.True(t, ok) - tk.MustExec(`CREATE TABLE t1 (id INT) placement policy p1`) defer tk.MustExec("drop table t1") @@ -1941,12 +1938,8 @@ func TestExchangePartitionWithPlacement(t *testing.T) { require.NoError(t, err) t1ID := t1.Meta().ID - t2, err := dom.InfoSchema().TableByName(model.NewCIStr("test"), model.NewCIStr("t2")) - require.NoError(t, err) - t2ID := t2.Meta().ID - tk.MustExec(`CREATE TABLE tp (id INT) placement policy p3 PARTITION BY RANGE (id) ( - PARTITION p0 VALUES LESS THAN (100), + PARTITION p0 VALUES LESS THAN (100) placement policy p1, PARTITION p1 VALUES LESS THAN (1000) placement policy p2, PARTITION p2 VALUES LESS THAN (10000) );`) @@ -1956,7 +1949,6 @@ func TestExchangePartitionWithPlacement(t *testing.T) { require.NoError(t, err) tpID := tp.Meta().ID par0ID := tp.Meta().Partition.Definitions[0].ID - par1ID := tp.Meta().Partition.Definitions[1].ID // exchange par0, t1 tk.MustExec("alter table tp exchange partition p0 with table t1") @@ -1969,14 +1961,14 @@ func TestExchangePartitionWithPlacement(t *testing.T) { " `id` int(11) DEFAULT NULL\n" + ") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin /*T![placement] PLACEMENT POLICY=`p3` */\n" + "PARTITION BY RANGE (`id`)\n" + - "(PARTITION `p0` VALUES LESS THAN (100),\n" + + "(PARTITION `p0` VALUES LESS THAN (100) /*T![placement] PLACEMENT POLICY=`p1` */,\n" + " PARTITION `p1` VALUES LESS THAN (1000) /*T![placement] PLACEMENT POLICY=`p2` */,\n" + " PARTITION `p2` VALUES LESS THAN (10000))")) tp, err = dom.InfoSchema().TableByName(model.NewCIStr("test"), model.NewCIStr("tp")) require.NoError(t, err) require.Equal(t, tpID, tp.Meta().ID) require.Equal(t, t1ID, tp.Meta().Partition.Definitions[0].ID) - require.Nil(t, tp.Meta().Partition.Definitions[0].PlacementPolicyRef) + require.NotNil(t, tp.Meta().Partition.Definitions[0].PlacementPolicyRef) t1, err = dom.InfoSchema().TableByName(model.NewCIStr("test"), model.NewCIStr("t1")) require.NoError(t, err) require.Equal(t, par0ID, t1.Meta().ID) @@ -1984,54 +1976,10 @@ func TestExchangePartitionWithPlacement(t *testing.T) { checkExistTableBundlesInPD(t, dom, "test", "tp") // exchange par0, t2 - tk.MustExec("alter table tp exchange partition p0 with table t2") - tk.MustQuery("show create table t2").Check(testkit.Rows("" + - "t2 CREATE TABLE `t2` (\n" + - " `id` int(11) DEFAULT NULL\n" + - ") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin")) - tk.MustQuery("show create table tp").Check(testkit.Rows("" + - "tp CREATE TABLE `tp` (\n" + - " `id` int(11) DEFAULT NULL\n" + - ") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin /*T![placement] PLACEMENT POLICY=`p3` */\n" + - "PARTITION BY RANGE (`id`)\n" + - "(PARTITION `p0` VALUES LESS THAN (100),\n" + - " PARTITION `p1` VALUES LESS THAN (1000) /*T![placement] PLACEMENT POLICY=`p2` */,\n" + - " PARTITION `p2` VALUES LESS THAN (10000))")) - tp, err = dom.InfoSchema().TableByName(model.NewCIStr("test"), model.NewCIStr("tp")) - require.NoError(t, err) - require.Equal(t, tpID, tp.Meta().ID) - require.Equal(t, t2ID, tp.Meta().Partition.Definitions[0].ID) - require.Nil(t, tp.Meta().Partition.Definitions[0].PlacementPolicyRef) - t2, err = dom.InfoSchema().TableByName(model.NewCIStr("test"), model.NewCIStr("t2")) - require.NoError(t, err) - require.Equal(t, t1ID, t2.Meta().ID) - require.Nil(t, t2.Meta().PlacementPolicyRef) - checkExistTableBundlesInPD(t, dom, "test", "tp") + tk.MustGetErrCode("alter table tp exchange partition p0 with table t2", mysql.ErrTablesDifferentMetadata) - // exchange par1, t1 - tk.MustExec("alter table tp exchange partition p1 with table t1") - tk.MustQuery("show create table t1").Check(testkit.Rows("" + - "t1 CREATE TABLE `t1` (\n" + - " `id` int(11) DEFAULT NULL\n" + - ") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin /*T![placement] PLACEMENT POLICY=`p1` */")) - tk.MustQuery("show create table tp").Check(testkit.Rows("" + - "tp CREATE TABLE `tp` (\n" + - " `id` int(11) DEFAULT NULL\n" + - ") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin /*T![placement] PLACEMENT POLICY=`p3` */\n" + - "PARTITION BY RANGE (`id`)\n" + - "(PARTITION `p0` VALUES LESS THAN (100),\n" + - " PARTITION `p1` VALUES LESS THAN (1000) /*T![placement] PLACEMENT POLICY=`p2` */,\n" + - " PARTITION `p2` VALUES LESS THAN (10000))")) - tp, err = dom.InfoSchema().TableByName(model.NewCIStr("test"), model.NewCIStr("tp")) - require.NoError(t, err) - require.Equal(t, tpID, tp.Meta().ID) - require.Equal(t, par0ID, tp.Meta().Partition.Definitions[1].ID) - require.Equal(t, policy2.ID, tp.Meta().Partition.Definitions[1].PlacementPolicyRef.ID) - t1, err = dom.InfoSchema().TableByName(model.NewCIStr("test"), model.NewCIStr("t1")) - require.NoError(t, err) - require.Equal(t, par1ID, t1.Meta().ID) - require.Equal(t, policy1.ID, t1.Meta().PlacementPolicyRef.ID) - checkExistTableBundlesInPD(t, dom, "test", "tp") + // exchange par1, t2 + tk.MustGetErrCode("alter table tp exchange partition p1 with table t2", mysql.ErrTablesDifferentMetadata) } func TestPDFail(t *testing.T) { diff --git a/ddl/reorg.go b/ddl/reorg.go index f3c87213c684d..f6d2e135352b3 100644 --- a/ddl/reorg.go +++ b/ddl/reorg.go @@ -15,7 +15,6 @@ package ddl import ( - "context" "fmt" "strconv" "sync" @@ -33,6 +32,7 @@ import ( "github.com/pingcap/tidb/parser/terror" "github.com/pingcap/tidb/sessionctx" "github.com/pingcap/tidb/sessionctx/stmtctx" + "github.com/pingcap/tidb/sessionctx/variable" "github.com/pingcap/tidb/statistics" "github.com/pingcap/tidb/table" "github.com/pingcap/tidb/table/tables" @@ -253,9 +253,9 @@ func (w *worker) runReorgJob(rh *reorgHandler, reorgInfo *reorgInfo, tblInfo *mo switch reorgInfo.Type { case model.ActionAddIndex, model.ActionAddPrimaryKey: - metrics.GetBackfillProgressByLabel(metrics.LblAddIndex).Set(100) + metrics.GetBackfillProgressByLabel(metrics.LblAddIndex, job.SchemaName, tblInfo.Name.String()).Set(0) case model.ActionModifyColumn: - metrics.GetBackfillProgressByLabel(metrics.LblModifyColumn).Set(100) + metrics.GetBackfillProgressByLabel(metrics.LblModifyColumn, job.SchemaName, tblInfo.Name.String()).Set(0) } if err1 := rh.RemoveDDLReorgHandle(job, reorgInfo.elements); err1 != nil { logutil.BgLogger().Warn("[ddl] run reorg job done, removeDDLReorgHandle failed", zap.Error(err1)) @@ -321,9 +321,9 @@ func updateBackfillProgress(w *worker, reorgInfo *reorgInfo, tblInfo *model.Tabl } switch reorgInfo.Type { case model.ActionAddIndex, model.ActionAddPrimaryKey: - metrics.GetBackfillProgressByLabel(metrics.LblAddIndex).Set(progress * 100) + metrics.GetBackfillProgressByLabel(metrics.LblAddIndex, reorgInfo.SchemaName, tblInfo.Name.String()).Set(progress * 100) case model.ActionModifyColumn: - metrics.GetBackfillProgressByLabel(metrics.LblModifyColumn).Set(progress * 100) + metrics.GetBackfillProgressByLabel(metrics.LblModifyColumn, reorgInfo.SchemaName, tblInfo.Name.String()).Set(progress * 100) } } @@ -591,7 +591,7 @@ func getReorgInfo(ctx *JobContext, d *ddlCtx, rh *reorgHandler, job *model.Job, // Third step, we need to remove the element information to make sure we can save the reorganized information to storage. failpoint.Inject("MockGetIndexRecordErr", func(val failpoint.Value) { if val.(string) == "addIdxNotOwnerErr" && atomic.CompareAndSwapUint32(&mockNotOwnerErrOnce, 3, 4) { - if err := rh.RemoveReorgElement(job); err != nil { + if err := rh.RemoveReorgElementFailPoint(job); err != nil { failpoint.Return(nil, errors.Trace(err)) } info.first = true @@ -626,7 +626,7 @@ func getReorgInfo(ctx *JobContext, d *ddlCtx, rh *reorgHandler, job *model.Job, failpoint.Inject("errorUpdateReorgHandle", func() (*reorgInfo, error) { return &info, errors.New("occur an error when update reorg handle") }) - err = rh.UpdateDDLReorgHandle(job, start, end, pid, elements[0]) + err = rh.InitDDLReorgHandle(job, start, end, pid, elements[0]) if err != nil { return &info, errors.Trace(err) } @@ -639,7 +639,7 @@ func getReorgInfo(ctx *JobContext, d *ddlCtx, rh *reorgHandler, job *model.Job, // Second step, we need to remove the element information to make sure we can get the error of "ErrDDLReorgElementNotExist". // However, since "txn.Reset()" will be called later, the reorganized information cannot be saved to storage. if val.(string) == "addIdxNotOwnerErr" && atomic.CompareAndSwapUint32(&mockNotOwnerErrOnce, 2, 3) { - if err := rh.RemoveReorgElement(job); err != nil { + if err := rh.RemoveReorgElementFailPoint(job); err != nil { failpoint.Return(nil, errors.Trace(err)) } } @@ -653,7 +653,7 @@ func getReorgInfo(ctx *JobContext, d *ddlCtx, rh *reorgHandler, job *model.Job, // We'll try to remove it in the next major TiDB version. if meta.ErrDDLReorgElementNotExist.Equal(err) { job.SnapshotVer = 0 - logutil.BgLogger().Warn("[ddl] get reorg info, the element does not exist", zap.String("job", job.String())) + logutil.BgLogger().Warn("[ddl] get reorg info, the element does not exist", zap.String("job", job.String()), zap.Bool("enableConcurrentDDL", rh.enableConcurrentDDL)) } return &info, errors.Trace(err) } @@ -695,7 +695,7 @@ func getReorgInfoFromPartitions(ctx *JobContext, d *ddlCtx, rh *reorgHandler, jo zap.String("startHandle", tryDecodeToHandleString(start)), zap.String("endHandle", tryDecodeToHandleString(end))) - err = rh.UpdateDDLReorgHandle(job, start, end, pid, elements[0]) + err = rh.InitDDLReorgHandle(job, start, end, pid, elements[0]) if err != nil { return &info, errors.Trace(err) } @@ -727,52 +727,96 @@ func getReorgInfoFromPartitions(ctx *JobContext, d *ddlCtx, rh *reorgHandler, jo return &info, nil } -func (r *reorgInfo) UpdateReorgMeta(startKey kv.Key) error { +func (r *reorgInfo) UpdateReorgMeta(startKey kv.Key, pool *sessionPool) (err error) { if startKey == nil && r.EndKey == nil { return nil } + se, err := pool.get() + if err != nil { + return + } + defer pool.put(se) - ctx := kv.WithInternalSourceType(context.Background(), kv.InternalTxnDDL) - err := kv.RunInNewTxn(ctx, r.d.store, true, func(ctx context.Context, txn kv.Transaction) error { - rh := newReorgHandler(meta.NewMeta(txn)) - return errors.Trace(rh.UpdateDDLReorgHandle(r.Job, startKey, r.EndKey, r.PhysicalTableID, r.currElement)) - }) + sess := newSession(se) + err = sess.begin() + if err != nil { + return + } + txn, err := sess.txn() if err != nil { - return errors.Trace(err) + sess.rollback() + return err } - return nil + rh := newReorgHandler(meta.NewMeta(txn), sess, variable.EnableConcurrentDDL.Load()) + err = rh.UpdateDDLReorgHandle(r.Job, startKey, r.EndKey, r.PhysicalTableID, r.currElement) + err1 := sess.commit() + if err == nil { + err = err1 + } + return errors.Trace(err) } // reorgHandler is used to handle the reorg information duration reorganization DDL job. type reorgHandler struct { m *meta.Meta + s *session + + enableConcurrentDDL bool } -func newReorgHandler(t *meta.Meta) *reorgHandler { - return &reorgHandler{m: t} +// NewReorgHandlerForTest creates a new reorgHandler, only used in test. +func NewReorgHandlerForTest(t *meta.Meta, sess sessionctx.Context) *reorgHandler { + return newReorgHandler(t, newSession(sess), variable.EnableConcurrentDDL.Load()) +} + +func newReorgHandler(t *meta.Meta, sess *session, enableConcurrentDDL bool) *reorgHandler { + return &reorgHandler{m: t, s: sess, enableConcurrentDDL: enableConcurrentDDL} } // UpdateDDLReorgStartHandle saves the job reorganization latest processed element and start handle for later resuming. func (r *reorgHandler) UpdateDDLReorgStartHandle(job *model.Job, element *meta.Element, startKey kv.Key) error { + if r.enableConcurrentDDL { + return updateDDLReorgStartHandle(r.s, job, element, startKey) + } return r.m.UpdateDDLReorgStartHandle(job, element, startKey) } // UpdateDDLReorgHandle saves the job reorganization latest processed information for later resuming. func (r *reorgHandler) UpdateDDLReorgHandle(job *model.Job, startKey, endKey kv.Key, physicalTableID int64, element *meta.Element) error { - return r.m.UpdateDDLReorgHandle(job, startKey, endKey, physicalTableID, element) + if r.enableConcurrentDDL { + return updateDDLReorgHandle(r.s, job.ID, startKey, endKey, physicalTableID, element) + } + return r.m.UpdateDDLReorgHandle(job.ID, startKey, endKey, physicalTableID, element) +} + +// InitDDLReorgHandle initializes the job reorganization information. +func (r *reorgHandler) InitDDLReorgHandle(job *model.Job, startKey, endKey kv.Key, physicalTableID int64, element *meta.Element) error { + if r.enableConcurrentDDL { + return initDDLReorgHandle(r.s, job.ID, startKey, endKey, physicalTableID, element) + } + return r.m.UpdateDDLReorgHandle(job.ID, startKey, endKey, physicalTableID, element) } -// RemoveReorgElement removes the element of the reorganization information. -func (r *reorgHandler) RemoveReorgElement(job *model.Job) error { +// RemoveReorgElementFailPoint removes the element of the reorganization information. +func (r *reorgHandler) RemoveReorgElementFailPoint(job *model.Job) error { + if r.enableConcurrentDDL { + return removeReorgElement(r.s, job) + } return r.m.RemoveReorgElement(job) } // RemoveDDLReorgHandle removes the job reorganization related handles. func (r *reorgHandler) RemoveDDLReorgHandle(job *model.Job, elements []*meta.Element) error { + if r.enableConcurrentDDL { + return removeDDLReorgHandle(r.s, job, elements) + } return r.m.RemoveDDLReorgHandle(job, elements) } // GetDDLReorgHandle gets the latest processed DDL reorganize position. func (r *reorgHandler) GetDDLReorgHandle(job *model.Job) (element *meta.Element, startKey, endKey kv.Key, physicalTableID int64, err error) { + if r.enableConcurrentDDL { + return getDDLReorgHandle(r.s, job) + } return r.m.GetDDLReorgHandle(job) } diff --git a/ddl/restart_test.go b/ddl/restart_test.go index 130e988a9367f..293ce76d50642 100644 --- a/ddl/restart_test.go +++ b/ddl/restart_test.go @@ -24,7 +24,6 @@ import ( "github.com/pingcap/tidb/ddl" "github.com/pingcap/tidb/domain" "github.com/pingcap/tidb/kv" - "github.com/pingcap/tidb/meta" "github.com/pingcap/tidb/parser/model" "github.com/pingcap/tidb/sessionctx" "github.com/pingcap/tidb/testkit" @@ -68,11 +67,7 @@ func runInterruptedJob(t *testing.T, store kv.Storage, d ddl.DDL, job *model.Job endlessLoopTime := time.Now().Add(time.Minute) for history == nil { // imitate DoDDLJob's logic, quit only find history - err = kv.RunInNewTxn(kv.WithInternalSourceType(context.Background(), kv.InternalTxnDDL), store, false, func(ctx context.Context, txn kv.Transaction) error { - history, err = meta.NewMeta(txn).GetHistoryDDLJob(job.ID) - return err - }) - require.NoError(t, err) + history, _ = ddl.GetHistoryJobByID(testkit.NewTestKit(t, store).Session(), job.ID) if history != nil { err = history.Error } diff --git a/ddl/schematracker/BUILD.bazel b/ddl/schematracker/BUILD.bazel index a61470a7a1192..490d0271741dd 100644 --- a/ddl/schematracker/BUILD.bazel +++ b/ddl/schematracker/BUILD.bazel @@ -40,6 +40,7 @@ go_test( "info_store_test.go", ], embed = [":schematracker"], + flaky = True, deps = [ "//infoschema", "//parser", diff --git a/ddl/schematracker/checker.go b/ddl/schematracker/checker.go index 6103cc12a84c3..be5314ec85343 100644 --- a/ddl/schematracker/checker.go +++ b/ddl/schematracker/checker.go @@ -466,3 +466,13 @@ func (d Checker) GetInfoSchemaWithInterceptor(ctx sessionctx.Context) infoschema func (d Checker) DoDDLJob(ctx sessionctx.Context, job *model.Job) error { return d.realDDL.DoDDLJob(ctx, job) } + +// MoveJobFromQueue2Table implements the DDL interface. +func (d Checker) MoveJobFromQueue2Table(bool) error { + panic("implement me") +} + +// MoveJobFromTable2Queue implements the DDL interface. +func (d Checker) MoveJobFromTable2Queue() error { + panic("implement me") +} diff --git a/ddl/schematracker/dm_tracker.go b/ddl/schematracker/dm_tracker.go index 0391fafc39c30..57b9f944bdc61 100644 --- a/ddl/schematracker/dm_tracker.go +++ b/ddl/schematracker/dm_tracker.go @@ -532,3 +532,13 @@ func (d SchemaTracker) GetInfoSchemaWithInterceptor(ctx sessionctx.Context) info func (d SchemaTracker) DoDDLJob(ctx sessionctx.Context, job *model.Job) error { return nil } + +// MoveJobFromQueue2Table implements the DDL interface, it's no-op in DM's case. +func (d SchemaTracker) MoveJobFromQueue2Table(b bool) error { + panic("implement me") +} + +// MoveJobFromTable2Queue implements the DDL interface, it's no-op in DM's case. +func (d SchemaTracker) MoveJobFromTable2Queue() error { + panic("implement me") +} diff --git a/ddl/sequence.go b/ddl/sequence.go index ceea68d90810b..ad8390bdf2cc2 100644 --- a/ddl/sequence.go +++ b/ddl/sequence.go @@ -259,7 +259,11 @@ func onAlterSequence(d *ddlCtx, t *meta.Meta, job *model.Job) (ver int64, _ erro job.State = model.JobStateCancelled return ver, errors.Trace(err) } - shouldUpdateVer := !reflect.DeepEqual(*tblInfo.Sequence, copySequenceInfo) || restart + same := reflect.DeepEqual(*tblInfo.Sequence, copySequenceInfo) + if same && !restart { + job.State = model.JobStateDone + return ver, errors.Trace(err) + } tblInfo.Sequence = ©SequenceInfo // Restart the sequence value. @@ -276,7 +280,9 @@ func onAlterSequence(d *ddlCtx, t *meta.Meta, job *model.Job) (ver int64, _ erro } // Store the sequence info into kv. - ver, err = updateVersionAndTableInfo(d, t, job, tblInfo, shouldUpdateVer) + // Set shouldUpdateVer always to be true even altering doesn't take effect, since some tools like drainer won't take + // care of SchemaVersion=0. + ver, err = updateVersionAndTableInfo(d, t, job, tblInfo, true) if err != nil { return ver, errors.Trace(err) } diff --git a/ddl/stat_test.go b/ddl/stat_test.go index 6b40869a18ab9..3c298ea4ba435 100644 --- a/ddl/stat_test.go +++ b/ddl/stat_test.go @@ -16,6 +16,8 @@ package ddl_test import ( "context" + "fmt" + "strconv" "testing" "github.com/pingcap/failpoint" @@ -24,7 +26,9 @@ import ( "github.com/pingcap/tidb/meta" "github.com/pingcap/tidb/parser/ast" "github.com/pingcap/tidb/parser/model" + "github.com/pingcap/tidb/session" "github.com/pingcap/tidb/sessionctx" + "github.com/pingcap/tidb/sessionctx/variable" "github.com/pingcap/tidb/sessiontxn" "github.com/pingcap/tidb/testkit" "github.com/pingcap/tidb/types" @@ -92,9 +96,9 @@ func TestGetDDLInfo(t *testing.T) { store, clean := testkit.CreateMockStore(t) defer clean() - sess := testkit.NewTestKit(t, store).Session() - _, err := sess.Execute(context.Background(), "begin") - require.NoError(t, err) + tk := testkit.NewTestKit(t, store) + sess := tk.Session() + tk.MustExec("begin") txn, err := sess.Txn(true) require.NoError(t, err) @@ -116,7 +120,7 @@ func TestGetDDLInfo(t *testing.T) { RowCount: 0, } - err = addDDLJobs(txn, job) + err = addDDLJobs(sess, txn, job) require.NoError(t, err) info, err := ddl.GetDDLInfo(sess) @@ -126,7 +130,7 @@ func TestGetDDLInfo(t *testing.T) { require.Nil(t, info.ReorgHandle) // two jobs - err = addDDLJobs(txn, job1) + err = addDDLJobs(sess, txn, job1) require.NoError(t, err) info, err = ddl.GetDDLInfo(sess) @@ -136,11 +140,19 @@ func TestGetDDLInfo(t *testing.T) { require.Equal(t, job1, info.Jobs[1]) require.Nil(t, info.ReorgHandle) - _, err = sess.Execute(context.Background(), "rollback") - require.NoError(t, err) + tk.MustExec("rollback") } -func addDDLJobs(txn kv.Transaction, job *model.Job) error { +func addDDLJobs(sess session.Session, txn kv.Transaction, job *model.Job) error { + if variable.EnableConcurrentDDL.Load() { + b, err := job.Encode(true) + if err != nil { + return err + } + _, err = sess.Execute(kv.WithInternalSourceType(context.Background(), kv.InternalTxnDDL), fmt.Sprintf("insert into mysql.tidb_ddl_job(job_id, reorg, schema_ids, table_ids, job_meta, type, processing) values (%d, %t, %s, %s, %s, %d, %t)", + job.ID, job.MayNeedReorg(), strconv.Quote(strconv.FormatInt(job.SchemaID, 10)), strconv.Quote(strconv.FormatInt(job.TableID, 10)), wrapKey2String(b), job.Type, false)) + return err + } m := meta.NewMeta(txn) if job.MayNeedReorg() { return m.EnQueueDDLJob(job, meta.AddIndexJobListKey) @@ -148,6 +160,13 @@ func addDDLJobs(txn kv.Transaction, job *model.Job) error { return m.EnQueueDDLJob(job) } +func wrapKey2String(key []byte) string { + if len(key) == 0 { + return "''" + } + return fmt.Sprintf("0x%x", key) +} + func buildCreateIdxJob(dbInfo *model.DBInfo, tblInfo *model.TableInfo, unique bool, indexName string, colName string) *model.Job { return &model.Job{ SchemaID: dbInfo.ID, diff --git a/ddl/table.go b/ddl/table.go index 8d09078575ad9..b253554516976 100644 --- a/ddl/table.go +++ b/ddl/table.go @@ -760,23 +760,43 @@ func onRebaseAutoID(d *ddlCtx, store kv.Storage, t *meta.Meta, job *model.Job, t job.State = model.JobStateCancelled return ver, errors.Trace(err) } + + if job.MultiSchemaInfo != nil && job.MultiSchemaInfo.Revertible { + job.MarkNonRevertible() + return ver, nil + } + tblInfo, err := GetTableInfoAndCancelFaultJob(t, job, schemaID) if err != nil { job.State = model.JobStateCancelled return ver, errors.Trace(err) } - // No need to check `newBase` again, because `RebaseAutoID` will do this check. - if tp == autoid.RowIDAllocType { - tblInfo.AutoIncID = newBase - } else { - tblInfo.AutoRandID = newBase - } tbl, err := getTable(store, schemaID, tblInfo) if err != nil { job.State = model.JobStateCancelled return ver, errors.Trace(err) } + + if !force { + newBaseTemp, err := adjustNewBaseToNextGlobalID(nil, tbl, tp, newBase) + if err != nil { + return ver, errors.Trace(err) + } + if newBase != newBaseTemp { + job.Warning = toTError(fmt.Errorf("Can't reset AUTO_INCREMENT to %d without FORCE option, using %d instead", + newBase, newBaseTemp, + )) + } + newBase = newBaseTemp + } + + if tp == autoid.RowIDAllocType { + tblInfo.AutoIncID = newBase + } else { + tblInfo.AutoRandID = newBase + } + if alloc := tbl.Allocators(nil).Get(tp); alloc != nil { // The next value to allocate is `newBase`. newEnd := newBase - 1 @@ -1008,6 +1028,11 @@ func onModifyTableComment(d *ddlCtx, t *meta.Meta, job *model.Job) (ver int64, _ return ver, errors.Trace(err) } + if job.MultiSchemaInfo != nil && job.MultiSchemaInfo.Revertible { + job.MarkNonRevertible() + return ver, nil + } + tblInfo.Comment = comment ver, err = updateVersionAndTableInfo(d, t, job, tblInfo, true) if err != nil { @@ -1042,6 +1067,11 @@ func onModifyTableCharsetAndCollate(d *ddlCtx, t *meta.Meta, job *model.Job) (ve return ver, errors.Trace(err) } + if job.MultiSchemaInfo != nil && job.MultiSchemaInfo.Revertible { + job.MarkNonRevertible() + return ver, nil + } + tblInfo.Charset = toCharset tblInfo.Collate = toCollate @@ -1085,7 +1115,7 @@ func (w *worker) onSetTableFlashReplica(d *ddlCtx, t *meta.Meta, job *model.Job) // Ban setting replica count for tables in system database. if tidb_util.IsMemOrSysDB(job.SchemaName) { - return ver, errors.Trace(dbterror.ErrUnsupportedAlterReplicaForSysTable) + return ver, errors.Trace(dbterror.ErrUnsupportedTiFlashOperationForSysOrMemTable) } err = w.checkTiFlashReplicaCount(replicaInfo.Count) @@ -1304,7 +1334,7 @@ func updateVersionAndTableInfo(d *ddlCtx, t *meta.Meta, job *model.Job, tblInfo default: } }) - if shouldUpdateVer { + if shouldUpdateVer && (job.MultiSchemaInfo == nil || !job.MultiSchemaInfo.SkipVersion) { ver, err = updateSchemaVersion(d, t, job) if err != nil { return 0, errors.Trace(err) diff --git a/ddl/table_modify_test.go b/ddl/table_modify_test.go index 038fcc878d941..50f8ea8a9b6d0 100644 --- a/ddl/table_modify_test.go +++ b/ddl/table_modify_test.go @@ -232,7 +232,7 @@ func testParallelExecSQL(t *testing.T, store kv.Storage, dom *domain.Domain, sql require.NoError(t, err) txn, err := sess.Txn(true) require.NoError(t, err) - jobs, err := ddl.GetAllDDLJobs(meta.NewMeta(txn)) + jobs, err := ddl.GetAllDDLJobs(sess, meta.NewMeta(txn)) require.NoError(t, err) qLen = len(jobs) if qLen == 2 { @@ -260,7 +260,7 @@ func testParallelExecSQL(t *testing.T, store kv.Storage, dom *domain.Domain, sql require.NoError(t, err) txn, err := sess.Txn(true) require.NoError(t, err) - jobs, err := ddl.GetAllDDLJobs(meta.NewMeta(txn)) + jobs, err := ddl.GetAllDDLJobs(sess, meta.NewMeta(txn)) require.NoError(t, err) qLen = len(jobs) if qLen == 1 { diff --git a/ddl/table_test.go b/ddl/table_test.go index 0a1dff690f5b2..fcdc713539948 100644 --- a/ddl/table_test.go +++ b/ddl/table_test.go @@ -47,6 +47,7 @@ func testRenameTable( Type: model.ActionRenameTable, BinlogInfo: &model.HistoryInfo{}, Args: []interface{}{oldSchemaID, tblInfo.Name, oldSchemaName}, + CtxVars: []interface{}{[]int64{oldSchemaID, newSchemaID}, []int64{tblInfo.ID}}, } ctx.SetValue(sessionctx.QueryString, "skip") require.NoError(t, d.DoDDLJob(ctx, job)) @@ -63,6 +64,7 @@ func testRenameTables(t *testing.T, ctx sessionctx.Context, d ddl.DDL, oldSchema Type: model.ActionRenameTables, BinlogInfo: &model.HistoryInfo{}, Args: []interface{}{oldSchemaIDs, newSchemaIDs, newTableNames, oldTableIDs, oldSchemaNames, oldTableNames}, + CtxVars: []interface{}{append(oldSchemaIDs, newSchemaIDs...), oldTableIDs}, } ctx.SetValue(sessionctx.QueryString, "skip") require.NoError(t, d.DoDDLJob(ctx, job)) diff --git a/ddl/tiflash_replica_test.go b/ddl/tiflash_replica_test.go index f387df702253d..5431f917b7855 100644 --- a/ddl/tiflash_replica_test.go +++ b/ddl/tiflash_replica_test.go @@ -186,7 +186,7 @@ func TestSetTableFlashReplicaForSystemTable(t *testing.T) { for _, one := range sysTables { _, err := tk.Exec(fmt.Sprintf("alter table `%s` set tiflash replica 1", one)) if db == "MySQL" { - require.Equal(t, "[ddl:8200]ALTER table replica for tables in system database is currently unsupported", err.Error()) + require.Equal(t, "[ddl:8200]Unsupported ALTER TiFlash settings for system table and memory table", err.Error()) } else { require.Equal(t, fmt.Sprintf("[planner:1142]ALTER command denied to user 'root'@'%%' for table '%s'", strings.ToLower(one)), err.Error()) } diff --git a/ddl/util/main_test.go b/ddl/util/main_test.go index a28cdcb4b5bfc..fe13e958c6f7c 100644 --- a/ddl/util/main_test.go +++ b/ddl/util/main_test.go @@ -25,6 +25,7 @@ func TestMain(m *testing.M) { testsetup.SetupForCommonTest() opts := []goleak.Option{ goleak.IgnoreTopFunction("github.com/golang/glog.(*loggingT).flushDaemon"), + goleak.IgnoreTopFunction("go.opencensus.io/stats/view.(*worker).start"), goleak.IgnoreTopFunction("go.etcd.io/etcd/client/pkg/v3/logutil.(*MergeLogger).outputLoop"), } goleak.VerifyTestMain(m, opts...) diff --git a/distsql/request_builder.go b/distsql/request_builder.go index 2bd7c5df65c04..773319f27f847 100644 --- a/distsql/request_builder.go +++ b/distsql/request_builder.go @@ -266,6 +266,7 @@ func (builder *RequestBuilder) SetFromSessionVars(sv *variable.SessionVars) *Req builder.SetResourceGroupTagger(sv.StmtCtx.GetResourceGroupTagger()) if sv.EnablePaging { builder.SetPaging(true) + builder.Request.MinPagingSize = uint64(sv.MinPagingSize) } builder.RequestSource.RequestSourceInternal = sv.InRestrictedSQL builder.RequestSource.RequestSourceType = sv.RequestSourceType @@ -367,6 +368,12 @@ func (builder *RequestBuilder) SetIsStaleness(is bool) *RequestBuilder { return builder } +// SetClosestReplicaReadAdjuster sets request CoprRequestAdjuster +func (builder *RequestBuilder) SetClosestReplicaReadAdjuster(chkFn kv.CoprRequestAdjuster) *RequestBuilder { + builder.ClosestReplicaReadAdjuster = chkFn + return builder +} + // TableHandleRangesToKVRanges convert table handle ranges to "KeyRanges" for multiple tables. func TableHandleRangesToKVRanges(sc *stmtctx.StatementContext, tid []int64, isCommonHandle bool, ranges []*ranger.Range, fb *statistics.QueryFeedback) ([]kv.KeyRange, error) { if !isCommonHandle { diff --git a/docs/design/2022-03-31-concurrent-ddl-framawork.md b/docs/design/2022-03-31-concurrent-ddl-framawork.md deleted file mode 100644 index e3001d271cc12..0000000000000 --- a/docs/design/2022-03-31-concurrent-ddl-framawork.md +++ /dev/null @@ -1,286 +0,0 @@ -# TiDB Design Documents - -- Author(s): [Jiwei Xiong](http://github.com/xiongjiwei), [Wenjun Huang](http://github.com/wjhuang2016), [Xia Li](https://github.com/zimulala) -- Tracking Issue: https://github.com/pingcap/tidb/issues/32031 - -## Table of Contents - -* [Introduction](#introduction) -* [Motivation or Background](#motivation-or-background) -* [Current implementation](#current-implementation) -* [Goal](#goal) -* [Not Goal](#not-goal) -* [Idea](#idea) -* [Detailed Design](#detailed-design) -* [Test Design](#test-design) - * [Compatibility Tests](#compatibility-tests) - * [Benchmark Tests](#benchmark-tests) -* [Unresolved Questions](#unresolved-questions) - -## Introduction - -This document describes the design of Concurrent DDL, which makes DDL in different table are executed concurrently and do not block each other. - -## Motivation and Background - -DDL (Data Definition Language) is a data definition language, commonly used to describe and manage database schema objects, including but not limited to tables, indexes, views, constraints, etc., and is one of the most commonly used database languages. The DDL change in TiDB relies on the two cluster-level queues to achieve lock-free management, solving the DDL conflict problem. However, when a large number of DDLs are executed simultaneously, especially when the execution time of DDLs is long, DDL queuing and blocking occurs, which affects the performance of TiDB and degrades the user experience. - -## Current implementation - -In a cluster, TiDB chooses a DDL owner to run the DDL job. There is only one owner at a time, the other TiDBs can still receive the DDLs and keep them in TiKV waiting for the owner to run it. We divide the DDL into two types. `reorg` for DDL job that takes a long time, contains data change, such as `add index`. `general` for short time, only meta data change, such as `create table`, they are stored in two queues and the corresponding DDL worker always fetches the first one and runs it. -It encounters some scenarios where a DDL would be blocked by other unrelated DDLs - -1. Block happens in the same queue. _(reorg job blocks reorg job)_ - -```sql -CREATE INDEX idx on t(a int); -- t is a big table -CREATE INDEX idx on t1(a int); -- t1 is a small table -``` - -The 2nd DDL is blocked by the 1st because they are in the same queue and only the first is able to run. Create index on `t1` have to wait until `t` is done. - -2. Block happens on dependency check. _(reorg job blocks general job)_ - -In current implementation, we have a constraint that can not run two DDLs one the same table at the same time, such as - -```sql -CREATE INDEX idx on t(a int) -- reorg queue -ALTER TABLE t ADD COLUMN b int -- general queue -CREATE TABLE t1(a int) -- general queue -``` - -Because of the constraint, the 2nd DDL will be blocked by the 1st(they all operate the table t), and the 3rd is blocked by 2nd(they all in general queue). Finally, 3rd blocked by 1st, it does not make sence. - -The problems above are more noticeable in a big cluster. Some of them already reported by the users, we have to take it into account. So, I propose refining the DDL framework from queue based to table based, and making some improvements to it. - -## Goal - -- Make DDLs on the different tables not block each other. -> Limited by DDL workers' count, we can still encounter this problem(when all workers are busy) - -## Non-Goal - -- Concurrency on the same table. - -## Idea - -1. The `queue base` DDL framework is not easy to find the proper DDL job, it can only get the first one. -2. It's necessary to replace the queue with other data structures so that we can manipulate DDL job easily. -3. To solve this problem, we design the `table base` DDL framework. It can pick up any ready-to-run DDL job by SQL statement. - -## Detailed Design - -### Table Definition - -Several tables will be provided to maintain the DDL meta in the DDL job's life cycle. - -Table `mysql.tidb_ddl_job` stores all the queueing DDL meta. -``` -+----------------+------+------+----------------------------------+ -| Field | Null | Key | Comment | -+----------------+------+------+----------------------------------+ -| job_id | NO | PRI | DDL job ID | -| reorg | YES | | True if this DDL need reorg | -| schema_id | YES | | The schema ID relate to this DDL | -| table_id | YES | | The table ID relate to this DDL | -| job_meta | YES | | The arguments of this DDL job | -| is_drop_schema | YES | | True if the DDL is a drop schema | -+----------------+------+------+---------+------------------------+ -``` - -Table `mysql.tidb_ddl_reorg` contains the reorg job data. -``` -+---------------+------+------+-----------------------------------------+ -| Field | Null | Key | Comment | -+---------------+------+------+-----------------------------------------+ -| job_id | NO | | DDL Job ID | -| curr_ele_id | YES | | Current processing element ID | -| curr_ele_type | YES | | Current processing element type | -| ele_id | YES | | Element ID for processing | -| start_key | YES | | The start key for the certain element | -| end_key | YES | | The end key for the certain element | -| physical_id | YES | | The physical ID for the certain element | -| reorg_meta | YES | | reserved for add index | -+---------------+------+------+-----------------------------------------+ -``` -> An element is a column or an index that needs to reorg. - -> `ele_id`, `start_key`, `end_key`, `physical_id` are the reorg context of a certain element. - -Table `mysql.tidb_ddl_history` stores the finished DDL job. -``` -+---------------+------+------+-------------------------------+ -| Field | Null | Key | Comment | -+---------------+------+------+-------------------------------+ -| job_id | NO | PRI | DDL job ID | -| job_meta | YES | | The arguments of this DDL job | -+---------------+------+------+-------------------------------+ -``` - -In bootstrap step, TiDB will build these tables meta and put it into tikv directly. For new cluster, TiDB will also build `mysql` schema meta. - -### DDL operations - -Use the following DDL operations to manage the DDL jobs: -```sql -insert into mysql.tidb_ddl_job values (...) -- add ddl jobs -delete from mysql.tidb_ddl_job where job_id = ... -- delete ddl jobs -update mysql.tidb_ddl_job set job_meta = ... where job_id = ... -- update ddl jobs -select * from mysql.tidb_ddl_job -- get ddl jobs -``` - -If a DDL job is done, the worker will delete that job in `tidb_ddl_job` and its related reorg information in `tidb_ddl_reorg`, then insert the job `into tidb_ddl_history`. - -### DDL job manager - -DDL job manager will find the runnable DDL job and dispatch the jobs to DDL workers. -```golang -for { - if !isOwner { - // sleep a while - continue - } - - // if there are job coming - select { - case <-ddlJobCh: - case <-ticker.C: - case <-notifyDDLJobByEtcdCh: - } - - if freeWorkerCount() > 0 { - job = findrunnableJob() - if job != nil { - go runJob(job) - } - } -} -``` - -To prevent all the workers in worker pool occupied by the long run job like `add index`, TiDB will divide the pool into two types: `reorg` worker pool and `general` worker pool, then the DDL job manager will be - -```golang -for { - // ... - if freeGeneralWorkerCount() > 0 { - generalJob = findRunnableGeneralJob() - if generalJob != nil { - go runGeneralJob(generalJob) - } - } - - if freeReorgWorkerCount() > 0 { - reorgJob = findRunnableReorgJob() - if reorgJob != nil { - go runReorgJob(reorgJob) - } - } -} -``` - -The runnable job defines as -1. It is not running. -2. It is with the minimal job id for all queueing jobs that refer to the same table. -3. Its job id is larger than `drop schema` job id, when a `drop schema` job exists in the job queue trying to drop the same schema. -4. When the job is `drop schema`, it is with the minimal job id for all queueing jobs refer to the same schema. - -to get a general job, we can use SQL -```sql -select * from mysql.tidb_ddl_job where not reorg; -``` -and return the first record. - -Now we will describe how to achieve the 4 rules above: - -Rule 1 and Rule 2: maintain a running job set, group by the table id and find the minimum one, and SQL can be written to -```sql -select * from mysql.tidb_ddl_job where job_id in (select min(job_id) from mysql.tidb_ddl_job where not reorg and job_id not in ({running job id}) group by table_id); -``` - -Then, we find some jobs and check Rule 3 and Rule 4: - -Rule 3: check if there is a smaller `drop schema` job id on the same schema. -```sql -select * from mysql.tidb_ddl_job where is_drop_schema and job_id < {job.id} limit 1; -``` -Rule 4: if the job is `drop schema`, check if there is a smaller job id on the same schema. -```sql -select * from mysql.tidb_ddl_job where job_id < {job.id} limit 1; -``` - -If there are records, we can not run the drop schema job. - -The workflow will looks like - -![concurrent-ddl-framework](./imgs/concurrendl-ddl.png) - -compare current implementataion - -![queue-base-ddl-framework](./imgs/queue-ddl.png) - -### Show DDL jobs - -get DDL jobs from the tables: -```sql -select * from mysql.tidb_ddl_job; -select * from mysql.tidb_history_job; -``` - -### Cancel DDL - -find the cancel job and update the DDL meta to `JobStateCancelling` state -```sql -begin; -select job_meta from mysql.tidb_ddl_job where job_id = {job_id}; --- set the job state to `JobStateCancelling` -update mysql.tidb_ddl_job set job_meta = {job} where job_id = {job.id} -commit; -``` - -### Upgrade compatibility - -Consider the rolling upgrade, the first upgrade tidb instance will hang if there are internal DDLs because the new version TiDB will write DDL job into table, but the old version TiDB DDL owner will not run the job. So the upgrading TiDB should get the DDL owner first: -```golang -//... -if needDoUpgrade { - ddl.requireOwner(); - // Do upgrade ... -} -``` - -In general, there will have no queueing DDL job when upgrading, but if there are some queueing DDL jobs, TiDB should migrate the DDL jobs from queue to table and wait for DDL job manager handle them. - -```golang -//... -if needDoUpgrade { - ddl.requireOwner(); - migrateDDL() // migrate queueing DDL jobs from queue to table, including reorg meta. - // Do upgrade ... -} -``` - -### Compatibility with CDC - -CDC will watch the key range of the ddl job **queue** and sync the finished DDLs to other cluster, after concurrent DDL is implemented, CDC should watch the key range of the `tidb_ddl_job` table and unmarshal the ddl job. -Since we maintain the old ddl framework at the same time, CDC should be able to watch key range of the ddl job queue and `tidb_ddl_job` table. -After several versions, CDC can remove the code of watching the key range of the queue. - - -### How to change the tables(`tidb_ddl_job`, `tidb_ddl_reorg`, `tidb_ddl_history`) meta? - -If a new field is required in `tidb_ddl_job`, we can use a `ALTER TABLE` statement to add the field, the important thing is make this DDL run successfully. -Consider the rolling upgrade progress, only the first instance will run the upgrade SQL, at this time, the DDL owner will be the other TiDB instance, so that the DDL will -be executed successfully by the other old TiDB instance. - -## Test Design - -We will use [schrddl](https://github.com/PingCAP-QE/schrddl) test the concurrent DDL framework. - -`Schrddl` is a fuzz test tool that generate DDL and DML SQLs sends to TiDB. For more information, you can read this document - -### Benchmark Tests - - -## Unresolved Questions - -N/A diff --git a/docs/design/2022-07-20-session-manager.md b/docs/design/2022-07-20-session-manager.md new file mode 100644 index 0000000000000..59d4d2b64feac --- /dev/null +++ b/docs/design/2022-07-20-session-manager.md @@ -0,0 +1,190 @@ +# Proposal: Session Manager + +- Author(s): [djshow832](https://github.com/djshow832) +- Tracking Issue: https://github.com/pingcap/tidb/issues/35258 + +## Abstract + +This proposes a design of a TiDB component called Session Manager. It keeps client connections alive while the TiDB server upgrades, restarts, scales in, and scales out. + +## Background + +Applications generally connect to TiDB through a connection pool to reduce the overhead of creating connections. Connections in the pool are kept alive, thus TiDB has to disconnect the client connections during shutdown. This causes reconnections and QPS jitters on the application side when the TiDB cluster rolling upgrades, restarts, and scales in. Thus, database administrators sometimes operate TiDB clusters when the QPS reaches the bottom, typically in the middle of the night, which is painful. + +Besides, TiDB needs to be upgraded transparently in the TiDB Cloud Dev Tier once the latest version is ready. The current situation makes TiDB impossible to upgrade without affecting users. + +Therefore, we propose a new TiDB component, called Session Manager. Applications or load balancers connect to the Session Manager instead of TiDB. The Session Manager keeps the session states of current connections and redirects the session to alive TiDB instances automatically when a TiDB instance is down. + +![session manager component](./imgs/session-manager-component.png) + +### Goal + +- When the TiDB cluster performs upgrades or restarts, the Session Manager redirects the backend connections from inactive TiDB instances to active instances. This is especially important on the Dev Tier because TiDB will be upgraded frequently and automatically. +- When the TiDB cluster scales out, the Session Manager is aware of the new TiDB instances and redirects some backend connections to the new instances. This is important in a serverless architecture. +- When the TiDB cluster scales in, the Session Manager waits for the ongoing transactions to be finished and redirects some backend connections to active TiDB instances. + +### Non-Goals + +- When a TiDB instance fails accidentally, the Session Manager redirects the backend connections from the failed TiDB instance to an active instance. +- Block list, allow list, traffic control, audit logs. + +## Proposal + +### Deployment + +In the cloud, applications typically connect to the Network Load Balancer (NLB), which balances the traffic to the TiDB cluster. Session Manager is placed between the NLB and the TiDB cluster. + +The NLB balances the traffic to the Session Manager, and the Session Manager balances the traffic to the TiDB cluster. Most of the time, Session Manager only forwards messages between the NLB and the TiDB instances. + +The Session Manager also needs to be highly available. An easy way is to deploy multiple isolated Session Manager instances. However, it's painful to maintain. For example, when a user wants to modify a configuration, he needs to connect to the proxies one by one. What we need is a Session Manager cluster. + +![session manager deployment](./imgs/session-manager-deployment.png) + +Client addresses should be recorded in slow logs, audit logs, TiDB logs, and processlist to enable users to check the source of requests. Besides, users may configure different privileges for different IPs. However, from the viewpoint of TiDB, the client address is the address of the Session Manager. Some proxies use the [Proxy Protocol](https://www.haproxy.com/blog/using-haproxy-with-the-proxy-protocol-to-better-secure-your-database/) to pass the client address to the server and TiDB also supports the Proxy Protocol. Session Manager will also use the Proxy Protocol in the handshake phase. + +### TiDB Instance Discovery + +Traditional proxies require users to configure the addresses of TiDB instances. When the TiDB cluster scales out, scales in, or switches to another TiDB cluster, the user needs to reconfigure it in the proxies. + +A Session Manager instance is deployed independently with other TiDB components. To connect to the TiDB cluster, the PD addresses should be passed to the Session Manager before startup. PD contains an etcd server, containing all the instance addresses in the cluster. The Session Manager watches the etcd key to detect a new TiDB instance. This is just like what TiDB instances do. + +The Session Manager should also do a health check on the TiDB instance to ensure it is alive, and migrate the backend connections to other TiDB instances if it is down. The health check is achieved by trying to connect the MySQL protocol port, just like other proxies. + +Session Manager can do various health checks on TiDB instances: + +- It can observe the CPU and memory usage of TiDB instances so that it can perform load-based balance. +- It can observe whether the latest schema is fetched on TiDB instances so that it can avoid directing client connections to the TiDB instances that cannot serve requests. + +When a TiDB instance needs to be shut down gracefully due to scale-in, upgrading, or restarting, no more new connections are accepted. The health check from the Session Manager will fail and the Session Manager no longer routes new connections to the instance. However, it still waits for the ongoing queries to be finished since the instance is still alive. + +When a TiDB instance quits accidentally, the ongoing queries fail immediately and the Session Manager redirects the connections. + +![session manager health check](./imgs/session-manager-health-check.png) + +### Authentication + +When the Session Manager migrates a session, it needs to authenticate with the new TiDB server. + +It's unsafe to save user passwords in the Session Manager, so we use a token-based authentication: + +1. The administrator places a self-signed certificate on each TiDB server. The certificate and key paths are defined by global variables `tidb_auth_signing_cert` and `tidb_auth_signing_key`. The certificates on all the servers are the same so that a message encrypted by one server can be decrypted by another. +2. When the Session Manager is going to migrate a session from one TiDB instance to another, it queries the session token. The session token is composed by the username, token expiration time, and a signature. The signature is signed with the private key of the certificate. +3. The Session Manager then authenticates with the new TiDB server with a new auth-plugin. The session token acts as the password. The new server checks the username, token expiration time, and the signature. The signature should be verified by the public key. + +To ensure security, TiDB needs to guarantee that: + +- The certificate rotates periodically so that it minimizes the effect of leaking the certificate. +- The username in the session token must be the same with the that in the handshake packet, so one user cannot log in with the identity of another user. +- The token expiration time cannot exceed the current time and the token lifetime cannot be too long, so one user cannot forge the token by brute force, or use a valid token for a long time. +- The signature should be verified so that TiDB can make sure the data is not forged. +- Secure transport is enforced when querying the session token because the token cannot be leaked. + +### Connection State Maintenance + +A MySQL connection is stateful. TiDB maintains a session state for each connection, including session variables, transaction states, and prepared statements. If the Session Manager redirects the frontend query from one backend connection to another without restoring the session state in the new connection, an error may occur. + +The basic workflow is as follows: + +1. When the client queries from the Session Manager, the Session Manager forwards the commands to TiDB and then forwards the query result from TiDB to the client. The session states are only updated by TiDB. +2. When the Session Manager is going to migrate a session from one TiDB instance to another, it queries the session states from the original TiDB instance and saves them. Session Manager queries session states by sending `SHOW SESSION_STATES`, the result of which is in JSON type. +3. The Session Manager then connects to the new TiDB instance and replays the session states by sending `SET SESSION_STATES '{...}'`, the parameter of which is just the result of `SHOW SESSION_STATES`. + +Session states include: + +- Session variables. All the session variables are replayed, because the default values may be different between TiDB instances. +- Prepared statements with their IDs. The prepared statements are created in either binary or text protocol. +- Session SQL bindings. +- User-defined variables. +- The current database. +- Last insert ID, found rows, and row count for the last query, as well as last query info, last transaction info, last DDL info. +- Last sequence values. +- Last warning and error messages. + +Transactions are hard to be restored, so Session Manager doesn't support restoring a transaction. Session Manager must wait until the current transaction finishes or the TiDB instance exits due to shut down timeout. To be aware of whether the session has an active transaction, Session Manager needs to track the transaction status. This can be achieved by parsing the status flag in the response packets. + +Similarly, Session Manager doesn't support restoring a result set. If the client uses a cursor to read, Session Manager must wait until the data is all fetched. Session Manager can parse the request and response packets to know whether the prepared statement is using a cursor and whether all the data is fetched. + +Besides, there are some other limitations: + +- When the session contains local temporary tables, table locks, or advisory locks, the TiDB won't return the session states and Session Manager will report connection failure. +- For long-run queries, such as `ADD INDEX` and `LOAD DATA`, TiDB probably won't wait until they finish. In this case, the client will be disconnected. +- Session Manager needs to reconnect to the new TiDB, which introduces handshake, authentication, and session states initialization, so there will be a performance jitter during the redirection. +- The session-level plan cache on the new TiDB instance is empty, so there will be a slight performance jitter for a while after the redirection. + +### Configuration + +For static configurations, they are read before the startup of the Session Manager and cannot be changed online, such as the port. These configurations can be set by command line parameters. + +For dynamic configurations, it's unacceptable to restart Session Manager to set them because Session Manager is supposed to be always online. The configurations can be overwritten anytime and take effect on the whole cluster. These configurations can be stored on an etcd server, which is deployed on the same machine as the Session Manager. Each Session Manager instance watches the etcd key to update the configurations in time. + +Session Manager provides an HTTP API to update dynamic configurations online, just as the other components do. + +### Observability + +Session Manager is one of the products in the TiDB ecosystem, so it's reasonable to integrate Session Manager with Grafana and TiDB-Dashboard. + +Like the other components, Session Manager also reports metrics to Prometheus. The metrics include but are not limited to: + +- The CPU and memory of each Session Manager instance +- The number of successful and failed session migrations +- The latency and QPS of queries + +TiDB-Dashboard should be able to fetch the logs and profiling data of each Session Manager instance. + +To troubleshoot the Session Manager, Session Manager provides an HTTP API to fetch instance-scoped or global-scoped data, such as: + +- The processlist on the Session Manager instance +- The available TiDB instances from the viewpoint of the Session Manager + +## Compatibility + +### Upgrade Compatibility + +To avoid upgrading Session Manager, Session Manager is supposed to be simple and stable enough. + +However, we still can never guarantee that Session Manager will be bug free, so it still needs to support rolling upgrade. Once upgrading, the client connections will definitely be disconnected. + +### MySQL Compatibility + +Session Manager connects to the MySQL protocol port of TiDB servers, so it should be compatible with MySQL. + +## Test Plans + +Session Manager is an essential component of the query path, so it's very important to ensure its stability. + +We have lots of cases to test, including: + +- Test various ORM and connectors with all versions. The MySQL protocol, especially the authentication part, is different among those versions. +- Test various L4 Proxies. Different proxies use different methods to check the health of Session Manager. +- Test various statements, including randomly generated statements and MySQL tests. +- Test all scenarios tests that we have, and randomly make Session Manager redirect sessions at any time. + +## Alternative Proposals + +Traditional SQL proxies typically maintain the session states on themselves, rather than by backend SQL servers. They parse every response packet, or even request packet, to incrementally update the session states. + +This is also possible for Session Manager. MySQL supports [`CLIENT_SESSION_TRACK` capability](https://dev.mysql.com/doc/internals/en/packet-OK_Packet.html#cs-sect-packet-ok-sessioninfo), which is also used for session migration. MySQL server is able to send human-readable state information and some predefined session states in the OK packet when the session states are changed. + +The most significant advantage of this method is that Session Manager can support fail over. Now that Session Manager has all the up-to-date session states, it can migrate sessions anytime, even if the TiDB instance fails accidentally. + +However, there are some drawbacks of this method: + +- There are only 4 predefined state types, and the type is encoded in an `int<1>`. However, TiDB has tens of state types, some of which are TiDB-specific. We cannot extend the state types because it will break forward compatibility if MySQL adds more state types in the future. +- For some changes, e.g. user-defined variables, the OK packet just notifies the client that there is a change, but doesn't tell it what the change is. We also need to extend the protocol, which is a risk. +- There are some inevitable limitations of fail over. For example, Session Manager will never know whether the statement succeeds when TiDB doesn't respond to a `COMMIT` statement or an auto-commit DML statement. +- To support fail over, Session Manager should also be capable of reconnecting to a new Server without a fresh token. That means Session Manager may need to obtain user passwords in a certain way. + +## Future Work + +The most attractive scenario of routing client connections is multi-tenancy. + +These are some scenarios where multi-tenancy is useful: + +- Separate different businesses (or workloads) to achieve resource isolation. Each business is assigned a tenant. +- Multiple users share a TiDB cluster to save cost. + +![session manager multi-tenancy](./imgs/session-manager-multi-tenancy.png) + +In this architecture, the NLB is not aware of tenants. Each TiDB instance belongs to only one tenant to isolate resources. Thus, it's Session Manager's responsibility to route sessions to different TiDB instances. + +Session Manager can distinguish tenants by the SNI servers. diff --git a/docs/design/imgs/session-manager-component.png b/docs/design/imgs/session-manager-component.png new file mode 100644 index 0000000000000..b9940c2c391ff Binary files /dev/null and b/docs/design/imgs/session-manager-component.png differ diff --git a/docs/design/imgs/session-manager-deployment.png b/docs/design/imgs/session-manager-deployment.png new file mode 100644 index 0000000000000..9c64fe8b557e2 Binary files /dev/null and b/docs/design/imgs/session-manager-deployment.png differ diff --git a/docs/design/imgs/session-manager-health-check.png b/docs/design/imgs/session-manager-health-check.png new file mode 100644 index 0000000000000..72ec6885ef299 Binary files /dev/null and b/docs/design/imgs/session-manager-health-check.png differ diff --git a/docs/design/imgs/session-manager-multi-tenancy.png b/docs/design/imgs/session-manager-multi-tenancy.png new file mode 100644 index 0000000000000..ad40c2f78a919 Binary files /dev/null and b/docs/design/imgs/session-manager-multi-tenancy.png differ diff --git a/domain/BUILD.bazel b/domain/BUILD.bazel index d878a32ded8a6..ce69c035fd49a 100644 --- a/domain/BUILD.bazel +++ b/domain/BUILD.bazel @@ -36,6 +36,7 @@ go_library( "//parser/terror", "//privilege/privileges", "//sessionctx", + "//sessionctx/sessionstates", "//sessionctx/variable", "//statistics/handle", "//telemetry", @@ -50,6 +51,7 @@ go_library( "@com_github_ngaut_pools//:pools", "@com_github_pingcap_errors//:errors", "@com_github_pingcap_failpoint//:failpoint", + "@com_github_pingcap_log//:log", "@com_github_stretchr_testify//require", "@com_github_tikv_client_go_v2//oracle", "@com_github_tikv_client_go_v2//tikv", diff --git a/domain/db_test.go b/domain/db_test.go index cdd02c949404c..ff6e6b625788a 100644 --- a/domain/db_test.go +++ b/domain/db_test.go @@ -77,6 +77,8 @@ func TestNormalSessionPool(t *testing.T) { require.NoError(t, err1) conf := config.GetGlobalConfig() conf.Socket = "" + conf.Port = 0 + conf.Status.ReportStatus = false svr, err := server.NewServer(conf, nil) require.NoError(t, err) svr.SetDomain(domain) @@ -109,6 +111,8 @@ func TestAbnormalSessionPool(t *testing.T) { require.NoError(t, err1) conf := config.GetGlobalConfig() conf.Socket = "" + conf.Port = 0 + conf.Status.ReportStatus = false svr, err := server.NewServer(conf, nil) require.NoError(t, err) svr.SetDomain(domain) diff --git a/domain/domain.go b/domain/domain.go index 0a83758aae4f4..a8f35f8abdd05 100644 --- a/domain/domain.go +++ b/domain/domain.go @@ -27,6 +27,7 @@ import ( "github.com/ngaut/pools" "github.com/pingcap/errors" "github.com/pingcap/failpoint" + "github.com/pingcap/log" "github.com/pingcap/tidb/bindinfo" "github.com/pingcap/tidb/br/pkg/streamhelper" "github.com/pingcap/tidb/config" @@ -47,6 +48,7 @@ import ( "github.com/pingcap/tidb/parser/terror" "github.com/pingcap/tidb/privilege/privileges" "github.com/pingcap/tidb/sessionctx" + "github.com/pingcap/tidb/sessionctx/sessionstates" "github.com/pingcap/tidb/sessionctx/variable" "github.com/pingcap/tidb/statistics/handle" "github.com/pingcap/tidb/telemetry" @@ -124,7 +126,7 @@ func (do *Domain) EtcdClient() *clientv3.Client { func (do *Domain) loadInfoSchema(startTS uint64) (infoschema.InfoSchema, bool, int64, *transaction.RelatedSchemaChange, error) { snapshot := do.store.GetSnapshot(kv.NewVersion(startTS)) m := meta.NewSnapshotMeta(snapshot) - neededSchemaVersion, err := m.GetSchemaVersion() + neededSchemaVersion, err := m.GetSchemaVersionWithNonEmptyDiff() if err != nil { return nil, false, 0, nil, err } @@ -288,8 +290,9 @@ func (do *Domain) tryLoadSchemaDiffs(m *meta.Meta, usedVersion, newVersion int64 return nil, nil, err } if diff == nil { - // If diff is missing for any version between used and new version, we fall back to full reload. - return nil, nil, fmt.Errorf("failed to get schemadiff") + // Empty diff means the txn of generating schema version is committed, but the txn of `runDDLJob` is not or fail. + // It is safe to skip the empty diff because the infoschema is new enough and consistent. + continue } diffs = append(diffs, diff) } @@ -901,20 +904,21 @@ func (do *Domain) Init(ddlLease time.Duration, sysExecutorFactory func(*Domain) func (do *Domain) initLogBackup(ctx context.Context, pdClient pd.Client) error { cfg := config.GetGlobalConfig() - if cfg.LogBackup.Enabled { - env, err := streamhelper.TiDBEnv(pdClient, do.etcdClient, cfg) - if err != nil { - return err - } - adv := streamhelper.NewCheckpointAdvancer(env) - adv.UpdateConfig(cfg.LogBackup.Advancer) - do.logBackupAdvancer = streamhelper.NewAdvancerDaemon(adv, streamhelper.OwnerManagerForLogBackup(ctx, do.etcdClient)) - loop, err := do.logBackupAdvancer.Begin(ctx) - if err != nil { - return err - } - do.wg.Run(loop) + if pdClient == nil || do.etcdClient == nil { + log.Warn("pd / etcd client not provided, won't begin Advancer.") + return nil + } + env, err := streamhelper.TiDBEnv(pdClient, do.etcdClient, cfg) + if err != nil { + return err + } + adv := streamhelper.NewCheckpointAdvancer(env) + do.logBackupAdvancer = streamhelper.NewAdvancerDaemon(adv, streamhelper.OwnerManagerForLogBackup(ctx, do.etcdClient)) + loop, err := do.logBackupAdvancer.Begin(ctx) + if err != nil { + return err } + do.wg.Run(loop) return nil } @@ -1634,6 +1638,26 @@ func (do *Domain) NotifyUpdateSysVarCache() { } } +// LoadSigningCertLoop loads the signing cert periodically to make sure it's fresh new. +func (do *Domain) LoadSigningCertLoop() { + do.wg.Add(1) + go func() { + defer func() { + do.wg.Done() + logutil.BgLogger().Debug("loadSigningCertLoop exited.") + util.Recover(metrics.LabelDomain, "LoadSigningCertLoop", nil, false) + }() + for { + select { + case <-time.After(sessionstates.LoadCertInterval): + sessionstates.ReloadSigningCert() + case <-do.exit: + return + } + } + }() +} + // ServerID gets serverID. func (do *Domain) ServerID() uint64 { return atomic.LoadUint64(&do.serverID) diff --git a/domain/domain_test.go b/domain/domain_test.go index 98776381d1ae8..bbce2bcb23283 100644 --- a/domain/domain_test.go +++ b/domain/domain_test.go @@ -82,7 +82,9 @@ func TestInfo(t *testing.T) { ) ddl.DisableTiFlashPoll(dom.ddl) require.NoError(t, failpoint.Enable("github.com/pingcap/tidb/domain/MockReplaceDDL", `return(true)`)) + require.NoError(t, failpoint.Enable("github.com/pingcap/tidb/ddl/NoDDLDispatchLoop", `return(true)`)) require.NoError(t, dom.Init(ddlLease, sysMockFactory)) + require.NoError(t, failpoint.Disable("github.com/pingcap/tidb/ddl/NoDDLDispatchLoop")) require.NoError(t, failpoint.Disable("github.com/pingcap/tidb/domain/MockReplaceDDL")) // Test for GetServerInfo and GetServerInfoByID. diff --git a/domain/globalconfigsync/BUILD.bazel b/domain/globalconfigsync/BUILD.bazel index 9ee37c895beef..9c0507e6cb849 100644 --- a/domain/globalconfigsync/BUILD.bazel +++ b/domain/globalconfigsync/BUILD.bazel @@ -15,6 +15,7 @@ go_library( go_test( name = "globalconfigsync_test", srcs = ["globalconfig_test.go"], + flaky = True, deps = [ ":globalconfigsync", "//kv", diff --git a/domain/infosync/BUILD.bazel b/domain/infosync/BUILD.bazel index c92426d835c2f..061f3050995e2 100644 --- a/domain/infosync/BUILD.bazel +++ b/domain/infosync/BUILD.bazel @@ -31,14 +31,17 @@ go_library( "//util", "//util/codec", "//util/dbterror", + "//util/engine", "//util/hack", "//util/logutil", "//util/pdapi", "//util/versioninfo", + "@com_github_coreos_go_semver//semver", "@com_github_gorilla_mux//:mux", "@com_github_pingcap_errors//:errors", "@com_github_pingcap_failpoint//:failpoint", "@com_github_tikv_client_go_v2//oracle", + "@com_github_tikv_pd_client//:client", "@io_etcd_go_etcd_client_v3//:client", "@io_etcd_go_etcd_client_v3//concurrency", "@org_uber_go_zap//:zap", diff --git a/domain/infosync/info.go b/domain/infosync/info.go index 98e16e2c8c573..f30db9a53d986 100644 --- a/domain/infosync/info.go +++ b/domain/infosync/info.go @@ -22,12 +22,14 @@ import ( "net/http" "os" "path" + "regexp" "strconv" "strings" "sync" "sync/atomic" "time" + "github.com/coreos/go-semver/semver" "github.com/pingcap/errors" "github.com/pingcap/failpoint" "github.com/pingcap/tidb/config" @@ -46,11 +48,13 @@ import ( "github.com/pingcap/tidb/types" util2 "github.com/pingcap/tidb/util" "github.com/pingcap/tidb/util/dbterror" + "github.com/pingcap/tidb/util/engine" "github.com/pingcap/tidb/util/hack" "github.com/pingcap/tidb/util/logutil" "github.com/pingcap/tidb/util/pdapi" "github.com/pingcap/tidb/util/versioninfo" "github.com/tikv/client-go/v2/oracle" + pd "github.com/tikv/pd/client" clientv3 "go.etcd.io/etcd/client/v3" "go.etcd.io/etcd/client/v3/concurrency" "go.uber.org/zap" @@ -428,6 +432,43 @@ func doRequest(ctx context.Context, apiName string, addrs []string, route, metho return nil, err } +func removeVAndHash(v string) string { + if v == "" { + return v + } + versionHash := regexp.MustCompile("-[0-9]+-g[0-9a-f]{7,}(-dev)?") + v = versionHash.ReplaceAllLiteralString(v, "") + v = strings.TrimSuffix(v, "-dirty") + return strings.TrimPrefix(v, "v") +} + +// CheckTiKVVersion is used to check the tikv version. +func CheckTiKVVersion(store kv.Storage, minVersion semver.Version) error { + if store, ok := store.(kv.StorageWithPD); ok { + pdClient := store.GetPDClient() + stores, err := pdClient.GetAllStores(context.Background(), pd.WithExcludeTombstone()) + if err != nil { + return err + } + for _, s := range stores { + // empty version means the store is a mock store. Don't require tiflash version either. + if s.Version == "" || engine.IsTiFlash(s) { + continue + } + ver, err := semver.NewVersion(removeVAndHash(s.Version)) + if err != nil { + return errors.Trace(errors.Annotate(err, "invalid TiKV version")) + } + v := ver.Compare(minVersion) + if v < 0 { + return errors.New("TiKV version must greater than or equal to " + minVersion.String()) + } + } + } + + return nil +} + func doRequestWithFailpoint(req *http.Request) (resp *http.Response, err error) { fpEnabled := false failpoint.Inject("FailPlacement", func(val failpoint.Value) { diff --git a/dumpling/export/BUILD.bazel b/dumpling/export/BUILD.bazel index b12dc5f87246b..d6679b4e3e68e 100644 --- a/dumpling/export/BUILD.bazel +++ b/dumpling/export/BUILD.bazel @@ -88,6 +88,7 @@ go_test( ], data = glob(["**"]), embed = [":export"], + flaky = True, deps = [ "//br/pkg/storage", "//br/pkg/version", diff --git a/errno/BUILD.bazel b/errno/BUILD.bazel index 511fcf64502a6..e64ed05b62b0f 100644 --- a/errno/BUILD.bazel +++ b/errno/BUILD.bazel @@ -19,6 +19,7 @@ go_test( "main_test.go", ], embed = [":errno"], + flaky = True, deps = [ "//testkit/testsetup", "@com_github_stretchr_testify//assert", diff --git a/errors.toml b/errors.toml index 059be2fbffa09..5043c913d0147 100755 --- a/errors.toml +++ b/errors.toml @@ -181,6 +181,11 @@ error = ''' restore checksum mismatch ''' +["BR:Restore:ErrRestoreIncompatibleSys"] +error = ''' +incompatible system table +''' + ["BR:Restore:ErrRestoreInvalidBackup"] error = ''' invalid backup @@ -206,6 +211,11 @@ error = ''' region does not have peer ''' +["BR:Restore:ErrRestoreNotFreshCluster"] +error = ''' +cluster is not fresh +''' + ["BR:Restore:ErrRestoreRangeMismatch"] error = ''' restore range mismatch @@ -566,6 +576,11 @@ error = ''' Failed to read auto-random value from storage engine ''' +["ddl:0"] +error = ''' +TiFlash mode will take effect after at least one TiFlash replica is set for the table +''' + ["ddl:1025"] error = ''' Error on rename of '%-.210s' to '%-.210s' (errno: %d - %s) diff --git a/executor/BUILD.bazel b/executor/BUILD.bazel index 46b816e9128cc..676bb71c7e581 100644 --- a/executor/BUILD.bazel +++ b/executor/BUILD.bazel @@ -120,6 +120,7 @@ go_library( "//parser/model", "//parser/mysql", "//parser/terror", + "//parser/types", "//planner", "//planner/core", "//planner/util", @@ -209,12 +210,14 @@ go_library( "@com_github_pingcap_tipb//go-tipb", "@com_github_prometheus_client_golang//api", "@com_github_prometheus_client_golang//api/prometheus/v1:prometheus", + "@com_github_prometheus_client_golang//prometheus", "@com_github_prometheus_common//model", "@com_github_tikv_client_go_v2//error", "@com_github_tikv_client_go_v2//kv", "@com_github_tikv_client_go_v2//oracle", "@com_github_tikv_client_go_v2//tikv", "@com_github_tikv_client_go_v2//tikvrpc", + "@com_github_tikv_client_go_v2//txnkv", "@com_github_tikv_client_go_v2//txnkv/txnlock", "@com_github_tikv_client_go_v2//txnkv/txnsnapshot", "@com_github_tikv_client_go_v2//util", @@ -342,6 +345,7 @@ go_test( "//kv", "//meta", "//meta/autoid", + "//metrics", "//parser", "//parser/ast", "//parser/auth", @@ -396,6 +400,7 @@ go_test( "//util/mathutil", "//util/memory", "//util/mock", + "//util/paging", "//util/pdapi", "//util/plancodec", "//util/ranger", @@ -418,6 +423,8 @@ go_test( "@com_github_pingcap_sysutil//:sysutil", "@com_github_pingcap_tipb//go-binlog", "@com_github_pingcap_tipb//go-tipb", + "@com_github_prometheus_client_golang//prometheus", + "@com_github_prometheus_client_model//go", "@com_github_prometheus_common//model", "@com_github_stretchr_testify//require", "@com_github_tikv_client_go_v2//oracle", diff --git a/executor/adapter.go b/executor/adapter.go index 1ac4ecef0194d..1caf36fddd773 100644 --- a/executor/adapter.go +++ b/executor/adapter.go @@ -61,6 +61,7 @@ import ( "github.com/pingcap/tidb/util/stringutil" "github.com/pingcap/tidb/util/topsql" topsqlstate "github.com/pingcap/tidb/util/topsql/state" + "github.com/prometheus/client_golang/prometheus" tikverr "github.com/tikv/client-go/v2/error" "github.com/tikv/client-go/v2/oracle" "github.com/tikv/client-go/v2/util" @@ -148,7 +149,7 @@ func (a *recordSet) Next(ctx context.Context, req *chunk.Chunk) (err error) { logutil.Logger(ctx).Error("execute sql panic", zap.String("sql", a.stmt.GetTextToLog()), zap.Stack("stack")) }() - err = Next(ctx, a.executor, req) + err = a.stmt.next(ctx, a.executor, req) if err != nil { a.lastErr = err return err @@ -192,6 +193,18 @@ type TelemetryInfo struct { UseNonRecursive bool UseRecursive bool UseMultiSchemaChange bool + PartitionTelemetry *PartitionTelemetryInfo +} + +// PartitionTelemetryInfo records table partition telemetry information during execution. +type PartitionTelemetryInfo struct { + UseTablePartition bool + UseTablePartitionList bool + UseTablePartitionRange bool + UseTablePartitionHash bool + UseTablePartitionRangeColumns bool + UseTablePartitionListColumns bool + TablePartitionMaxPartitionsNum uint64 } // ExecStmt implements the sqlexec.Statement interface, it builds a planner.Plan to an sqlexec.Statement. @@ -216,6 +229,17 @@ type ExecStmt struct { retryCount uint retryStartTime time.Time + // Phase durations are splited into two parts: 1. trying to lock keys (but + // failed); 2. the final iteration of the retry loop. Here we use + // [2]time.Duration to record such info for each phase. The first duration + // is increased only within the current iteration. When we meet a + // pessimistic lock error and decide to retry, we add the first duration to + // the second and reset the first to 0 by calling `resetPhaseDurations`. + phaseBuildDurations [2]time.Duration + phaseOpenDurations [2]time.Duration + phaseNextDurations [2]time.Duration + phaseLockDurations [2]time.Duration + // OutputNames will be set if using cached plan OutputNames []*types.FieldName PsStmt *plannercore.CachedPrepareStmt @@ -332,6 +356,7 @@ func (a *ExecStmt) RebuildPlan(ctx context.Context) (int64, error) { } a.OutputNames = names a.Plan = p + a.Ctx.GetSessionVars().StmtCtx.SetPlan(p) return a.InfoSchema.SchemaMetaVersion(), nil } @@ -424,7 +449,7 @@ func (a *ExecStmt) Exec(ctx context.Context) (_ sqlexec.RecordSet, err error) { ctx = a.observeStmtBeginForTopSQL(ctx) breakpoint.Inject(a.Ctx, sessiontxn.BreakPointBeforeExecutorFirstRun) - if err = e.Open(ctx); err != nil { + if err = a.openExecutor(ctx, e); err != nil { terror.Call(e.Close) return nil, err } @@ -624,7 +649,7 @@ func (a *ExecStmt) runPessimisticSelectForUpdate(ctx context.Context, e Executor var err error req := newFirstChunk(e) for { - err = Next(ctx, e, req) + err = a.next(ctx, e, req) if err != nil { // Handle 'write conflict' error. break @@ -670,7 +695,7 @@ func (a *ExecStmt) handleNoDelayExecutor(ctx context.Context, e Executor) (sqlex } } - err = Next(ctx, e, newFirstChunk(e)) + err = a.next(ctx, e, newFirstChunk(e)) if err != nil { return nil, err } @@ -723,6 +748,7 @@ func (a *ExecStmt) handlePessimisticDML(ctx context.Context, e Executor) error { ctx = context.WithValue(ctx, util.LockKeysDetailCtxKey, &lockKeyStats) startLocking := time.Now() err = txn.LockKeys(ctx, lockCtx, keys...) + a.phaseLockDurations[0] += time.Since(startLocking) if lockKeyStats != nil { seVars.StmtCtx.MergeLockKeysExecDetails(lockKeyStats) } @@ -788,6 +814,8 @@ func (a *ExecStmt) handlePessimisticLockError(ctx context.Context, lockErr error breakpoint.Inject(a.Ctx, sessiontxn.BreakPointOnStmtRetryAfterLockError) + a.resetPhaseDurations() + e, err := a.buildExecutor() if err != nil { return nil, err @@ -801,7 +829,7 @@ func (a *ExecStmt) handlePessimisticLockError(ctx context.Context, lockErr error sessiontxn.RecordAssert(a.Ctx, "assertTxnManagerAfterPessimisticLockErrorRetry", true) }) - if err = e.Open(ctx); err != nil { + if err = a.openExecutor(ctx, e); err != nil { return nil, err } return e, nil @@ -815,6 +843,7 @@ type pessimisticTxn interface { // buildExecutor build an executor from plan, prepared statement may need additional procedure. func (a *ExecStmt) buildExecutor() (Executor, error) { + defer func(start time.Time) { a.phaseBuildDurations[0] += time.Since(start) }(time.Now()) ctx := a.Ctx stmtCtx := ctx.GetSessionVars().StmtCtx if _, ok := a.Plan.(*plannercore.Execute); !ok { @@ -847,6 +876,7 @@ func (a *ExecStmt) buildExecutor() (Executor, error) { a.OutputNames = executorExec.outputNames a.isPreparedStmt = true a.Plan = executorExec.plan + a.Ctx.GetSessionVars().StmtCtx.SetPlan(executorExec.plan) if executorExec.lowerPriority { ctx.GetSessionVars().StmtCtx.Priority = kv.PriorityLow } @@ -856,6 +886,31 @@ func (a *ExecStmt) buildExecutor() (Executor, error) { return e, nil } +func (a *ExecStmt) openExecutor(ctx context.Context, e Executor) error { + start := time.Now() + err := e.Open(ctx) + a.phaseOpenDurations[0] += time.Since(start) + return err +} + +func (a *ExecStmt) next(ctx context.Context, e Executor, req *chunk.Chunk) error { + start := time.Now() + err := Next(ctx, e, req) + a.phaseNextDurations[0] += time.Since(start) + return err +} + +func (a *ExecStmt) resetPhaseDurations() { + a.phaseBuildDurations[1] += a.phaseBuildDurations[0] + a.phaseBuildDurations[0] = 0 + a.phaseOpenDurations[1] += a.phaseOpenDurations[0] + a.phaseOpenDurations[0] = 0 + a.phaseNextDurations[1] += a.phaseNextDurations[0] + a.phaseNextDurations[0] = 0 + a.phaseLockDurations[1] += a.phaseLockDurations[0] + a.phaseLockDurations[0] = 0 +} + // QueryReplacer replaces new line and tab for grep result including query string. var QueryReplacer = strings.NewReplacer("\r", " ", "\n", " ", "\t", " ") @@ -894,12 +949,130 @@ func FormatSQL(sql string) stringutil.StringerFunc { } } +const ( + phaseBuildLocking = "build:locking" + phaseOpenLocking = "open:locking" + phaseNextLocking = "next:locking" + phaseLockLocking = "lock:locking" + phaseBuildFinal = "build:final" + phaseOpenFinal = "open:final" + phaseNextFinal = "next:final" + phaseLockFinal = "lock:final" + phaseCommitPrewrite = "commit:prewrite" + phaseCommitCommit = "commit:commit" + phaseCommitWaitCommitTS = "commit:wait:commit-ts" + phaseCommitWaitLatestTS = "commit:wait:latest-ts" + phaseCommitWaitLatch = "commit:wait:local-latch" + phaseCommitWaitBinlog = "commit:wait:prewrite-binlog" + phaseWriteResponse = "write-response" +) + var ( sessionExecuteRunDurationInternal = metrics.SessionExecuteRunDuration.WithLabelValues(metrics.LblInternal) sessionExecuteRunDurationGeneral = metrics.SessionExecuteRunDuration.WithLabelValues(metrics.LblGeneral) totalTiFlashQuerySuccCounter = metrics.TiFlashQueryTotalCounter.WithLabelValues("", metrics.LblOK) + + // pre-define observers for non-internal queries + execBuildLocking = metrics.ExecPhaseDuration.WithLabelValues(phaseBuildLocking, "0") + execOpenLocking = metrics.ExecPhaseDuration.WithLabelValues(phaseOpenLocking, "0") + execNextLocking = metrics.ExecPhaseDuration.WithLabelValues(phaseNextLocking, "0") + execLockLocking = metrics.ExecPhaseDuration.WithLabelValues(phaseLockLocking, "0") + execBuildFinal = metrics.ExecPhaseDuration.WithLabelValues(phaseBuildFinal, "0") + execOpenFinal = metrics.ExecPhaseDuration.WithLabelValues(phaseOpenFinal, "0") + execNextFinal = metrics.ExecPhaseDuration.WithLabelValues(phaseNextFinal, "0") + execLockFinal = metrics.ExecPhaseDuration.WithLabelValues(phaseLockFinal, "0") + execCommitPrewrite = metrics.ExecPhaseDuration.WithLabelValues(phaseCommitPrewrite, "0") + execCommitCommit = metrics.ExecPhaseDuration.WithLabelValues(phaseCommitCommit, "0") + execCommitWaitCommitTS = metrics.ExecPhaseDuration.WithLabelValues(phaseCommitWaitCommitTS, "0") + execCommitWaitLatestTS = metrics.ExecPhaseDuration.WithLabelValues(phaseCommitWaitLatestTS, "0") + execCommitWaitLatch = metrics.ExecPhaseDuration.WithLabelValues(phaseCommitWaitLatch, "0") + execCommitWaitBinlog = metrics.ExecPhaseDuration.WithLabelValues(phaseCommitWaitBinlog, "0") + execWriteResponse = metrics.ExecPhaseDuration.WithLabelValues(phaseWriteResponse, "0") ) +func getPhaseDurationObserver(phase string, internal bool) prometheus.Observer { + if internal { + return metrics.ExecPhaseDuration.WithLabelValues(phase, "1") + } + switch phase { + case phaseBuildLocking: + return execBuildLocking + case phaseOpenLocking: + return execOpenLocking + case phaseNextLocking: + return execNextLocking + case phaseLockLocking: + return execLockLocking + case phaseBuildFinal: + return execBuildFinal + case phaseOpenFinal: + return execOpenFinal + case phaseNextFinal: + return execNextFinal + case phaseLockFinal: + return execLockFinal + case phaseCommitPrewrite: + return execCommitPrewrite + case phaseCommitCommit: + return execCommitCommit + case phaseCommitWaitCommitTS: + return execCommitWaitCommitTS + case phaseCommitWaitLatestTS: + return execCommitWaitLatestTS + case phaseCommitWaitLatch: + return execCommitWaitLatch + case phaseCommitWaitBinlog: + return execCommitWaitBinlog + case phaseWriteResponse: + return execWriteResponse + default: + return metrics.ExecPhaseDuration.WithLabelValues(phase, "0") + } +} + +func (a *ExecStmt) observePhaseDurations(internal bool, commitDetails *util.CommitDetails) { + for _, it := range []struct { + duration time.Duration + phase string + }{ + {a.phaseBuildDurations[0], phaseBuildFinal}, + {a.phaseBuildDurations[1], phaseBuildLocking}, + {a.phaseOpenDurations[0], phaseOpenFinal}, + {a.phaseOpenDurations[1], phaseOpenLocking}, + {a.phaseNextDurations[0], phaseNextFinal}, + {a.phaseNextDurations[1], phaseNextLocking}, + {a.phaseLockDurations[0], phaseLockFinal}, + {a.phaseLockDurations[1], phaseLockLocking}, + } { + if it.duration > 0 { + getPhaseDurationObserver(it.phase, internal).Observe(it.duration.Seconds()) + } + } + if commitDetails != nil { + for _, it := range []struct { + duration time.Duration + phase string + }{ + {commitDetails.PrewriteTime, phaseCommitPrewrite}, + {commitDetails.CommitTime, phaseCommitCommit}, + {commitDetails.GetCommitTsTime, phaseCommitWaitCommitTS}, + {commitDetails.GetLatestTsTime, phaseCommitWaitLatestTS}, + {commitDetails.LocalLatchTime, phaseCommitWaitLatch}, + {commitDetails.WaitPrewriteBinlogTime, phaseCommitWaitBinlog}, + } { + if it.duration > 0 { + getPhaseDurationObserver(it.phase, internal).Observe(it.duration.Seconds()) + } + } + } + if stmtDetailsRaw := a.GoCtx.Value(execdetails.StmtExecDetailKey); stmtDetailsRaw != nil { + d := stmtDetailsRaw.(*execdetails.StmtExecDetails).WriteSQLRespDuration + if d > 0 { + getPhaseDurationObserver(phaseWriteResponse, internal).Observe(d.Seconds()) + } + } +} + // FinishExecuteStmt is used to record some information after `ExecStmt` execution finished: // 1. record slow log if needed. // 2. record summary statement. @@ -926,6 +1099,11 @@ func (a *ExecStmt) FinishExecuteStmt(txnTS uint64, err error, hasMoreResults boo a.Ctx.GetTxnWriteThroughputSLI().AddReadKeys(execDetail.ScanDetail.ProcessedKeys) } succ := err == nil + if a.Plan != nil { + // If this statement has a Plan, the StmtCtx.plan should have been set when it comes here, + // but we set it again in case we missed some code paths. + sessVars.StmtCtx.SetPlan(a.Plan) + } // `LowSlowQuery` and `SummaryStmt` must be called before recording `PrevStmt`. a.LogSlowQuery(txnTS, succ, hasMoreResults) a.SummaryStmt(succ) @@ -939,6 +1117,7 @@ func (a *ExecStmt) FinishExecuteStmt(txnTS uint64, err error, hasMoreResults boo } sessVars.PrevStmt = FormatSQL(a.GetTextToLog()) + a.observePhaseDurations(sessVars.InRestrictedSQL, execDetail.CommitDetail) executeDuration := time.Since(sessVars.StartTime) - sessVars.DurationCompile if sessVars.InRestrictedSQL { sessionExecuteRunDurationInternal.Observe(executeDuration.Seconds()) @@ -973,6 +1152,7 @@ func (a *ExecStmt) CloseRecordSet(txnStartTS uint64, lastErr error) { // LogSlowQuery is used to print the slow query in the log files. func (a *ExecStmt) LogSlowQuery(txnTS uint64, succ bool, hasMoreResults bool) { sessVars := a.Ctx.GetSessionVars() + stmtCtx := sessVars.StmtCtx level := log.GetLevel() cfg := config.GetGlobalConfig() costTime := time.Since(sessVars.StartTime) + sessVars.DurationParse @@ -984,15 +1164,15 @@ func (a *ExecStmt) LogSlowQuery(txnTS uint64, succ bool, hasMoreResults bool) { return } sql := FormatSQL(a.GetTextToLog()) - _, digest := sessVars.StmtCtx.SQLDigest() + _, digest := stmtCtx.SQLDigest() var indexNames string - if len(sessVars.StmtCtx.IndexNames) > 0 { + if len(stmtCtx.IndexNames) > 0 { // remove duplicate index. idxMap := make(map[string]struct{}) buf := bytes.NewBuffer(make([]byte, 0, 4)) buf.WriteByte('[') - for _, idx := range sessVars.StmtCtx.IndexNames { + for _, idx := range stmtCtx.IndexNames { _, ok := idxMap[idx] if ok { continue @@ -1006,6 +1186,7 @@ func (a *ExecStmt) LogSlowQuery(txnTS uint64, succ bool, hasMoreResults bool) { buf.WriteByte(']') indexNames = buf.String() } + flat := getFlatPlan(stmtCtx) var stmtDetail execdetails.StmtExecDetails stmtDetailRaw := a.GoCtx.Value(execdetails.StmtExecDetailKey) if stmtDetailRaw != nil { @@ -1016,12 +1197,21 @@ func (a *ExecStmt) LogSlowQuery(txnTS uint64, succ bool, hasMoreResults bool) { if tikvExecDetailRaw != nil { tikvExecDetail = *(tikvExecDetailRaw.(*util.ExecDetails)) } - execDetail := sessVars.StmtCtx.GetExecDetails() - copTaskInfo := sessVars.StmtCtx.CopTasksDetails() - statsInfos := plannercore.GetStatsInfo(a.Plan) - memMax := sessVars.StmtCtx.MemTracker.MaxConsumed() - diskMax := sessVars.StmtCtx.DiskTracker.MaxConsumed() - _, planDigest := getPlanDigest(sessVars.StmtCtx, a.Plan) + execDetail := stmtCtx.GetExecDetails() + copTaskInfo := stmtCtx.CopTasksDetails() + statsInfos := plannercore.GetStatsInfoFromFlatPlan(flat) + memMax := stmtCtx.MemTracker.MaxConsumed() + diskMax := stmtCtx.DiskTracker.MaxConsumed() + _, planDigest := getPlanDigest(stmtCtx) + + binaryPlan := "" + if variable.GenerateBinaryPlan.Load() { + binaryPlan = getBinaryPlan(a.Ctx) + binaryPlan = variable.SlowLogBinaryPlanPrefix + binaryPlan + variable.SlowLogPlanSuffix + } + + resultRows := GetResultRowsCount(stmtCtx, a.Plan) + slowItems := &variable.SlowQueryLogItems{ TxnTS: txnTS, SQL: sql.String(), @@ -1038,8 +1228,9 @@ func (a *ExecStmt) LogSlowQuery(txnTS uint64, succ bool, hasMoreResults bool) { MemMax: memMax, DiskMax: diskMax, Succ: succ, - Plan: getPlanTree(a.Ctx, a.Plan), + Plan: getPlanTree(stmtCtx), PlanDigest: planDigest.String(), + BinaryPlan: binaryPlan, Prepared: a.isPreparedStmt, HasMoreResults: hasMoreResults, PlanFromCache: sessVars.FoundInPlanCache, @@ -1049,10 +1240,10 @@ func (a *ExecStmt) LogSlowQuery(txnTS uint64, succ bool, hasMoreResults bool) { PDTotal: time.Duration(atomic.LoadInt64(&tikvExecDetail.WaitPDRespDuration)), BackoffTotal: time.Duration(atomic.LoadInt64(&tikvExecDetail.BackoffDuration)), WriteSQLRespTotal: stmtDetail.WriteSQLRespDuration, - ResultRows: GetResultRowsCount(a.Ctx, a.Plan), + ResultRows: resultRows, ExecRetryCount: a.retryCount, IsExplicitTxn: sessVars.TxnCtx.IsExplicit, - IsWriteCacheTable: sessVars.StmtCtx.WaitLockLeaseTime > 0, + IsWriteCacheTable: stmtCtx.WaitLockLeaseTime > 0, } if a.retryCount > 0 { slowItems.ExecRetryTime = costTime - sessVars.DurationParse - sessVars.DurationCompile - time.Since(a.retryStartTime) @@ -1080,15 +1271,15 @@ func (a *ExecStmt) LogSlowQuery(txnTS uint64, succ bool, hasMoreResults bool) { userString = sessVars.User.String() } var tableIDs string - if len(sessVars.StmtCtx.TableIDs) > 0 { - tableIDs = strings.Replace(fmt.Sprintf("%v", sessVars.StmtCtx.TableIDs), " ", ",", -1) + if len(stmtCtx.TableIDs) > 0 { + tableIDs = strings.Replace(fmt.Sprintf("%v", stmtCtx.TableIDs), " ", ",", -1) } domain.GetDomain(a.Ctx).LogSlowQuery(&domain.SlowQueryInfo{ SQL: sql.String(), Digest: digest.String(), Start: sessVars.StartTime, Duration: costTime, - Detail: sessVars.StmtCtx.GetExecDetails(), + Detail: stmtCtx.GetExecDetails(), Succ: succ, ConnID: sessVars.ConnectionID, TxnTS: txnTS, @@ -1102,8 +1293,8 @@ func (a *ExecStmt) LogSlowQuery(txnTS uint64, succ bool, hasMoreResults bool) { } // GetResultRowsCount gets the count of the statement result rows. -func GetResultRowsCount(sctx sessionctx.Context, p plannercore.Plan) int64 { - runtimeStatsColl := sctx.GetSessionVars().StmtCtx.RuntimeStatsColl +func GetResultRowsCount(stmtCtx *stmtctx.StatementContext, p plannercore.Plan) int64 { + runtimeStatsColl := stmtCtx.RuntimeStatsColl if runtimeStatsColl == nil { return 0 } @@ -1115,13 +1306,45 @@ func GetResultRowsCount(sctx sessionctx.Context, p plannercore.Plan) int64 { return rootStats.GetActRows() } +// getFlatPlan generates a FlatPhysicalPlan from the plan stored in stmtCtx.plan, +// then stores it in stmtCtx.flatPlan. +func getFlatPlan(stmtCtx *stmtctx.StatementContext) *plannercore.FlatPhysicalPlan { + pp := stmtCtx.GetPlan() + if pp == nil { + return nil + } + if flat := stmtCtx.GetFlatPlan(); flat != nil { + f := flat.(*plannercore.FlatPhysicalPlan) + return f + } + p := pp.(plannercore.Plan) + flat := plannercore.FlattenPhysicalPlan(p, false) + if flat != nil { + stmtCtx.SetFlatPlan(flat) + return flat + } + return nil +} + +func getBinaryPlan(sCtx sessionctx.Context) string { + stmtCtx := sCtx.GetSessionVars().StmtCtx + binaryPlan := stmtCtx.GetBinaryPlan() + if len(binaryPlan) > 0 { + return binaryPlan + } + flat := getFlatPlan(stmtCtx) + binaryPlan = plannercore.BinaryPlanStrFromFlatPlan(sCtx, flat) + stmtCtx.SetBinaryPlan(binaryPlan) + return binaryPlan +} + // getPlanTree will try to get the select plan tree if the plan is select or the select plan of delete/update/insert statement. -func getPlanTree(sctx sessionctx.Context, p plannercore.Plan) string { +func getPlanTree(stmtCtx *stmtctx.StatementContext) string { cfg := config.GetGlobalConfig() if atomic.LoadUint32(&cfg.Instance.RecordPlanInSlowLog) == 0 { return "" } - planTree, _ := getEncodedPlan(sctx, p, false) + planTree, _ := getEncodedPlan(stmtCtx, false) if len(planTree) == 0 { return planTree } @@ -1129,31 +1352,33 @@ func getPlanTree(sctx sessionctx.Context, p plannercore.Plan) string { } // getPlanDigest will try to get the select plan tree if the plan is select or the select plan of delete/update/insert statement. -func getPlanDigest(sc *stmtctx.StatementContext, p plannercore.Plan) (string, *parser.Digest) { - normalized, planDigest := sc.GetPlanDigest() +func getPlanDigest(stmtCtx *stmtctx.StatementContext) (string, *parser.Digest) { + normalized, planDigest := stmtCtx.GetPlanDigest() if len(normalized) > 0 && planDigest != nil { return normalized, planDigest } - normalized, planDigest = plannercore.NormalizePlan(p) - sc.SetPlanDigest(normalized, planDigest) + flat := getFlatPlan(stmtCtx) + normalized, planDigest = plannercore.NormalizeFlatPlan(flat) + stmtCtx.SetPlanDigest(normalized, planDigest) return normalized, planDigest } // getEncodedPlan gets the encoded plan, and generates the hint string if indicated. -func getEncodedPlan(sctx sessionctx.Context, p plannercore.Plan, genHint bool) (encodedPlan, hintStr string) { +func getEncodedPlan(stmtCtx *stmtctx.StatementContext, genHint bool) (encodedPlan, hintStr string) { var hintSet bool - encodedPlan = sctx.GetSessionVars().StmtCtx.GetEncodedPlan() - hintStr, hintSet = sctx.GetSessionVars().StmtCtx.GetPlanHint() + encodedPlan = stmtCtx.GetEncodedPlan() + hintStr, hintSet = stmtCtx.GetPlanHint() if len(encodedPlan) > 0 && (!genHint || hintSet) { return } + flat := getFlatPlan(stmtCtx) if len(encodedPlan) == 0 { - encodedPlan = plannercore.EncodePlan(p) - sctx.GetSessionVars().StmtCtx.SetEncodedPlan(encodedPlan) + encodedPlan = plannercore.EncodeFlatPlan(flat) + stmtCtx.SetEncodedPlan(encodedPlan) } if genHint { - hints := plannercore.GenHintsFromPhysicalPlan(p) - for _, tableHint := range sctx.GetSessionVars().StmtCtx.OriginalTableHints { + hints := plannercore.GenHintsFromFlatPlan(flat) + for _, tableHint := range stmtCtx.OriginalTableHints { // some hints like 'memory_quota' cannot be extracted from the PhysicalPlan directly, // so we have to iterate all hints from the customer and keep some other necessary hints. switch tableHint.HintName.L { @@ -1165,7 +1390,7 @@ func getEncodedPlan(sctx sessionctx.Context, p plannercore.Plan, genHint bool) ( } hintStr = hint.RestoreOptimizerHints(hints) - sctx.GetSessionVars().StmtCtx.SetPlanHint(hintStr) + stmtCtx.SetPlanHint(hintStr) } return } @@ -1209,7 +1434,14 @@ func (a *ExecStmt) SummaryStmt(succ bool) { // No need to encode every time, so encode lazily. planGenerator := func() (string, string) { - return getEncodedPlan(a.Ctx, a.Plan, !sessVars.InRestrictedSQL) + return getEncodedPlan(stmtCtx, !sessVars.InRestrictedSQL) + } + var binPlanGen func() string + if variable.GenerateBinaryPlan.Load() { + binPlanGen = func() string { + binPlan := getBinaryPlan(a.Ctx) + return binPlan + } } // Generating plan digest is slow, only generate it once if it's 'Point_Get'. // If it's a point get, different SQLs leads to different plans, so SQL digest @@ -1218,11 +1450,11 @@ func (a *ExecStmt) SummaryStmt(succ bool) { var planDigestGen func() string if a.Plan.TP() == plancodec.TypePointGet { planDigestGen = func() string { - _, planDigest := getPlanDigest(stmtCtx, a.Plan) + _, planDigest := getPlanDigest(stmtCtx) return planDigest.String() } } else { - _, tmp := getPlanDigest(stmtCtx, a.Plan) + _, tmp := getPlanDigest(stmtCtx) planDigest = tmp.String() } @@ -1250,37 +1482,41 @@ func (a *ExecStmt) SummaryStmt(succ bool) { execDetail.BackoffTime += stmtCtx.WaitLockLeaseTime execDetail.TimeDetail.WaitTime += stmtCtx.WaitLockLeaseTime } + + resultRows := GetResultRowsCount(stmtCtx, a.Plan) + stmtExecInfo := &stmtsummary.StmtExecInfo{ - SchemaName: strings.ToLower(sessVars.CurrentDB), - OriginalSQL: sql, - Charset: charset, - Collation: collation, - NormalizedSQL: normalizedSQL, - Digest: digest.String(), - PrevSQL: prevSQL, - PrevSQLDigest: prevSQLDigest, - PlanGenerator: planGenerator, - PlanDigest: planDigest, - PlanDigestGen: planDigestGen, - User: userString, - TotalLatency: costTime, - ParseLatency: sessVars.DurationParse, - CompileLatency: sessVars.DurationCompile, - StmtCtx: stmtCtx, - CopTasks: copTaskInfo, - ExecDetail: &execDetail, - MemMax: memMax, - DiskMax: diskMax, - StartTime: sessVars.StartTime, - IsInternal: sessVars.InRestrictedSQL, - Succeed: succ, - PlanInCache: sessVars.FoundInPlanCache, - PlanInBinding: sessVars.FoundInBinding, - ExecRetryCount: a.retryCount, - StmtExecDetails: stmtDetail, - ResultRows: GetResultRowsCount(a.Ctx, a.Plan), - TiKVExecDetails: tikvExecDetail, - Prepared: a.isPreparedStmt, + SchemaName: strings.ToLower(sessVars.CurrentDB), + OriginalSQL: sql, + Charset: charset, + Collation: collation, + NormalizedSQL: normalizedSQL, + Digest: digest.String(), + PrevSQL: prevSQL, + PrevSQLDigest: prevSQLDigest, + PlanGenerator: planGenerator, + BinaryPlanGenerator: binPlanGen, + PlanDigest: planDigest, + PlanDigestGen: planDigestGen, + User: userString, + TotalLatency: costTime, + ParseLatency: sessVars.DurationParse, + CompileLatency: sessVars.DurationCompile, + StmtCtx: stmtCtx, + CopTasks: copTaskInfo, + ExecDetail: &execDetail, + MemMax: memMax, + DiskMax: diskMax, + StartTime: sessVars.StartTime, + IsInternal: sessVars.InRestrictedSQL, + Succeed: succ, + PlanInCache: sessVars.FoundInPlanCache, + PlanInBinding: sessVars.FoundInBinding, + ExecRetryCount: a.retryCount, + StmtExecDetails: stmtDetail, + ResultRows: resultRows, + TiKVExecDetails: tikvExecDetail, + Prepared: a.isPreparedStmt, } if a.retryCount > 0 { stmtExecInfo.ExecRetryTime = costTime - sessVars.DurationParse - sessVars.DurationCompile - time.Since(a.retryStartTime) @@ -1306,7 +1542,7 @@ func (a *ExecStmt) observeStmtBeginForTopSQL(ctx context.Context) context.Contex vars := a.Ctx.GetSessionVars() sc := vars.StmtCtx normalizedSQL, sqlDigest := sc.SQLDigest() - normalizedPlan, planDigest := getPlanDigest(sc, a.Plan) + normalizedPlan, planDigest := getPlanDigest(sc) var sqlDigestByte, planDigestByte []byte if sqlDigest != nil { sqlDigestByte = sqlDigest.Bytes() diff --git a/executor/aggfuncs/BUILD.bazel b/executor/aggfuncs/BUILD.bazel index ea85b780540ec..1df448f91d8b7 100644 --- a/executor/aggfuncs/BUILD.bazel +++ b/executor/aggfuncs/BUILD.bazel @@ -86,6 +86,7 @@ go_test( "window_func_test.go", ], embed = [":aggfuncs"], + flaky = True, deps = [ "//expression", "//expression/aggregation", diff --git a/executor/aggregate.go b/executor/aggregate.go index 061e7bf788b09..9d37966fd499c 100644 --- a/executor/aggregate.go +++ b/executor/aggregate.go @@ -565,11 +565,24 @@ func getGroupKey(ctx sessionctx.Context, input *chunk.Chunk, groupKey [][]byte, for _, item := range groupByItems { tp := item.GetType() + buf, err := expression.GetColumn(tp.EvalType(), numRows) if err != nil { return nil, err } + // In strict sql mode like ‘STRICT_TRANS_TABLES’,can not insert an invalid enum value like 0. + // While in sql mode like '', can insert an invalid enum value like 0, + // then the enum value 0 will have the enum name '', which maybe conflict with user defined enum ''. + // Ref to issue #26885. + // This check is used to handle invalid enum name same with user defined enum name. + // Use enum value as groupKey instead of enum name. + if item.GetType().GetType() == mysql.TypeEnum { + newTp := *tp + newTp.AddFlag(mysql.EnumSetAsIntFlag) + tp = &newTp + } + if err := expression.EvalExpr(ctx, item, tp.EvalType(), input, buf); err != nil { expression.PutColumn(buf) return nil, err @@ -580,6 +593,7 @@ func getGroupKey(ctx sessionctx.Context, input *chunk.Chunk, groupKey [][]byte, newTp.SetFlen(0) tp = &newTp } + groupKey, err = codec.HashGroupKey(ctx.GetSessionVars().StmtCtx, input.NumRows(), buf, groupKey, tp) if err != nil { expression.PutColumn(buf) diff --git a/executor/aggregate_test.go b/executor/aggregate_test.go index e804f3069f445..f9ac9b8417822 100644 --- a/executor/aggregate_test.go +++ b/executor/aggregate_test.go @@ -1643,3 +1643,36 @@ func TestIssue27751(t *testing.T) { tk.MustQuery("select group_concat(nname order by 1 separator '#' ) from t;").Check(testkit.Rows("11#1")) tk.MustQuery("select group_concat(nname order by 1 desc separator '#' ) from t;").Check(testkit.Rows("33#2")) } + +func TestIssue26885(t *testing.T) { + store, clean := testkit.CreateMockStore(t) + defer clean() + tk := testkit.NewTestKit(t, store) + tk.MustExec(`use test`) + tk.MustExec(`SET sql_mode = 'NO_ENGINE_SUBSTITUTION';`) + tk.MustExec(`DROP TABLE IF EXISTS t1;`) + + tk.MustExec("CREATE TABLE t1 (c1 ENUM('a', '', 'b'));") + tk.MustExec("INSERT INTO t1 (c1) VALUES ('b');") + tk.MustExec("INSERT INTO t1 (c1) VALUES ('');") + tk.MustExec("INSERT INTO t1 (c1) VALUES ('a');") + tk.MustExec("INSERT INTO t1 (c1) VALUES ('');") + tk.MustExec("INSERT INTO t1 (c1) VALUES (0);") + tk.MustQuery("select * from t1").Check(testkit.Rows("b", "", "a", "", "")) + tk.MustQuery("select c1 + 0 from t1").Check(testkit.Rows("3", "2", "1", "2", "0")) + tk.MustQuery("SELECT c1 + 0, COUNT(c1) FROM t1 GROUP BY c1 order by c1;").Check(testkit.Rows("0 1", "1 1", "2 2", "3 1")) + + tk.MustExec("alter table t1 add index idx(c1); ") + tk.MustQuery("select c1 + 0 from t1").Check(testkit.Rows("3", "2", "1", "2", "0")) + tk.MustQuery("SELECT c1 + 0, COUNT(c1) FROM t1 GROUP BY c1 order by c1;").Check(testkit.Rows("0 1", "1 1", "2 2", "3 1")) + + tk.MustExec(`DROP TABLE IF EXISTS t1;`) + tk.MustExec("CREATE TABLE t1 (c1 ENUM('a', 'b', 'c'));") + tk.MustExec("INSERT INTO t1 (c1) VALUES ('b');") + tk.MustExec("INSERT INTO t1 (c1) VALUES ('a');") + tk.MustExec("INSERT INTO t1 (c1) VALUES ('b');") + tk.MustExec("INSERT INTO t1 (c1) VALUES ('c');") + tk.MustExec("INSERT INTO t1 (c1) VALUES (0);") + tk.MustQuery("select * from t1").Check(testkit.Rows("b", "a", "b", "c", "")) + tk.MustQuery("SELECT c1 + 0, COUNT(c1) FROM t1 GROUP BY c1 order by c1;").Check(testkit.Rows("0 1", "1 1", "2 2", "3 1")) +} diff --git a/executor/analyze_col.go b/executor/analyze_col.go index 1cd6a55c55b39..f27e6c5221da8 100644 --- a/executor/analyze_col.go +++ b/executor/analyze_col.go @@ -17,6 +17,7 @@ package executor import ( "context" "fmt" + "math" "strings" "sync/atomic" "time" @@ -107,11 +108,15 @@ func (e *AnalyzeColumnsExec) buildResp(ranges []*ranger.Range) (distsql.SelectRe var builder distsql.RequestBuilder reqBuilder := builder.SetHandleRangesForTables(e.ctx.GetSessionVars().StmtCtx, []int64{e.TableID.GetStatisticsID()}, e.handleCols != nil && !e.handleCols.IsInt(), ranges, nil) builder.SetResourceGroupTagger(e.ctx.GetSessionVars().StmtCtx.GetResourceGroupTagger()) + startTS := uint64(math.MaxUint64) + if e.ctx.GetSessionVars().EnableAnalyzeSnapshot { + startTS = e.snapshot + } // Always set KeepOrder of the request to be true, in order to compute // correct `correlation` of columns. kvReq, err := reqBuilder. SetAnalyzeRequest(e.analyzePB). - SetStartTS(e.snapshot). + SetStartTS(startTS). SetKeepOrder(true). SetConcurrency(e.concurrency). SetMemTracker(e.memTracker). @@ -257,7 +262,7 @@ func (e *AnalyzeColumnsExec) buildStats(ranges []*ranger.Range, needExtStats boo if e.StatsVersion < 2 { hg, err = statistics.BuildColumn(e.ctx, int64(e.opts[ast.AnalyzeOptNumBuckets]), col.ID, collectors[i], &col.FieldType) } else { - hg, topn, err = statistics.BuildHistAndTopN(e.ctx, int(e.opts[ast.AnalyzeOptNumBuckets]), int(e.opts[ast.AnalyzeOptNumTopN]), col.ID, collectors[i], &col.FieldType, true) + hg, topn, err = statistics.BuildHistAndTopN(e.ctx, int(e.opts[ast.AnalyzeOptNumBuckets]), int(e.opts[ast.AnalyzeOptNumTopN]), col.ID, collectors[i], &col.FieldType, true, nil) topNs = append(topNs, topn) } if err != nil { diff --git a/executor/analyze_col_v2.go b/executor/analyze_col_v2.go index 88b94e8ff1b16..68a02485c0048 100644 --- a/executor/analyze_col_v2.go +++ b/executor/analyze_col_v2.go @@ -126,7 +126,7 @@ func (e *AnalyzeColumnsExecV2) analyzeColumnsPushDownV2() *statistics.AnalyzeRes defer wg.Wait() count, hists, topns, fmSketches, extStats, err := e.buildSamplingStats(ranges, collExtStats, specialIndexesOffsets, idxNDVPushDownCh) if err != nil { - e.memTracker.Consume(-e.memTracker.BytesConsumed()) + e.memTracker.Release(e.memTracker.BytesConsumed()) return &statistics.AnalyzeResults{Err: err, Job: e.job} } cLen := len(e.analyzePB.ColReq.ColumnsInfo) @@ -258,6 +258,7 @@ func (e *AnalyzeColumnsExecV2) buildSamplingStats( rootRowCollector.MergeCollector(mergeResult.collector) e.memTracker.Consume(rootRowCollector.Base().MemSize - oldRootCollectorSize - mergeResult.collector.Base().MemSize) } + defer e.memTracker.Release(rootRowCollector.Base().MemSize) if err != nil { return 0, nil, nil, nil, nil, err } @@ -368,6 +369,15 @@ func (e *AnalyzeColumnsExecV2) buildSamplingStats( continue } } + defer func() { + totalSampleCollectorSize := int64(0) + for _, sampleCollector := range sampleCollectors { + if sampleCollector != nil { + totalSampleCollectorSize += sampleCollector.MemSize + } + } + e.memTracker.Release(totalSampleCollectorSize) + }() if err != nil { return 0, nil, nil, nil, nil, err } @@ -379,13 +389,6 @@ func (e *AnalyzeColumnsExecV2) buildSamplingStats( return 0, nil, nil, nil, nil, err } } - totalSampleCollectorSize := int64(0) - for _, sampleCollector := range sampleCollectors { - if sampleCollector != nil { - totalSampleCollectorSize += sampleCollector.MemSize - } - } - e.memTracker.Consume(-rootRowCollector.Base().MemSize - totalSampleCollectorSize) return } @@ -589,7 +592,8 @@ func (e *AnalyzeColumnsExecV2) subMergeWorker(resultCh chan<- *samplingMergeResu retCollector.MergeCollector(subCollector) newRetCollectorSize := retCollector.Base().MemSize subCollectorSize := subCollector.Base().MemSize - e.memTracker.Consume(newRetCollectorSize - dataSize - colRespSize - oldRetCollectorSize - subCollectorSize) + e.memTracker.Consume(newRetCollectorSize - oldRetCollectorSize - subCollectorSize) + e.memTracker.Release(dataSize + colRespSize) } resultCh <- &samplingMergeResult{collector: retCollector} } @@ -606,6 +610,10 @@ func (e *AnalyzeColumnsExecV2) subBuildWorker(resultCh chan error, taskCh chan * panic("failpoint triggered") }) colLen := len(e.colsInfo) + bufferedMemSize := int64(0) + bufferedReleaseSize := int64(0) + defer e.memTracker.Consume(bufferedMemSize) + defer e.memTracker.Release(bufferedReleaseSize) workLoop: for { select { @@ -625,7 +633,6 @@ workLoop: // consume mandatory memory at the beginning, including empty SampleItems of all sample rows, if exceeds, fast fail collectorMemSize := int64(sampleNum) * (8 + statistics.EmptySampleItemSize) e.memTracker.Consume(collectorMemSize) - bufferedMemSize := int64(0) var collator collate.Collator ft := e.colsInfo[task.slicePos].FieldType // When it's new collation data, we need to use its collate key instead of original value because only @@ -653,8 +660,11 @@ workLoop: Value: val, Ordinal: j, }) + // tmp memory usage + deltaSize := val.MemUsage() + 4 // content of SampleItem is copied + e.memTracker.BufferedConsume(&bufferedMemSize, deltaSize) + e.memTracker.BufferedRelease(&bufferedReleaseSize, deltaSize) } - e.memTracker.Consume(bufferedMemSize) collector = &statistics.SampleCollector{ Samples: sampleItems, NullCount: task.rootRowCollector.Base().NullCount[task.slicePos], @@ -703,6 +713,10 @@ workLoop: sampleItems = append(sampleItems, &statistics.SampleItem{ Value: types.NewBytesDatum(b), }) + // tmp memory usage + deltaSize := sampleItems[len(sampleItems)-1].Value.MemUsage() + e.memTracker.BufferedConsume(&bufferedMemSize, deltaSize) + e.memTracker.BufferedRelease(&bufferedReleaseSize, deltaSize) } collector = &statistics.SampleCollector{ Samples: sampleItems, @@ -718,10 +732,10 @@ workLoop: } releaseCollectorMemory := func() { if !task.isColumn { - e.memTracker.Consume(-collector.MemSize) + e.memTracker.Release(collector.MemSize) } } - hist, topn, err := statistics.BuildHistAndTopN(e.ctx, int(e.opts[ast.AnalyzeOptNumBuckets]), int(e.opts[ast.AnalyzeOptNumTopN]), task.id, collector, task.tp, task.isColumn) + hist, topn, err := statistics.BuildHistAndTopN(e.ctx, int(e.opts[ast.AnalyzeOptNumBuckets]), int(e.opts[ast.AnalyzeOptNumTopN]), task.id, collector, task.tp, task.isColumn, e.memTracker) if err != nil { resultCh <- err releaseCollectorMemory() diff --git a/executor/analyze_fast.go b/executor/analyze_fast.go index 8af6486ba2ca1..5917a5b336ae0 100644 --- a/executor/analyze_fast.go +++ b/executor/analyze_fast.go @@ -191,7 +191,11 @@ func (e *AnalyzeFastExec) activateTxnForRowCount() (rollbackFn func() error, err } } txn.SetOption(kv.Priority, kv.PriorityLow) - txn.SetOption(kv.IsolationLevel, kv.SI) + isoLevel := kv.RC + if e.ctx.GetSessionVars().EnableAnalyzeSnapshot { + isoLevel = kv.SI + } + txn.SetOption(kv.IsolationLevel, isoLevel) txn.SetOption(kv.NotFillCache, true) return rollbackFn, nil } @@ -389,8 +393,13 @@ func (e *AnalyzeFastExec) handleScanIter(iter kv.Iterator) (scanKeysSize int, er } func (e *AnalyzeFastExec) handleScanTasks(bo *tikv.Backoffer) (keysSize int, err error) { - snapshot := e.ctx.GetStore().GetSnapshot(kv.NewVersion(e.snapshot)) - snapshot.SetOption(kv.IsolationLevel, kv.SI) + var snapshot kv.Snapshot + if e.ctx.GetSessionVars().EnableAnalyzeSnapshot { + snapshot = e.ctx.GetStore().GetSnapshot(kv.NewVersion(e.snapshot)) + snapshot.SetOption(kv.IsolationLevel, kv.SI) + } else { + snapshot = e.ctx.GetStore().GetSnapshot(kv.MaxVersion) + } if e.ctx.GetSessionVars().GetReplicaRead().IsFollowerRead() { snapshot.SetOption(kv.ReplicaRead, kv.ReplicaReadFollower) } @@ -411,9 +420,15 @@ func (e *AnalyzeFastExec) handleScanTasks(bo *tikv.Backoffer) (keysSize int, err func (e *AnalyzeFastExec) handleSampTasks(workID int, step uint32, err *error) { defer e.wg.Done() - snapshot := e.ctx.GetStore().GetSnapshot(kv.NewVersion(e.snapshot)) + var snapshot kv.Snapshot + if e.ctx.GetSessionVars().EnableAnalyzeSnapshot { + snapshot = e.ctx.GetStore().GetSnapshot(kv.NewVersion(e.snapshot)) + snapshot.SetOption(kv.IsolationLevel, kv.SI) + } else { + snapshot = e.ctx.GetStore().GetSnapshot(kv.MaxVersion) + snapshot.SetOption(kv.IsolationLevel, kv.RC) + } snapshot.SetOption(kv.NotFillCache, true) - snapshot.SetOption(kv.IsolationLevel, kv.SI) snapshot.SetOption(kv.Priority, kv.PriorityLow) setOptionForTopSQL(e.ctx.GetSessionVars().StmtCtx, snapshot) readReplicaType := e.ctx.GetSessionVars().GetReplicaRead() diff --git a/executor/analyze_idx.go b/executor/analyze_idx.go index 12a47da479481..5726f0846f3fa 100644 --- a/executor/analyze_idx.go +++ b/executor/analyze_idx.go @@ -16,6 +16,7 @@ package executor import ( "context" + "math" "sync/atomic" "time" @@ -142,9 +143,13 @@ func (e *AnalyzeIndexExec) fetchAnalyzeResult(ranges []*ranger.Range, isNullRang kvReqBuilder = builder.SetIndexRangesForTables(e.ctx.GetSessionVars().StmtCtx, []int64{e.tableID.GetStatisticsID()}, e.idxInfo.ID, ranges) } kvReqBuilder.SetResourceGroupTagger(e.ctx.GetSessionVars().StmtCtx.GetResourceGroupTagger()) + startTS := uint64(math.MaxUint64) + if e.ctx.GetSessionVars().EnableAnalyzeSnapshot { + startTS = e.snapshot + } kvReq, err := kvReqBuilder. SetAnalyzeRequest(e.analyzePB). - SetStartTS(e.snapshot). + SetStartTS(startTS). SetKeepOrder(true). SetConcurrency(e.concurrency). Build() diff --git a/executor/analyzetest/analyze_test.go b/executor/analyzetest/analyze_test.go index 5a12296d0643a..8b9f9b593394b 100644 --- a/executor/analyzetest/analyze_test.go +++ b/executor/analyzetest/analyze_test.go @@ -85,10 +85,10 @@ PARTITION BY RANGE ( a ) ( require.Len(t, statsTbl.Columns, 3) require.Len(t, statsTbl.Indices, 1) for _, col := range statsTbl.Columns { - require.Greater(t, col.Len()+col.Num(), 0) + require.Greater(t, col.Len()+col.TopN.Num(), 0) } for _, idx := range statsTbl.Indices { - require.Greater(t, idx.Len()+idx.Num(), 0) + require.Greater(t, idx.Len()+idx.TopN.Num(), 0) } } @@ -583,53 +583,67 @@ func TestAnalyzeFullSamplingOnIndexWithVirtualColumnOrPrefixColumn(t *testing.T) tk.MustQuery("show stats_topn where table_name = 'sampling_index_prefix_col' and column_name = 'idx'").Check(testkit.Rows("test sampling_index_prefix_col idx 1 a 3")) } -func TestSnapshotAnalyze(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() - tk := testkit.NewTestKit(t, store) +func TestSnapshotAnalyzeAndMaxTSAnalyze(t *testing.T) { + for _, analyzeSnapshot := range []bool{true, false} { + store, clean := testkit.CreateMockStore(t) + defer clean() + tk := testkit.NewTestKit(t, store) - tk.MustExec("use test") - tk.MustExec("drop table if exists t") - tk.MustExec("create table t(a int, index index_a(a))") - is := tk.Session().(sessionctx.Context).GetInfoSchema().(infoschema.InfoSchema) - tbl, err := is.TableByName(model.NewCIStr("test"), model.NewCIStr("t")) - require.NoError(t, err) - tblInfo := tbl.Meta() - tid := tblInfo.ID - tk.MustExec("insert into t values(1),(1),(1)") - tk.MustExec("begin") - txn, err := tk.Session().Txn(false) - require.NoError(t, err) - startTS1 := txn.StartTS() - tk.MustExec("commit") - tk.MustExec("insert into t values(2),(2),(2)") - tk.MustExec("begin") - txn, err = tk.Session().Txn(false) - require.NoError(t, err) - startTS2 := txn.StartTS() - tk.MustExec("commit") - require.NoError(t, failpoint.Enable("github.com/pingcap/tidb/executor/injectAnalyzeSnapshot", fmt.Sprintf("return(%d)", startTS1))) - tk.MustExec("analyze table t") - rows := tk.MustQuery(fmt.Sprintf("select count, snapshot from mysql.stats_meta where table_id = %d", tid)).Rows() - require.Len(t, rows, 1) - require.Equal(t, "3", rows[0][0]) - s1Str := rows[0][1].(string) - require.NoError(t, failpoint.Enable("github.com/pingcap/tidb/executor/injectAnalyzeSnapshot", fmt.Sprintf("return(%d)", startTS2))) - tk.MustExec("analyze table t") - rows = tk.MustQuery(fmt.Sprintf("select count, snapshot from mysql.stats_meta where table_id = %d", tid)).Rows() - require.Len(t, rows, 1) - require.Equal(t, "6", rows[0][0]) - s2Str := rows[0][1].(string) - require.True(t, s1Str != s2Str) - tk.MustExec("set @@session.tidb_analyze_version = 2") - require.NoError(t, failpoint.Enable("github.com/pingcap/tidb/executor/injectAnalyzeSnapshot", fmt.Sprintf("return(%d)", startTS1))) - tk.MustExec("analyze table t") - rows = tk.MustQuery(fmt.Sprintf("select count, snapshot from mysql.stats_meta where table_id = %d", tid)).Rows() - require.Len(t, rows, 1) - require.Equal(t, "6", rows[0][0]) - s3Str := rows[0][1].(string) - require.Equal(t, s2Str, s3Str) - require.NoError(t, failpoint.Disable("github.com/pingcap/tidb/executor/injectAnalyzeSnapshot")) + tk.MustExec("use test") + if analyzeSnapshot { + tk.MustExec("set @@session.tidb_enable_analyze_snapshot = on") + } else { + tk.MustExec("set @@session.tidb_enable_analyze_snapshot = off") + } + tk.MustExec("drop table if exists t") + tk.MustExec("create table t(a int, index index_a(a))") + is := tk.Session().(sessionctx.Context).GetInfoSchema().(infoschema.InfoSchema) + tbl, err := is.TableByName(model.NewCIStr("test"), model.NewCIStr("t")) + require.NoError(t, err) + tblInfo := tbl.Meta() + tid := tblInfo.ID + tk.MustExec("insert into t values(1),(1),(1)") + tk.MustExec("begin") + txn, err := tk.Session().Txn(false) + require.NoError(t, err) + startTS1 := txn.StartTS() + tk.MustExec("commit") + tk.MustExec("insert into t values(2),(2),(2)") + tk.MustExec("begin") + txn, err = tk.Session().Txn(false) + require.NoError(t, err) + startTS2 := txn.StartTS() + tk.MustExec("commit") + require.NoError(t, failpoint.Enable("github.com/pingcap/tidb/executor/injectAnalyzeSnapshot", fmt.Sprintf("return(%d)", startTS1))) + tk.MustExec("analyze table t") + rows := tk.MustQuery(fmt.Sprintf("select count, snapshot from mysql.stats_meta where table_id = %d", tid)).Rows() + require.Len(t, rows, 1) + if analyzeSnapshot { + // Analyze cannot see the second insert if it reads the snapshot. + require.Equal(t, "3", rows[0][0]) + } else { + // Analyze can see the second insert if it reads the latest data. + require.Equal(t, "6", rows[0][0]) + } + s1Str := rows[0][1].(string) + require.NoError(t, failpoint.Enable("github.com/pingcap/tidb/executor/injectAnalyzeSnapshot", fmt.Sprintf("return(%d)", startTS2))) + tk.MustExec("analyze table t") + rows = tk.MustQuery(fmt.Sprintf("select count, snapshot from mysql.stats_meta where table_id = %d", tid)).Rows() + require.Len(t, rows, 1) + require.Equal(t, "6", rows[0][0]) + s2Str := rows[0][1].(string) + require.True(t, s1Str != s2Str) + tk.MustExec("set @@session.tidb_analyze_version = 2") + require.NoError(t, failpoint.Enable("github.com/pingcap/tidb/executor/injectAnalyzeSnapshot", fmt.Sprintf("return(%d)", startTS1))) + tk.MustExec("analyze table t") + rows = tk.MustQuery(fmt.Sprintf("select count, snapshot from mysql.stats_meta where table_id = %d", tid)).Rows() + require.Len(t, rows, 1) + require.Equal(t, "6", rows[0][0]) + s3Str := rows[0][1].(string) + // The third analyze doesn't write results into mysql.stats_xxx because its snapshot is smaller than the second analyze. + require.Equal(t, s2Str, s3Str) + require.NoError(t, failpoint.Disable("github.com/pingcap/tidb/executor/injectAnalyzeSnapshot")) + } } func TestAdjustSampleRateNote(t *testing.T) { @@ -3091,3 +3105,65 @@ PARTITION BY RANGE ( a ) ( tbl := h.GetTableStats(tableInfo) require.Equal(t, int64(6), tbl.Columns[tableInfo.Columns[0].ID].Histogram.NDV) } + +func TestAutoAnalyzeAwareGlobalVariableChange(t *testing.T) { + store, dom, clean := testkit.CreateMockStoreAndDomain(t) + defer clean() + tk := testkit.NewTestKit(t, store) + tk.MustExec("use test") + tk.MustQuery("select @@global.tidb_enable_analyze_snapshot").Check(testkit.Rows("0")) + // We want to test that HandleAutoAnalyze is aware of setting @@global.tidb_enable_analyze_snapshot to 1 and reads data from snapshot. + tk.MustExec("set @@global.tidb_enable_analyze_snapshot = 1") + tk.MustExec("set @@global.tidb_analyze_version = 2") + tk.MustExec("create table t(a int)") + h := dom.StatsHandle() + require.NoError(t, h.HandleDDLEvent(<-h.DDLEventCh())) + tbl, err := dom.InfoSchema().TableByName(model.NewCIStr("test"), model.NewCIStr("t")) + require.NoError(t, err) + tid := tbl.Meta().ID + tk.MustExec("insert into t values(1),(2),(3)") + require.NoError(t, h.DumpStatsDeltaToKV(handle.DumpAll)) + err = h.Update(dom.InfoSchema()) + require.NoError(t, err) + tk.MustExec("analyze table t") + tk.MustQuery(fmt.Sprintf("select count, modify_count from mysql.stats_meta where table_id = %d", tid)).Check(testkit.Rows( + "3 0", + )) + + originalVal1 := handle.AutoAnalyzeMinCnt + originalVal2 := tk.MustQuery("select @@global.tidb_auto_analyze_ratio").Rows()[0][0].(string) + handle.AutoAnalyzeMinCnt = 0 + tk.MustExec("set global tidb_auto_analyze_ratio = 0.001") + defer func() { + handle.AutoAnalyzeMinCnt = originalVal1 + tk.MustExec(fmt.Sprintf("set global tidb_auto_analyze_ratio = %v", originalVal2)) + }() + + tk.MustExec("begin") + txn, err := tk.Session().Txn(false) + require.NoError(t, err) + startTS := txn.StartTS() + tk.MustExec("commit") + + tk.MustExec("insert into t values(4),(5),(6)") + require.NoError(t, h.DumpStatsDeltaToKV(handle.DumpAll)) + err = h.Update(dom.InfoSchema()) + require.NoError(t, err) + + // Simulate that the analyze would start before and finish after the second insert. + require.NoError(t, failpoint.Enable("github.com/pingcap/tidb/executor/injectAnalyzeSnapshot", fmt.Sprintf("return(%d)", startTS))) + require.NoError(t, failpoint.Enable("github.com/pingcap/tidb/executor/injectBaseCount", "return(3)")) + require.NoError(t, failpoint.Enable("github.com/pingcap/tidb/executor/injectBaseModifyCount", "return(0)")) + require.True(t, h.HandleAutoAnalyze(dom.InfoSchema())) + // Check the count / modify_count changes during the analyze are not lost. + tk.MustQuery(fmt.Sprintf("select count, modify_count from mysql.stats_meta where table_id = %d", tid)).Check(testkit.Rows( + "6 3", + )) + // Check the histogram is correct for the snapshot analyze. + tk.MustQuery(fmt.Sprintf("select distinct_count from mysql.stats_histograms where table_id = %d", tid)).Check(testkit.Rows( + "3", + )) + require.NoError(t, failpoint.Disable("github.com/pingcap/tidb/executor/injectAnalyzeSnapshot")) + require.NoError(t, failpoint.Disable("github.com/pingcap/tidb/executor/injectBaseCount")) + require.NoError(t, failpoint.Disable("github.com/pingcap/tidb/executor/injectBaseModifyCount")) +} diff --git a/executor/brie.go b/executor/brie.go index 6dd1d9053a4ac..690497da83b54 100644 --- a/executor/brie.go +++ b/executor/brie.go @@ -448,7 +448,12 @@ type tidbGlueSession struct { info *brieTaskInfo } -// BootstrapSession implements glue.Glue +// GetSessionCtx implements glue.Glue +func (gs *tidbGlueSession) GetSessionCtx() sessionctx.Context { + return gs.se +} + +// GetDomain implements glue.Glue func (gs *tidbGlueSession) GetDomain(store kv.Storage) (*domain.Domain, error) { return domain.GetDomain(gs.se), nil } diff --git a/executor/builder.go b/executor/builder.go index 64eef464bd384..3f4939f732f21 100644 --- a/executor/builder.go +++ b/executor/builder.go @@ -68,7 +68,9 @@ import ( "github.com/pingcap/tidb/util/sqlexec" "github.com/pingcap/tidb/util/timeutil" "github.com/pingcap/tipb/go-tipb" + clientkv "github.com/tikv/client-go/v2/kv" "github.com/tikv/client-go/v2/tikv" + "github.com/tikv/client-go/v2/txnkv" "github.com/tikv/client-go/v2/txnkv/txnsnapshot" "golang.org/x/exp/slices" ) @@ -988,7 +990,47 @@ func (b *executorBuilder) buildDDL(v *plannercore.DDL) Executor { if len(v.Statement.(*ast.AlterTableStmt).Specs) > 1 && b.Ti != nil { b.Ti.UseMultiSchemaChange = true } + case *ast.CreateTableStmt: + stmt := v.Statement.(*ast.CreateTableStmt) + if stmt != nil && stmt.Partition != nil { + if strings.EqualFold(b.ctx.GetSessionVars().EnableTablePartition, "OFF") { + break + } + + s := stmt.Partition + if b.Ti.PartitionTelemetry == nil { + b.Ti.PartitionTelemetry = &PartitionTelemetryInfo{} + } + b.Ti.PartitionTelemetry.TablePartitionMaxPartitionsNum = mathutil.Max(s.Num, uint64(len(s.Definitions))) + b.Ti.PartitionTelemetry.UseTablePartition = true + + switch s.Tp { + case model.PartitionTypeRange: + if s.Sub == nil { + if len(s.ColumnNames) > 0 { + b.Ti.PartitionTelemetry.UseTablePartitionRangeColumns = true + } else { + b.Ti.PartitionTelemetry.UseTablePartitionRange = true + } + } + case model.PartitionTypeHash: + if !s.Linear && s.Sub == nil { + b.Ti.PartitionTelemetry.UseTablePartitionHash = true + } + case model.PartitionTypeList: + enable := b.ctx.GetSessionVars().EnableListTablePartition + if s.Sub == nil && enable { + if len(s.ColumnNames) > 0 { + b.Ti.PartitionTelemetry.UseTablePartitionListColumns = true + } else { + b.Ti.PartitionTelemetry.UseTablePartitionList = true + } + } + + } + } } + e := &DDLExec{ baseExecutor: newBaseExecutor(b.ctx, v.Schema(), v.ID()), stmt: v.Statement, @@ -3124,6 +3166,7 @@ func buildNoRangeTableReader(b *executorBuilder, v *plannercore.PhysicalTableRea txnScope: b.txnScope, readReplicaScope: b.readReplicaScope, isStaleness: b.isStaleness, + netDataSize: v.GetNetDataSize(), table: tbl, keepOrder: ts.KeepOrder, desc: ts.Desc, @@ -3189,7 +3232,7 @@ func (b *executorBuilder) buildTableReader(v *plannercore.PhysicalTableReader) E return nil } failpoint.Inject("checkUseMPP", func(val failpoint.Value) { - if val.(bool) != useMPPExecution(b.ctx, v) { + if !b.ctx.GetSessionVars().InRestrictedSQL && val.(bool) != useMPPExecution(b.ctx, v) { if val.(bool) { b.err = errors.New("expect mpp but not used") } else { @@ -3409,6 +3452,7 @@ func buildNoRangeIndexReader(b *executorBuilder, v *plannercore.PhysicalIndexRea txnScope: b.txnScope, readReplicaScope: b.readReplicaScope, isStaleness: b.isStaleness, + netDataSize: v.GetNetDataSize(), physicalTableID: physicalTableID, table: tbl, index: is.Index, @@ -3586,6 +3630,8 @@ func buildNoRangeIndexLookUpReader(b *executorBuilder, v *plannercore.PhysicalIn idxPlans: v.IndexPlans, tblPlans: v.TablePlans, PushedLimit: v.PushedLimit, + idxNetDataSize: v.GetAvgTableRowSize(), + avgRowSize: v.GetAvgTableRowSize(), } if containsLimit(indexReq.Executors) { @@ -3675,6 +3721,7 @@ func (b *executorBuilder) buildIndexLookUpReader(v *plannercore.PhysicalIndexLoo func buildNoRangeIndexMergeReader(b *executorBuilder, v *plannercore.PhysicalIndexMergeReader) (*IndexMergeReaderExecutor, error) { partialPlanCount := len(v.PartialPlans) partialReqs := make([]*tipb.DAGRequest, 0, partialPlanCount) + partialDataSizes := make([]float64, 0, partialPlanCount) indexes := make([]*model.IndexInfo, 0, partialPlanCount) descs := make([]bool, 0, partialPlanCount) feedbacks := make([]*statistics.QueryFeedback, 0, partialPlanCount) @@ -3707,6 +3754,7 @@ func buildNoRangeIndexMergeReader(b *executorBuilder, v *plannercore.PhysicalInd partialReqs = append(partialReqs, tempReq) isCorColInPartialFilters = append(isCorColInPartialFilters, b.corColInDistPlan(v.PartialPlans[i])) isCorColInPartialAccess = append(isCorColInPartialAccess, b.corColInAccess(v.PartialPlans[i][0])) + partialDataSizes = append(partialDataSizes, v.GetPartialReaderNetDataSize(v.PartialPlans[i][0])) } tableReq, tblInfo, err := buildTableReq(b, v.Schema().Len(), v.TablePlans) isCorColInTableFilter := b.corColInDistPlan(v.TablePlans) @@ -3735,6 +3783,8 @@ func buildNoRangeIndexMergeReader(b *executorBuilder, v *plannercore.PhysicalInd columns: ts.Columns, partialPlans: v.PartialPlans, tblPlans: v.TablePlans, + partialNetDataSizes: partialDataSizes, + dataAvgRowSize: v.GetAvgTableRowSize(), dataReaderBuilder: readerBuilder, feedbacks: feedbacks, paging: paging, @@ -4060,6 +4110,27 @@ func (h kvRangeBuilderFromRangeAndPartition) buildKeyRange(ranges []*ranger.Rang return ret, nil } +// newClosestReadAdjuster let the request be sent to closest replica(within the same zone) +// if response size exceeds certain threshold. +func newClosestReadAdjuster(ctx sessionctx.Context, req *kv.Request, netDataSize float64) kv.CoprRequestAdjuster { + if req.ReplicaRead != kv.ReplicaReadClosestAdaptive { + return nil + } + return func(req *kv.Request, copTaskCount int) bool { + // copTaskCount is the number of coprocessor requests + if int64(netDataSize/float64(copTaskCount)) >= ctx.GetSessionVars().ReplicaClosestReadThreshold { + req.MatchStoreLabels = append(req.MatchStoreLabels, &metapb.StoreLabel{ + Key: placement.DCLabelKey, + Value: config.GetTxnScopeFromConfig(), + }) + return true + } + // reset to read from leader when the data size is small. + req.ReplicaRead = kv.ReplicaReadLeader + return false + } +} + func (builder *dataReaderBuilder) buildTableReaderBase(ctx context.Context, e *TableReaderExecutor, reqBuilderWithRange distsql.RequestBuilder) (*TableReaderExecutor, error) { startTS, err := builder.getSnapshotTS() if err != nil { @@ -4075,6 +4146,7 @@ func (builder *dataReaderBuilder) buildTableReaderBase(ctx context.Context, e *T SetIsStaleness(e.isStaleness). SetFromSessionVars(e.ctx.GetSessionVars()). SetFromInfoSchema(e.ctx.GetInfoSchema()). + SetClosestReplicaReadAdjuster(newClosestReadAdjuster(e.ctx, &reqBuilderWithRange.Request, e.netDataSize)). SetPaging(e.paging). Build() if err != nil { @@ -4104,6 +4176,7 @@ func (builder *dataReaderBuilder) buildTableReaderFromHandles(ctx context.Contex b.SetTableHandles(getPhysicalTableID(e.table), handles) } } + return builder.buildTableReaderBase(ctx, e, b) } @@ -4631,6 +4704,9 @@ func (b *executorBuilder) buildBatchPointGet(plan *plannercore.BatchPointGetPlan b.err = err return nil } + if e.ctx.GetSessionVars().GetReplicaRead() == kv.ReplicaReadClosestAdaptive { + e.snapshot.SetOption(kv.ReplicaReadAdjuster, newReplicaReadAdjuster(e.ctx, plan.GetAvgRowSize())) + } if e.runtimeStats != nil { snapshotStats := &txnsnapshot.SnapshotRuntimeStats{} e.stats = &runtimeStatsWithSnapshot{ @@ -4718,6 +4794,21 @@ func (b *executorBuilder) buildBatchPointGet(plan *plannercore.BatchPointGetPlan return e } +func newReplicaReadAdjuster(ctx sessionctx.Context, avgRowSize float64) txnkv.ReplicaReadAdjuster { + return func(count int) (tikv.StoreSelectorOption, clientkv.ReplicaReadType) { + if int64(avgRowSize*float64(count)) >= ctx.GetSessionVars().ReplicaClosestReadThreshold { + return tikv.WithMatchLabels([]*metapb.StoreLabel{ + { + Key: placement.DCLabelKey, + Value: config.GetTxnScopeFromConfig(), + }, + }), clientkv.ReplicaReadMixed + } + // fallback to read from leader if the request is small + return nil, clientkv.ReplicaReadLeader + } +} + func isCommonHandleRead(tbl *model.TableInfo, idx *model.IndexInfo) bool { return tbl.IsCommonHandle && idx.Primary } @@ -4981,7 +5072,7 @@ func (b *executorBuilder) getCacheTable(tblInfo *model.TableInfo, startTS uint64 } func (b *executorBuilder) buildCompactTable(v *plannercore.CompactTable) Executor { - if v.ReplicaKind != ast.CompactReplicaKindTiFlash { + if v.ReplicaKind != ast.CompactReplicaKindTiFlash && v.ReplicaKind != ast.CompactReplicaKindAll { b.err = errors.Errorf("compact %v replica is not supported", strings.ToLower(string(v.ReplicaKind))) return nil } diff --git a/executor/compact_table_test.go b/executor/compact_table_test.go index f5e22b56b6e5d..18067084676d4 100644 --- a/executor/compact_table_test.go +++ b/executor/compact_table_test.go @@ -55,6 +55,22 @@ func withMockTiFlash(nodes int) mockstore.MockTiKVStoreOption { ) } +func TestCompactUnknownTable(t *testing.T) { + store, clean := testkit.CreateMockStore(t) + defer clean() + tk := testkit.NewTestKit(t, store) + + err := tk.ExecToErr(`alter table test compact tiflash replica;`) + require.Equal(t, "[planner:1046]No database selected", err.Error()) + + err = tk.ExecToErr(`alter table test.foo compact tiflash replica;`) + require.Equal(t, "[schema:1146]Table 'test.foo' doesn't exist", err.Error()) + + tk.MustExec("use test") + err = tk.ExecToErr(`alter table bar compact;`) + require.Equal(t, "[schema:1146]Table 'test.bar' doesn't exist", err.Error()) +} + func TestCompactTableNoTiFlashReplica(t *testing.T) { store, clean := testkit.CreateMockStore(t) defer clean() @@ -66,6 +82,17 @@ func TestCompactTableNoTiFlashReplica(t *testing.T) { tk.MustQuery(`show warnings;`).Check(testkit.Rows( `Warning 1105 compact skipped: no tiflash replica in the table`, )) + + tk.MustExec(`alter table test.t compact;`) + tk.MustQuery(`show warnings;`).Check(testkit.Rows( + `Warning 1105 compact skipped: no tiflash replica in the table`, + )) + + tk = testkit.NewTestKit(t, store) + tk.MustExec(`alter table test.t compact;`) + tk.MustQuery(`show warnings;`).Check(testkit.Rows( + `Warning 1105 compact skipped: no tiflash replica in the table`, + )) } func TestCompactTableTooBusy(t *testing.T) { @@ -134,7 +161,6 @@ func TestCompactTableInternalError(t *testing.T) { // TestCompactTableNoRemaining: Returns NoRemaining for request #1. func TestCompactTableNoRemaining(t *testing.T) { mocker := newCompactRequestMocker(t) - defer mocker.RequireAllHandlersHit() store, do, clean := testkit.CreateMockStoreAndDomain(t, withMockTiFlash(1), mocker.AsOpt()) defer clean() tk := testkit.NewTestKit(t, store) @@ -150,12 +176,28 @@ func TestCompactTableNoRemaining(t *testing.T) { CompactedEndKey: []byte{0xFF}, }, nil }) - tk.MustExec("use test") tk.MustExec("create table t(a int)") tk.MustExec(`alter table t set tiflash replica 1;`) tk.MustExec(`alter table t compact tiflash replica;`) tk.MustQuery(`show warnings;`).Check(testkit.Rows()) + mocker.RequireAllHandlersHit() + + mocker.MockFrom(`tiflash0/#2`, func(req *kvrpcpb.CompactRequest) (*kvrpcpb.CompactResponse, error) { + tableID := do.MustGetTableID(t, "test", "t") + require.Empty(t, req.StartKey) + require.EqualValues(t, req.PhysicalTableId, tableID) + require.EqualValues(t, req.LogicalTableId, tableID) + return &kvrpcpb.CompactResponse{ + HasRemaining: false, + CompactedStartKey: []byte{}, + CompactedEndKey: []byte{0xFF}, + }, nil + }) + tk = testkit.NewTestKit(t, store) + tk.MustExec(`alter table test.t compact;`) + tk.MustQuery(`show warnings;`).Check(testkit.Rows()) + mocker.RequireAllHandlersHit() } // TestCompactTableHasRemaining: Returns HasRemaining=true for request #1 and #2, returns HasRemaining=false for request #3. diff --git a/executor/compiler.go b/executor/compiler.go index f4633c85f70c6..894e86e6b7ba8 100644 --- a/executor/compiler.go +++ b/executor/compiler.go @@ -31,16 +31,17 @@ import ( ) var ( - stmtNodeCounterUse = metrics.StmtNodeCounter.WithLabelValues("Use") - stmtNodeCounterShow = metrics.StmtNodeCounter.WithLabelValues("Show") - stmtNodeCounterBegin = metrics.StmtNodeCounter.WithLabelValues("Begin") - stmtNodeCounterCommit = metrics.StmtNodeCounter.WithLabelValues("Commit") - stmtNodeCounterRollback = metrics.StmtNodeCounter.WithLabelValues("Rollback") - stmtNodeCounterInsert = metrics.StmtNodeCounter.WithLabelValues("Insert") - stmtNodeCounterReplace = metrics.StmtNodeCounter.WithLabelValues("Replace") - stmtNodeCounterDelete = metrics.StmtNodeCounter.WithLabelValues("Delete") - stmtNodeCounterUpdate = metrics.StmtNodeCounter.WithLabelValues("Update") - stmtNodeCounterSelect = metrics.StmtNodeCounter.WithLabelValues("Select") + stmtNodeCounterUse = metrics.StmtNodeCounter.WithLabelValues("Use") + stmtNodeCounterShow = metrics.StmtNodeCounter.WithLabelValues("Show") + stmtNodeCounterBegin = metrics.StmtNodeCounter.WithLabelValues("Begin") + stmtNodeCounterCommit = metrics.StmtNodeCounter.WithLabelValues("Commit") + stmtNodeCounterRollback = metrics.StmtNodeCounter.WithLabelValues("Rollback") + stmtNodeCounterInsert = metrics.StmtNodeCounter.WithLabelValues("Insert") + stmtNodeCounterReplace = metrics.StmtNodeCounter.WithLabelValues("Replace") + stmtNodeCounterDelete = metrics.StmtNodeCounter.WithLabelValues("Delete") + stmtNodeCounterUpdate = metrics.StmtNodeCounter.WithLabelValues("Update") + stmtNodeCounterSelect = metrics.StmtNodeCounter.WithLabelValues("Select") + stmtNodeCounterSavepoint = metrics.StmtNodeCounter.WithLabelValues("Savepoint") ) // Compiler compiles an ast.StmtNode to a physical plan. @@ -90,6 +91,7 @@ func (c *Compiler) Compile(ctx context.Context, stmtNode ast.StmtNode) (*ExecStm if c.Ctx.GetSessionVars().StmtCtx.Priority == mysql.NoPriority { lowerPriority = needLowerPriority(finalPlan) } + c.Ctx.GetSessionVars().StmtCtx.SetPlan(finalPlan) return &ExecStmt{ GoCtx: ctx, InfoSchema: is, @@ -173,6 +175,8 @@ func CountStmtNode(stmtNode ast.StmtNode, inRestrictedSQL bool) { stmtNodeCounterUpdate.Inc() case "Select": stmtNodeCounterSelect.Inc() + case "Savepoint": + stmtNodeCounterSavepoint.Inc() default: metrics.StmtNodeCounter.WithLabelValues(typeLabel).Inc() } @@ -410,6 +414,8 @@ func GetStmtLabel(stmtNode ast.StmtNode) string { return "Trace" case *ast.ShutdownStmt: return "Shutdown" + case *ast.SavepointStmt: + return "Savepoint" } return "other" } diff --git a/executor/distsql.go b/executor/distsql.go index a2b7919f68c6a..1e275d6a92bf5 100644 --- a/executor/distsql.go +++ b/executor/distsql.go @@ -174,6 +174,7 @@ type IndexReaderExecutor struct { txnScope string readReplicaScope string isStaleness bool + netDataSize float64 // result returns one or more distsql.PartialResult and each PartialResult is returned by one region. result distsql.SelectResult // columns are only required by union scan. @@ -314,7 +315,8 @@ func (e *IndexReaderExecutor) open(ctx context.Context, kvRanges []kv.KeyRange) SetIsStaleness(e.isStaleness). SetFromSessionVars(e.ctx.GetSessionVars()). SetFromInfoSchema(e.ctx.GetInfoSchema()). - SetMemTracker(e.memTracker) + SetMemTracker(e.memTracker). + SetClosestReplicaReadAdjuster(newClosestReadAdjuster(e.ctx, &builder.Request, e.netDataSize)) kvReq, err := builder.Build() if err != nil { e.feedback.Invalidate() @@ -345,6 +347,8 @@ type IndexLookUpExecutor struct { // columns are only required by union scan. columns []*model.ColumnInfo *dataReaderBuilder + idxNetDataSize float64 + avgRowSize float64 // fields about accessing partition tables partitionTableMode bool // if this executor is accessing a partition table @@ -589,6 +593,7 @@ func (e *IndexLookUpExecutor) startIndexWorker(ctx context.Context, workCh chan< SetIsStaleness(e.isStaleness). SetFromSessionVars(e.ctx.GetSessionVars()). SetFromInfoSchema(e.ctx.GetInfoSchema()). + SetClosestReplicaReadAdjuster(newClosestReadAdjuster(e.ctx, &builder.Request, e.idxNetDataSize/float64(len(kvRanges)))). SetMemTracker(tracker) for partTblIdx, kvRange := range kvRanges { @@ -690,6 +695,7 @@ func (e *IndexLookUpExecutor) buildTableReader(ctx context.Context, task *lookup feedback: statistics.NewQueryFeedback(0, nil, 0, false), corColInFilter: e.corColInTblSide, plans: e.tblPlans, + netDataSize: e.avgRowSize * float64(len(task.handles)), } tableReaderExec.buildVirtualColumnInfo() tableReader, err := e.dataReaderBuilder.buildTableReaderFromHandles(ctx, tableReaderExec, task.handles, true) diff --git a/executor/distsql_test.go b/executor/distsql_test.go index 71156d890a9a9..1c0d55d3a5307 100644 --- a/executor/distsql_test.go +++ b/executor/distsql_test.go @@ -19,13 +19,16 @@ import ( "context" "fmt" "math/rand" + "regexp" "runtime/pprof" + "strconv" "strings" "testing" "time" "github.com/pingcap/tidb/executor" "github.com/pingcap/tidb/kv" + "github.com/pingcap/tidb/metrics" "github.com/pingcap/tidb/parser/model" "github.com/pingcap/tidb/store/copr" "github.com/pingcap/tidb/store/mockstore" @@ -34,6 +37,9 @@ import ( "github.com/pingcap/tidb/testkit" "github.com/pingcap/tidb/types" "github.com/pingcap/tidb/util/mock" + "github.com/pingcap/tidb/util/paging" + "github.com/prometheus/client_golang/prometheus" + dto "github.com/prometheus/client_model/go" "github.com/stretchr/testify/require" "github.com/tikv/client-go/v2/testutils" ) @@ -418,3 +424,160 @@ func TestPartitionTableIndexJoinIndexLookUp(t *testing.T) { tk.MustQuery("select /*+ TIDB_INLJ(t1, t2) */ t1.* from t t1, t t2 use index(a) where t1.a=t2.b and " + cond).Sort().Check(result) } } + +func TestCoprocessorPagingSize(t *testing.T) { + store, clean := testkit.CreateMockStore(t) + defer clean() + tk := testkit.NewTestKit(t, store) + + tk.MustExec("use test") + tk.MustExec("create table t_paging (a int, b int, key(a), key(b))") + nRows := 512 + values := make([]string, 0, nRows) + for i := 0; i < nRows; i++ { + values = append(values, fmt.Sprintf("(%v, %v)", rand.Intn(nRows), rand.Intn(nRows))) + } + tk.MustExec(fmt.Sprintf("insert into t_paging values %v", strings.Join(values, ", "))) + tk.MustQuery("select @@tidb_min_paging_size").Check(testkit.Rows(strconv.FormatUint(paging.MinPagingSize, 10))) + + // When the min paging size is small, we need more RPC roundtrip! + // Check 'rpc_num' in the execution information + // + // mysql> explain analyze select * from t_paging; + // +--------------------+----------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + // | id |task | execution info | + // +--------------------+----------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + // | TableReader_5 |root | time:7.27ms, loops:2, cop_task: {num: 10, max: 1.57ms, min: 313.3µs, avg: 675.9µs, p95: 1.57ms, tot_proc: 2ms, rpc_num: 10, rpc_time: 6.69ms, copr_cache_hit_ratio: 0.00, distsql_concurrency: 15} | + // | └─TableFullScan_4 |cop[tikv] | tikv_task:{proc max:1.48ms, min:294µs, avg: 629µs, p80:1.21ms, p95:1.48ms, iters:0, tasks:10} | + // +--------------------+----------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + // 2 rows in set (0.01 sec) + + getRPCNumFromExplain := func(rows [][]interface{}) (res uint64) { + re := regexp.MustCompile("rpc_num: ([0-9]+)") + for _, row := range rows { + buf := bytes.NewBufferString("") + _, _ = fmt.Fprintf(buf, "%s\n", row) + if matched := re.FindStringSubmatch(buf.String()); matched != nil { + require.Equal(t, len(matched), 2) + c, err := strconv.ParseUint(matched[1], 10, 64) + require.NoError(t, err) + return c + } + } + return res + } + + // This is required here because only the chunk encoding collect the execution information and contains 'rpc_num'. + tk.MustExec("set @@tidb_enable_chunk_rpc = on") + + tk.MustExec("set @@tidb_min_paging_size = 1") + rows := tk.MustQuery("explain analyze select * from t_paging").Rows() + rpcNum := getRPCNumFromExplain(rows) + require.Greater(t, rpcNum, uint64(2)) + + tk.MustExec("set @@tidb_min_paging_size = 1000") + rows = tk.MustQuery("explain analyze select * from t_paging").Rows() + rpcNum = getRPCNumFromExplain(rows) + require.Equal(t, rpcNum, uint64(1)) +} + +func TestAdaptiveClosestRead(t *testing.T) { + store, clean := testkit.CreateMockStore(t) + defer clean() + + tk := testkit.NewTestKit(t, store) + tk.MustExec("use test") + tk.MustExec("drop table if exists t") + // the avg row size is more accurate in check_rpc mode when unistre is used. + // See: https://github.com/pingcap/tidb/issues/31744#issuecomment-1016309883 + tk.MustExec("set @@tidb_enable_chunk_rpc = '1'") + + readCounter := func(counter prometheus.Counter) float64 { + var metric dto.Metric + require.Nil(t, counter.Write(&metric)) + return metric.Counter.GetValue() + } + + checkMetrics := func(q string, hit, miss int) { + beforeHit := readCounter(metrics.DistSQLCoprClosestReadCounter.WithLabelValues("hit")) + beforeMiss := readCounter(metrics.DistSQLCoprClosestReadCounter.WithLabelValues("miss")) + tk.MustQuery(q) + afterHit := readCounter(metrics.DistSQLCoprClosestReadCounter.WithLabelValues("hit")) + afterMiss := readCounter(metrics.DistSQLCoprClosestReadCounter.WithLabelValues("miss")) + require.Equal(t, hit, int(afterHit-beforeHit), "exec query '%s' check hit failed", q) + require.Equal(t, miss, int(afterMiss-beforeMiss), "exec query '%s' check miss failed", q) + } + + tk.MustExec("create table t(id int primary key, s varchar(8), p varchar(16));") + tk.MustExec("insert into t values (1, '00000001', '0000000000000001'), (2, '00000003', '0000000000000002'), (3, '00000011', '0000000000000003');") + tk.MustExec("analyze table t;") + + tk.MustExec("set @@tidb_partition_prune_mode ='static';") + tk.MustExec("set tidb_replica_read = 'closest-adaptive';") + tk.MustExec("set tidb_adaptive_closest_read_threshold = 25;") + + // table reader + // estimate cost is 19 + checkMetrics("select s from t where id >= 1 and id < 2;", 0, 1) + // estimate cost is 37 + checkMetrics("select * from t where id >= 1 and id < 2;", 1, 0) + tk.MustExec("set tidb_adaptive_closest_read_threshold = 50;") + checkMetrics("select * from t where id >= 1 and id < 2;", 0, 1) + // estimate cost is 74 + checkMetrics("select * from t where id >= 1 and id <= 2;", 1, 0) + + partitionDef := "PARTITION BY RANGE (id) (PARTITION p0 VALUES LESS THAN (3), PARTITION p3 VALUES LESS THAN MAXVALUE);" + + // test TableReader with partition + tk.MustExec("set tidb_adaptive_closest_read_threshold = 30;") + tk.MustExec("drop table if exists t") + tk.MustExec("create table t(id int primary key, s varchar(8), p varchar(16)) " + partitionDef) + tk.MustExec("insert into t values (1, '00000001', '0000000000000001'), (2, '00000003', '0000000000000002'), (3, '00000011', '0000000000000003'), (4, '00000044', '0000000000000004');") + tk.MustExec("analyze table t;") + // estimate cost is 38 + checkMetrics("select s from t where id >= 1 and id < 3;", 1, 0) + // estimate cost is 39 with 2 cop request + checkMetrics("select s from t where id >= 2 and id < 4;", 0, 2) + + // index reader + tk.MustExec("drop table if exists t;") + tk.MustExec("create table t (id int, s varchar(8), p varchar(8), key `idx_s_p`(`s`, `p`));") + tk.MustExec("insert into t values (1, 'test1000', '11111111'), (2, 'test2000', '11111111');") + tk.MustExec("analyze table t;") + // avg row size = 27.91 + checkMetrics("select p from t where s >= 'test' and s < 'test11'", 0, 1) + checkMetrics("select p from t where s >= 'test' and s < 'test22'", 1, 0) + + // index reader with partitions + tk.MustExec("set tidb_adaptive_closest_read_threshold = 30;") + tk.MustExec("drop table if exists t;") + tk.MustExec("create table t (v int, id int, p varchar(8), key `idx_id_p`(`id`, `p`)) " + partitionDef) + tk.MustExec("insert into t values (1, 1, '11111111'), (2, 2, '22222222'), (3, 3, '33333333'), (4, 4, '44444444');") + tk.MustExec("analyze table t;") + // avg row size = 19 + checkMetrics("select p from t where id >= 1 and id < 3", 1, 0) + checkMetrics("select p from t where id >= 2 and id < 4", 0, 2) + checkMetrics("select p from t where id >= 1 and id < 4", 1, 1) + + // index lookup reader + tk.MustExec("drop table if exists t;") + tk.MustExec("create table t (id int, s varchar(8), p varchar(50), key `idx_s`(`s`));") + str := "this_is_a_string_with_length_of_50________________" + tk.MustExec(fmt.Sprintf("insert into t values (1, 'test1000', '%s'), (2, 'test2000', '%s');", str, str)) + tk.MustExec("analyze table t;") + tk.MustExec("set tidb_adaptive_closest_read_threshold = 80;") + // IndexReader cost is 22, TableReader cost (1 row) is 67 + checkMetrics("select/*+ FORCE_INDEX(t, idx_s) */ p from t where s >= 'test' and s < 'test11'", 0, 2) + tk.MustExec("set tidb_adaptive_closest_read_threshold = 100;") + checkMetrics("select/*+ FORCE_INDEX(t, idx_s) */ p from t where s >= 'test' and s < 'test22'", 1, 1) + + // index merge reader + tk.MustExec("drop table if exists t;") + // use int field to avoid the planer estimation with big random fluctuation. + tk.MustExec("create table t (id int, v bigint not null, s1 int not null, s2 int not null, key `idx_v_s1`(`s1`, `v`), key `idx_s2`(`s2`));") + tk.MustExec("insert into t values (1, 1, 1, 1), (2, 2, 2, 2), (3, 3, 3, 3);") + tk.MustExec("analyze table t;") + tk.MustExec("set tidb_adaptive_closest_read_threshold = 30;") + // 2 IndexScan with cost 19/56, 2 TableReader with cost 32.5/65. + checkMetrics("select/* +USE_INDEX_MERGE(t) */ id from t use index(`idx_v_s1`) use index(idx_s2) where (s1 < 3 and v > 0) or s2 = 3;", 3, 1) +} diff --git a/executor/executor.go b/executor/executor.go index 7d2839cb29e34..e147eb9bd38d9 100644 --- a/executor/executor.go +++ b/executor/executor.go @@ -340,12 +340,13 @@ type CancelDDLJobsExec struct { // Open implements the Executor Open interface. func (e *CancelDDLJobsExec) Open(ctx context.Context) error { // We want to use a global transaction to execute the admin command, so we don't use e.ctx here. - ctx = kv.WithInternalSourceType(ctx, kv.InternalTxnDDL) - errInTxn := kv.RunInNewTxn(ctx, e.ctx.GetStore(), true, func(ctx context.Context, txn kv.Transaction) (err error) { - e.errs, err = ddl.CancelJobs(txn, e.jobIDs) - return - }) - return errInTxn + newSess, err := e.getSysSession() + if err != nil { + return err + } + e.errs, err = ddl.CancelJobs(newSess, e.ctx.GetStore(), e.jobIDs) + e.releaseSysSession(kv.WithInternalSourceType(context.Background(), kv.InternalTxnDDL), newSess) + return err } // Next implements the Executor Next interface. @@ -357,7 +358,7 @@ func (e *CancelDDLJobsExec) Next(ctx context.Context, req *chunk.Chunk) error { numCurBatch := mathutil.Min(req.Capacity(), len(e.jobIDs)-e.cursor) for i := e.cursor; i < e.cursor+numCurBatch; i++ { req.AppendString(0, strconv.FormatInt(e.jobIDs[i], 10)) - if e.errs[i] != nil { + if e.errs != nil && e.errs[i] != nil { req.AppendString(1, fmt.Sprintf("error: %v", e.errs[i])) } else { req.AppendString(1, "successful") @@ -479,6 +480,7 @@ type ShowDDLJobsExec struct { jobNumber int is infoschema.InfoSchema + sess sessionctx.Context } // DDLJobRetriever retrieve the DDLJobs. @@ -493,9 +495,9 @@ type DDLJobRetriever struct { TZLoc *time.Location } -func (e *DDLJobRetriever) initial(txn kv.Transaction) error { +func (e *DDLJobRetriever) initial(txn kv.Transaction, sess sessionctx.Context) error { m := meta.NewMeta(txn) - jobs, err := ddl.GetAllDDLJobs(m) + jobs, err := ddl.GetAllDDLJobs(sess, m) if err != nil { return err } @@ -568,6 +570,22 @@ func (e *DDLJobRetriever) appendJobToChunk(req *chunk.Chunk, job *model.Job, che req.AppendNull(10) } req.AppendString(11, job.State.String()) + if job.Type == model.ActionMultiSchemaChange { + for _, subJob := range job.MultiSchemaInfo.SubJobs { + req.AppendInt64(0, job.ID) + req.AppendString(1, schemaName) + req.AppendString(2, tableName) + req.AppendString(3, subJob.Type.String()+" /* subjob */") + req.AppendString(4, subJob.SchemaState.String()) + req.AppendInt64(5, job.SchemaID) + req.AppendInt64(6, job.TableID) + req.AppendInt64(7, subJob.RowCount) + req.AppendNull(8) + req.AppendNull(9) + req.AppendNull(10) + req.AppendString(11, subJob.State.String()) + } + } } func ts2Time(timestamp uint64, loc *time.Location) types.Time { @@ -590,18 +608,35 @@ type ShowDDLJobQueriesExec struct { // Open implements the Executor Open interface. func (e *ShowDDLJobQueriesExec) Open(ctx context.Context) error { + var err error + var jobs []*model.Job if err := e.baseExecutor.Open(ctx); err != nil { return err } - txn, err := e.ctx.Txn(true) + session, err := e.getSysSession() + if err != nil { + return err + } + err = sessiontxn.NewTxn(context.Background(), session) + if err != nil { + return err + } + defer func() { + // releaseSysSession will rollbacks txn automatically. + e.releaseSysSession(kv.WithInternalSourceType(context.Background(), kv.InternalTxnDDL), session) + }() + txn, err := session.Txn(true) if err != nil { return err } + session.GetSessionVars().SetInTxn(true) + m := meta.NewMeta(txn) - jobs, err := ddl.GetAllDDLJobs(m) + jobs, err = ddl.GetAllDDLJobs(session, m) if err != nil { return err } + historyJobs, err := ddl.GetLastNHistoryDDLJobs(m, ddl.DefNumHistoryJobs) if err != nil { return err @@ -639,19 +674,26 @@ func (e *ShowDDLJobsExec) Open(ctx context.Context) error { if err := e.baseExecutor.Open(ctx); err != nil { return err } - txn, err := e.ctx.Txn(true) - if err != nil { - return err - } e.DDLJobRetriever.is = e.is if e.jobNumber == 0 { e.jobNumber = ddl.DefNumHistoryJobs } - err = e.DDLJobRetriever.initial(txn) + sess, err := e.getSysSession() if err != nil { return err } - return nil + e.sess = sess + err = sessiontxn.NewTxn(context.Background(), sess) + if err != nil { + return err + } + txn, err := sess.Txn(true) + if err != nil { + return err + } + sess.GetSessionVars().SetInTxn(true) + err = e.DDLJobRetriever.initial(txn, sess) + return err } // Next implements the Executor Next interface. @@ -690,6 +732,12 @@ func (e *ShowDDLJobsExec) Next(ctx context.Context, req *chunk.Chunk) error { return nil } +// Close implements the Executor Close interface. +func (e *ShowDDLJobsExec) Close() error { + e.releaseSysSession(kv.WithInternalSourceType(context.Background(), kv.InternalTxnDDL), e.sess) + return e.baseExecutor.Close() +} + func getSchemaName(is infoschema.InfoSchema, id int64) string { var schemaName string DBInfo, ok := is.SchemaByID(id) diff --git a/executor/executor_test.go b/executor/executor_test.go index 3d68a859c6dff..db2aebede77a6 100644 --- a/executor/executor_test.go +++ b/executor/executor_test.go @@ -1576,21 +1576,6 @@ func TestPlanReplayerDumpSingle(t *testing.T) { } } -func TestDropColWithPrimaryKey(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() - tk := testkit.NewTestKit(t, store) - tk.MustExec("use test") - tk.MustExec("drop table if exists t") - tk.MustExec("create table t(id int primary key, c1 int, c2 int, c3 int, index idx1(c1, c2), index idx2(c3))") - tk.MustExec("set global tidb_enable_change_multi_schema = off") - tk.MustGetErrMsg("alter table t drop column id", "[ddl:8200]Unsupported drop integer primary key") - tk.MustGetErrMsg("alter table t drop column c1", "[ddl:8200]can't drop column c1 with composite index covered or Primary Key covered now") - tk.MustGetErrMsg("alter table t drop column c3", "[ddl:8200]can't drop column c3 with tidb_enable_change_multi_schema is disable") - tk.MustExec("set global tidb_enable_change_multi_schema = on") - tk.MustExec("alter table t drop column c3") -} - func TestUnsignedFeedback(t *testing.T) { store, clean := testkit.CreateMockStore(t) defer clean() @@ -4374,8 +4359,8 @@ func TestGetResultRowsCount(t *testing.T) { require.NotNil(t, info) p, ok := info.Plan.(plannercore.Plan) require.True(t, ok) - cnt := executor.GetResultRowsCount(tk.Session(), p) - require.Equal(t, cnt, ca.row, fmt.Sprintf("sql: %v", ca.sql)) + cnt := executor.GetResultRowsCount(tk.Session().GetSessionVars().StmtCtx, p) + require.Equal(t, ca.row, cnt, fmt.Sprintf("sql: %v", ca.sql)) } } @@ -4404,7 +4389,7 @@ func TestAdminShowDDLJobs(t *testing.T) { require.NoError(t, err) txn, err := tk.Session().Txn(true) require.NoError(t, err) - err = ddl.AddHistoryDDLJob(meta.NewMeta(txn), job, true) + err = meta.NewMeta(txn).AddHistoryDDLJob(job, true) require.NoError(t, err) re = tk.MustQuery("admin show ddl jobs 1") @@ -6071,3 +6056,26 @@ func TestIsFastPlan(t *testing.T) { require.Equal(t, ca.isFastPlan, ok) } } + +func TestBinaryStrNumericOperator(t *testing.T) { + store, clean := testkit.CreateMockStore(t) + defer clean() + + tk := testkit.NewTestKit(t, store) + tk.MustExec("use test") + + // Test normal warnings. + tk.MustExec("drop table if exists t") + tk.MustExec("create table t(a varbinary(10))") + tk.MustExec("insert into t values ('123.12')") + tk.MustQuery("select 1+a from t").Check(testkit.Rows( + "124.12")) + tk.MustQuery("select a-1 from t").Check(testkit.Rows( + "122.12")) + tk.MustQuery("select -10*a from t").Check(testkit.Rows( + "-1231.2")) + tk.MustQuery("select a/-2 from t").Check(testkit.Rows( + "-61.56")) + // there should be no warning. + tk.MustQuery("show warnings").Check(testkit.Rows()) +} diff --git a/executor/index_merge_reader.go b/executor/index_merge_reader.go index a403f60196cb1..683ff2b497434 100644 --- a/executor/index_merge_reader.go +++ b/executor/index_merge_reader.go @@ -104,8 +104,10 @@ type IndexMergeReaderExecutor struct { // checkIndexValue is used to check the consistency of the index data. *checkIndexValue // nolint:unused - partialPlans [][]plannercore.PhysicalPlan - tblPlans []plannercore.PhysicalPlan + partialPlans [][]plannercore.PhysicalPlan + tblPlans []plannercore.PhysicalPlan + partialNetDataSizes []float64 + dataAvgRowSize float64 handleCols plannercore.HandleCols stats *IndexMergeRuntimeStat @@ -310,7 +312,8 @@ func (e *IndexMergeReaderExecutor) startPartialIndexWorker(ctx context.Context, SetFromSessionVars(e.ctx.GetSessionVars()). SetMemTracker(e.memTracker). SetPaging(e.paging). - SetFromInfoSchema(e.ctx.GetInfoSchema()) + SetFromInfoSchema(e.ctx.GetInfoSchema()). + SetClosestReplicaReadAdjuster(newClosestReadAdjuster(e.ctx, &builder.Request, e.partialNetDataSizes[workID])) for parTblIdx, keyRange := range keyRanges { // check if this executor is closed @@ -390,6 +393,7 @@ func (e *IndexMergeReaderExecutor) startPartialTableWorker(ctx context.Context, feedback: statistics.NewQueryFeedback(0, nil, 0, false), plans: e.partialPlans[workID], ranges: e.ranges[workID], + netDataSize: e.partialNetDataSizes[workID], } worker := &partialTableWorker{ @@ -611,6 +615,7 @@ func (e *IndexMergeReaderExecutor) buildFinalTableReader(ctx context.Context, tb columns: e.columns, feedback: statistics.NewQueryFeedback(0, nil, 0, false), plans: e.tblPlans, + netDataSize: e.dataAvgRowSize * float64(len(handles)), } if e.isCorColInTableFilter { if tableReaderExec.dagPB.Executors, err = constructDistExec(e.ctx, e.tblPlans); err != nil { diff --git a/executor/infoschema_cluster_table_test.go b/executor/infoschema_cluster_table_test.go index c790919a17004..f89120e688654 100644 --- a/executor/infoschema_cluster_table_test.go +++ b/executor/infoschema_cluster_table_test.go @@ -335,7 +335,7 @@ func TestTableStorageStats(t *testing.T) { "test 2", )) rows := tk.MustQuery("select TABLE_NAME from information_schema.TABLE_STORAGE_STATS where TABLE_SCHEMA = 'mysql';").Rows() - result := 32 + result := 35 require.Len(t, rows, result) // More tests about the privileges. diff --git a/executor/infoschema_reader.go b/executor/infoschema_reader.go index 6adcf3e01f851..b31a684ec30cb 100644 --- a/executor/infoschema_reader.go +++ b/executor/infoschema_reader.go @@ -1271,6 +1271,7 @@ type DDLJobsReaderExec struct { cacheJobs []*model.Job is infoschema.InfoSchema + sess sessionctx.Context } // Open implements the Executor Next interface. @@ -1278,13 +1279,23 @@ func (e *DDLJobsReaderExec) Open(ctx context.Context) error { if err := e.baseExecutor.Open(ctx); err != nil { return err } - txn, err := e.ctx.Txn(true) + e.DDLJobRetriever.is = e.is + e.activeRoles = e.ctx.GetSessionVars().ActiveRoles + sess, err := e.getSysSession() if err != nil { return err } - e.DDLJobRetriever.is = e.is - e.activeRoles = e.ctx.GetSessionVars().ActiveRoles - err = e.DDLJobRetriever.initial(txn) + e.sess = sess + err = sessiontxn.NewTxn(context.Background(), sess) + if err != nil { + return err + } + txn, err := sess.Txn(true) + if err != nil { + return err + } + sess.GetSessionVars().SetInTxn(true) + err = e.DDLJobRetriever.initial(txn, sess) if err != nil { return err } @@ -1303,6 +1314,12 @@ func (e *DDLJobsReaderExec) Next(ctx context.Context, req *chunk.Chunk) error { for i := e.cursor; i < e.cursor+num; i++ { e.appendJobToChunk(req, e.runningJobs[i], checker) req.AppendString(12, e.runningJobs[i].Query) + if e.runningJobs[i].MultiSchemaInfo != nil { + for range e.runningJobs[i].MultiSchemaInfo.SubJobs { + req.AppendString(12, e.runningJobs[i].Query) + } + } + } e.cursor += num count += num @@ -1318,12 +1335,23 @@ func (e *DDLJobsReaderExec) Next(ctx context.Context, req *chunk.Chunk) error { for _, job := range e.cacheJobs { e.appendJobToChunk(req, job, checker) req.AppendString(12, job.Query) + if job.MultiSchemaInfo != nil { + for range job.MultiSchemaInfo.SubJobs { + req.AppendString(12, job.Query) + } + } } e.cursor += len(e.cacheJobs) } return nil } +// Close implements the Executor Close interface. +func (e *DDLJobsReaderExec) Close() error { + e.releaseSysSession(kv.WithInternalSourceType(context.Background(), kv.InternalTxnDDL), e.sess) + return e.baseExecutor.Close() +} + func (e *memtableRetriever) setDataFromEngines() { var rows [][]types.Datum rows = append(rows, diff --git a/executor/infoschema_reader_test.go b/executor/infoschema_reader_test.go index 3f5631d43bff1..97531b2489140 100644 --- a/executor/infoschema_reader_test.go +++ b/executor/infoschema_reader_test.go @@ -243,6 +243,11 @@ func TestDDLJobs(t *testing.T) { DDLJobsTester.MustExec("set role r_priv") DDLJobsTester.MustQuery("select DB_NAME, TABLE_NAME from information_schema.DDL_JOBS where DB_NAME = 'test_ddl_jobs' and TABLE_NAME = 't';").Check( testkit.Rows("test_ddl_jobs t")) + + tk.MustExec("create table tt (a int);") + tk.MustExec("alter table tt add index t(a), add column b int") + tk.MustQuery("select db_name, table_name, job_type from information_schema.DDL_JOBS limit 3").Check( + testkit.Rows("test_ddl_jobs tt alter table multi-schema change", "test_ddl_jobs tt add index /* subjob */", "test_ddl_jobs tt add column /* subjob */")) } func TestKeyColumnUsage(t *testing.T) { diff --git a/executor/insert_common.go b/executor/insert_common.go index 9d31cf44f030f..dee087b13ae91 100644 --- a/executor/insert_common.go +++ b/executor/insert_common.go @@ -26,6 +26,7 @@ import ( "github.com/pingcap/errors" "github.com/pingcap/tidb/ddl" "github.com/pingcap/tidb/expression" + "github.com/pingcap/tidb/infoschema" "github.com/pingcap/tidb/kv" "github.com/pingcap/tidb/meta/autoid" "github.com/pingcap/tidb/parser/ast" @@ -642,6 +643,23 @@ func (e *InsertValues) fillRow(ctx context.Context, row []types.Datum, hasValue } } } + tbl := e.Table.Meta() + // Handle exchange partition + if tbl.ExchangePartitionInfo != nil && tbl.ExchangePartitionInfo.ExchangePartitionFlag { + is := e.ctx.GetDomainInfoSchema().(infoschema.InfoSchema) + pt, tableFound := is.TableByID(tbl.ExchangePartitionInfo.ExchangePartitionID) + if !tableFound { + return nil, errors.Errorf("exchange partition process table by id failed") + } + p, ok := pt.(table.PartitionedTable) + if !ok { + return nil, errors.Errorf("exchange partition process assert table partition failed") + } + err := p.CheckForExchangePartition(e.ctx, pt.Meta().Partition, row, tbl.ExchangePartitionInfo.ExchangePartitionDefID) + if err != nil { + return nil, err + } + } for i, gCol := range gCols { colIdx := gCol.ColumnInfo.Offset val, err := e.GenExprs[i].Eval(chunk.MutRowFromDatums(row).ToRow()) diff --git a/executor/kvtest/BUILD.bazel b/executor/kvtest/BUILD.bazel index afa7203ffef9e..3d03c7df85c9a 100644 --- a/executor/kvtest/BUILD.bazel +++ b/executor/kvtest/BUILD.bazel @@ -6,6 +6,7 @@ go_test( "kv_test.go", "main_test.go", ], + flaky = True, deps = [ "//config", "//meta/autoid", diff --git a/executor/oomtest/BUILD.bazel b/executor/oomtest/BUILD.bazel index b360eca28459b..8aa543d8bfc52 100644 --- a/executor/oomtest/BUILD.bazel +++ b/executor/oomtest/BUILD.bazel @@ -3,6 +3,7 @@ load("@io_bazel_rules_go//go:def.bzl", "go_test") go_test( name = "oomtest_test", srcs = ["oom_test.go"], + flaky = True, deps = [ "//testkit", "//testkit/testsetup", diff --git a/executor/point_get.go b/executor/point_get.go index 04687403c0d4e..bd33c47f33739 100644 --- a/executor/point_get.go +++ b/executor/point_get.go @@ -71,6 +71,9 @@ func (b *executorBuilder) buildPointGet(p *plannercore.PointGetPlan) Executor { b.err = err return nil } + if b.ctx.GetSessionVars().GetReplicaRead() == kv.ReplicaReadClosestAdaptive { + e.snapshot.SetOption(kv.ReplicaReadAdjuster, newReplicaReadAdjuster(e.ctx, p.GetAvgRowSize())) + } if e.runtimeStats != nil { snapshotStats := &txnsnapshot.SnapshotRuntimeStats{} e.stats = &runtimeStatsWithSnapshot{ @@ -237,6 +240,17 @@ func (e *PointGetExecutor) Next(ctx context.Context, req *chunk.Chunk) error { return err } + // lockNonExistIdxKey indicates the key will be locked regardless of its existence. + lockNonExistIdxKey := !e.ctx.GetSessionVars().IsPessimisticReadConsistency() + // Non-exist keys are also locked if the isolation level is not read consistency, + // lock it before read here, then it's able to read from pessimistic lock cache. + if lockNonExistIdxKey { + err = e.lockKeyIfNeeded(ctx, e.idxKey) + if err != nil { + return err + } + } + e.handleVal, err = e.get(ctx, e.idxKey) if err != nil { if !kv.ErrNotExist.Equal(err) { @@ -244,12 +258,14 @@ func (e *PointGetExecutor) Next(ctx context.Context, req *chunk.Chunk) error { } } - // try lock the index key if isolation level is not read consistency // also lock key if read consistency read a value - if !e.ctx.GetSessionVars().IsPessimisticReadConsistency() || len(e.handleVal) > 0 { - err = e.lockKeyIfNeeded(ctx, e.idxKey) - if err != nil { - return err + // TODO: pessimistic lock support lock-if-exist. + if lockNonExistIdxKey || len(e.handleVal) > 0 { + if !lockNonExistIdxKey { + err = e.lockKeyIfNeeded(ctx, e.idxKey) + if err != nil { + return err + } } // Change the unique index LOCK into PUT record. if e.lock && len(e.handleVal) > 0 { @@ -377,7 +393,7 @@ func (e *PointGetExecutor) lockKeyIfNeeded(ctx context.Context, key []byte) erro return err } lockCtx.IterateValuesNotLocked(func(k, v []byte) { - seVars.TxnCtx.SetPessimisticLockCache(kv.Key(k), v) + seVars.TxnCtx.SetPessimisticLockCache(k, v) }) if len(e.handleVal) > 0 { seVars.TxnCtx.SetPessimisticLockCache(e.idxKey, e.handleVal) diff --git a/executor/resource_tag_test.go b/executor/resource_tag_test.go index 605a7f323b573..db59828aa72be 100644 --- a/executor/resource_tag_test.go +++ b/executor/resource_tag_test.go @@ -196,6 +196,10 @@ func TestResourceGroupTag(t *testing.T) { p, ok := info.Plan.(plannercore.Plan) require.True(t, ok) _, expectPlanDigest = plannercore.NormalizePlan(p) + + flat := plannercore.FlattenPhysicalPlan(p, false) + _, newPlanDigest := plannercore.NormalizeFlatPlan(flat) + require.Equal(t, expectPlanDigest, newPlanDigest) } require.Equal(t, sqlDigest.String(), expectSQLDigest.String(), "%v", ca.sql) require.Equal(t, planDigest.String(), expectPlanDigest.String()) diff --git a/executor/seqtest/BUILD.bazel b/executor/seqtest/BUILD.bazel index c248e2e1fd30a..eb967ca990db6 100644 --- a/executor/seqtest/BUILD.bazel +++ b/executor/seqtest/BUILD.bazel @@ -7,6 +7,7 @@ go_test( "prepared_test.go", "seq_executor_test.go", ], + flaky = True, deps = [ "//config", "//ddl/testutil", diff --git a/executor/seqtest/seq_executor_test.go b/executor/seqtest/seq_executor_test.go index 16b556cde9ca9..52e1eabb551b1 100644 --- a/executor/seqtest/seq_executor_test.go +++ b/executor/seqtest/seq_executor_test.go @@ -329,7 +329,7 @@ func TestShow(t *testing.T) { )) testSQL = "show create database if not exists show_test_DB;" tk.MustQuery(testSQL).Check(testkit.RowsWithSep("|", - "show_test_DB|CREATE DATABASE /*!32312 IF NOT EXISTS*/ `show_test_DB` /*!40100 DEFAULT CHARACTER SET utf8mb4 */", + "show_test_DB|CREATE DATABASE IF NOT EXISTS `show_test_DB` /*!40100 DEFAULT CHARACTER SET utf8mb4 */", )) tk.MustExec("use show_test_DB") @@ -941,7 +941,7 @@ func TestBatchInsertDelete(t *testing.T) { atomic.StoreUint64(&kv.TxnTotalSizeLimit, originLimit) }() // Set the limitation to a small value, make it easier to reach the limitation. - atomic.StoreUint64(&kv.TxnTotalSizeLimit, 5600) + atomic.StoreUint64(&kv.TxnTotalSizeLimit, 5700) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") diff --git a/executor/set_test.go b/executor/set_test.go index f91d1f1e80388..0ca8f53c53134 100644 --- a/executor/set_test.go +++ b/executor/set_test.go @@ -676,11 +676,11 @@ func TestSetVar(t *testing.T) { tk.MustQuery("show global variables like 'tidb_ignore_prepared_cache_close_stmt'").Check(testkit.Rows("tidb_ignore_prepared_cache_close_stmt OFF")) // test for tidb_enable_new_cost_interface - tk.MustQuery("select @@global.tidb_enable_new_cost_interface").Check(testkit.Rows("0")) // default value is 0 - tk.MustExec("set global tidb_enable_new_cost_interface=1") - tk.MustQuery("select @@global.tidb_enable_new_cost_interface").Check(testkit.Rows("1")) + tk.MustQuery("select @@global.tidb_enable_new_cost_interface").Check(testkit.Rows("1")) // default value is 1 tk.MustExec("set global tidb_enable_new_cost_interface=0") tk.MustQuery("select @@global.tidb_enable_new_cost_interface").Check(testkit.Rows("0")) + tk.MustExec("set global tidb_enable_new_cost_interface=1") + tk.MustQuery("select @@global.tidb_enable_new_cost_interface").Check(testkit.Rows("1")) // test for tidb_remove_orderby_in_subquery tk.MustQuery("select @@session.tidb_remove_orderby_in_subquery").Check(testkit.Rows("0")) // default value is 0 @@ -690,6 +690,14 @@ func TestSetVar(t *testing.T) { tk.MustExec("set global tidb_remove_orderby_in_subquery=1") tk.MustQuery("select @@global.tidb_remove_orderby_in_subquery").Check(testkit.Rows("1")) + // test for tidb_opt_skew_distinct_agg + tk.MustQuery("select @@session.tidb_opt_skew_distinct_agg").Check(testkit.Rows("0")) // default value is 0 + tk.MustExec("set session tidb_opt_skew_distinct_agg=1") + tk.MustQuery("select @@session.tidb_opt_skew_distinct_agg").Check(testkit.Rows("1")) + tk.MustQuery("select @@global.tidb_opt_skew_distinct_agg").Check(testkit.Rows("0")) // default value is 0 + tk.MustExec("set global tidb_opt_skew_distinct_agg=1") + tk.MustQuery("select @@global.tidb_opt_skew_distinct_agg").Check(testkit.Rows("1")) + // the value of max_allowed_packet should be a multiple of 1024 tk.MustExec("set @@global.max_allowed_packet=16385") tk.MustQuery("show warnings").Check(testkit.RowsWithSep("|", "Warning|1292|Truncated incorrect max_allowed_packet value: '16385'")) @@ -733,6 +741,16 @@ func TestSetVar(t *testing.T) { tk.MustQuery("show warnings").Check(testkit.RowsWithSep("|", "Warning|1292|Truncated incorrect tidb_cost_model_version value: '0'")) tk.MustExec("set tidb_cost_model_version=2") tk.MustQuery("select @@tidb_cost_model_version").Check(testkit.Rows("2")) + + tk.MustQuery("select @@tidb_enable_analyze_snapshot").Check(testkit.Rows("0")) + tk.MustExec("set global tidb_enable_analyze_snapshot = 1") + tk.MustQuery("select @@global.tidb_enable_analyze_snapshot").Check(testkit.Rows("1")) + tk.MustExec("set global tidb_enable_analyze_snapshot = 0") + tk.MustQuery("select @@global.tidb_enable_analyze_snapshot").Check(testkit.Rows("0")) + tk.MustExec("set session tidb_enable_analyze_snapshot = 1") + tk.MustQuery("select @@session.tidb_enable_analyze_snapshot").Check(testkit.Rows("1")) + tk.MustExec("set session tidb_enable_analyze_snapshot = 0") + tk.MustQuery("select @@session.tidb_enable_analyze_snapshot").Check(testkit.Rows("0")) } func TestGetSetNoopVars(t *testing.T) { diff --git a/executor/show.go b/executor/show.go index 1ea1b658cd1de..2f1d366dc7c1e 100644 --- a/executor/show.go +++ b/executor/show.go @@ -41,6 +41,7 @@ import ( "github.com/pingcap/tidb/parser/model" "github.com/pingcap/tidb/parser/mysql" "github.com/pingcap/tidb/parser/terror" + field_types "github.com/pingcap/tidb/parser/types" plannercore "github.com/pingcap/tidb/planner/core" "github.com/pingcap/tidb/plugin" "github.com/pingcap/tidb/privilege" @@ -957,7 +958,7 @@ func ConstructResultOfShowCreateTable(ctx sessionctx.Context, tableInfo *model.T buf.WriteString(",\n") } fmt.Fprintf(buf, " %s %s", stringutil.Escape(col.Name.O, sqlMode), col.GetTypeDesc()) - if col.GetCharset() != "binary" { + if field_types.HasCharset(&col.FieldType) { if col.GetCharset() != tblCharset { fmt.Fprintf(buf, " CHARACTER SET %s", col.GetCharset()) } @@ -1358,7 +1359,7 @@ func appendPartitionInfo(partitionInfo *model.PartitionInfo, buf *bytes.Buffer, } } // this if statement takes care of lists/range columns case - if partitionInfo.Columns != nil { + if len(partitionInfo.Columns) > 0 { // partitionInfo.Type == model.PartitionTypeRange || partitionInfo.Type == model.PartitionTypeList // Notice that MySQL uses two spaces between LIST and COLUMNS... fmt.Fprintf(buf, "\nPARTITION BY %s COLUMNS(", partitionInfo.Type.String()) @@ -1414,7 +1415,7 @@ func ConstructResultOfShowCreateDatabase(ctx sessionctx.Context, dbInfo *model.D sqlMode := ctx.GetSessionVars().SQLMode var ifNotExistsStr string if ifNotExists { - ifNotExistsStr = "/*!32312 IF NOT EXISTS*/ " + ifNotExistsStr = "IF NOT EXISTS " } fmt.Fprintf(buf, "CREATE DATABASE %s%s", ifNotExistsStr, stringutil.Escape(dbInfo.Name.O, sqlMode)) if dbInfo.Charset != "" { @@ -2024,8 +2025,19 @@ func (e *ShowExec) fetchShowSessionStates(ctx context.Context) error { if err = stateJSON.UnmarshalJSON(stateBytes); err != nil { return err } - // This will be implemented in future PRs. - tokenBytes, err := gjson.Marshal("") + // session token + var token *sessionstates.SessionToken + // In testing, user may be nil. + if user := e.ctx.GetSessionVars().User; user != nil { + // The token may be leaked without secure transport, so we enforce secure transport (TLS or Unix Socket). + if !e.ctx.GetSessionVars().ConnectionInfo.IsSecureTransport() { + return sessionstates.ErrCannotMigrateSession.GenWithStackByArgs("the token must be queried with secure transport") + } + if token, err = sessionstates.CreateSessionToken(user.Username); err != nil { + return err + } + } + tokenBytes, err := gjson.Marshal(token) if err != nil { return errors.Trace(err) } diff --git a/executor/showtest/show_test.go b/executor/showtest/show_test.go index 2994069bcb0f6..e983bc3a2746e 100644 --- a/executor/showtest/show_test.go +++ b/executor/showtest/show_test.go @@ -458,6 +458,17 @@ func TestShowCreateTable(t *testing.T) { " `b` varchar(20) DEFAULT '\\\\',\n"+ " PRIMARY KEY (`a`) /*T![clustered_index] CLUSTERED */\n"+ ") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin")) + + tk.MustExec("drop table if exists t;") + tk.MustExec("create table t(" + + "a set('a', 'b') charset binary," + + "b enum('a', 'b') charset ascii);") + tk.MustQuery("show create table t;").Check(testkit.RowsWithSep("|", + ""+ + "t CREATE TABLE `t` (\n"+ + " `a` set('a','b') CHARACTER SET binary COLLATE binary DEFAULT NULL,\n"+ + " `b` enum('a','b') CHARACTER SET ascii COLLATE ascii_bin DEFAULT NULL\n"+ + ") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin")) } func TestShowCreateTablePlacement(t *testing.T) { @@ -1445,7 +1456,7 @@ func TestShowBuiltin(t *testing.T) { res := tk.MustQuery("show builtins;") require.NotNil(t, res) rows := res.Rows() - const builtinFuncNum = 275 + const builtinFuncNum = 276 require.Equal(t, len(rows), builtinFuncNum) require.Equal(t, rows[0][0].(string), "abs") require.Equal(t, rows[builtinFuncNum-1][0].(string), "yearweek") @@ -1738,7 +1749,7 @@ func TestShowTemporaryTable(t *testing.T) { " `i` int(11) NOT NULL AUTO_INCREMENT,\n" + " `j` int(11) DEFAULT NULL,\n" + " PRIMARY KEY (`i`) /*T![clustered_index] CLUSTERED */\n" + - ") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin AUTO_INCREMENT=2" + ") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin AUTO_INCREMENT=3" tk.MustQuery("show create table t7").Check(testkit.Rows("t7 " + expect)) } diff --git a/executor/slow_query.go b/executor/slow_query.go index 1708ebe7cc6f4..395d8f4eba8ac 100755 --- a/executor/slow_query.go +++ b/executor/slow_query.go @@ -740,6 +740,14 @@ func getColumnValueFactoryByName(sctx sessionctx.Context, colName string, column row[columnIdx] = types.NewStringDatum(plan) return true, nil }, nil + case variable.SlowLogBinaryPlan: + return func(row []types.Datum, value string, tz *time.Location, checker *slowLogChecker) (bool, error) { + if strings.HasPrefix(value, variable.SlowLogBinaryPlanPrefix) { + value = value[len(variable.SlowLogBinaryPlanPrefix) : len(value)-len(variable.SlowLogPlanSuffix)] + } + row[columnIdx] = types.NewStringDatum(value) + return true, nil + }, nil case variable.SlowLogConnIDStr, variable.SlowLogExecRetryCount, variable.SlowLogPreprocSubQueriesStr, execdetails.WriteKeysStr, execdetails.WriteSizeStr, execdetails.PrewriteRegionStr, execdetails.TxnRetryStr, execdetails.RequestCountStr, execdetails.TotalKeysStr, execdetails.ProcessKeysStr, diff --git a/executor/slow_query_test.go b/executor/slow_query_test.go index dea0ab2cb16cd..32412d2f1ac70 100644 --- a/executor/slow_query_test.go +++ b/executor/slow_query_test.go @@ -163,7 +163,7 @@ select * from t;` `0.1,0.2,0.03,127.0.0.1:20160,0.05,0.6,0.8,0.0.0.0:20160,70724,65536,0,0,0,0,0,` + `Cop_backoff_regionMiss_total_times: 200 Cop_backoff_regionMiss_total_time: 0.2 Cop_backoff_regionMiss_max_time: 0.2 Cop_backoff_regionMiss_max_addr: 127.0.0.1 Cop_backoff_regionMiss_avg_time: 0.2 Cop_backoff_regionMiss_p90_time: 0.2 Cop_backoff_rpcPD_total_times: 200 Cop_backoff_rpcPD_total_time: 0.2 Cop_backoff_rpcPD_max_time: 0.2 Cop_backoff_rpcPD_max_addr: 127.0.0.1 Cop_backoff_rpcPD_avg_time: 0.2 Cop_backoff_rpcPD_p90_time: 0.2 Cop_backoff_rpcTiKV_total_times: 200 Cop_backoff_rpcTiKV_total_time: 0.2 Cop_backoff_rpcTiKV_max_time: 0.2 Cop_backoff_rpcTiKV_max_addr: 127.0.0.1 Cop_backoff_rpcTiKV_avg_time: 0.2 Cop_backoff_rpcTiKV_p90_time: 0.2,` + `0,0,1,0,1,1,0,,60e9378c746d9a2be1c791047e008967cf252eb6de9167ad3aa6098fa2d523f4,` + - `update t set i = 1;,select * from t;` + `,update t set i = 1;,select * from t;` require.Equal(t, expectRecordString, recordString) // Issue 20928 @@ -186,7 +186,7 @@ select * from t;` `0.1,0.2,0.03,127.0.0.1:20160,0.05,0.6,0.8,0.0.0.0:20160,70724,65536,0,0,0,0,0,` + `Cop_backoff_regionMiss_total_times: 200 Cop_backoff_regionMiss_total_time: 0.2 Cop_backoff_regionMiss_max_time: 0.2 Cop_backoff_regionMiss_max_addr: 127.0.0.1 Cop_backoff_regionMiss_avg_time: 0.2 Cop_backoff_regionMiss_p90_time: 0.2 Cop_backoff_rpcPD_total_times: 200 Cop_backoff_rpcPD_total_time: 0.2 Cop_backoff_rpcPD_max_time: 0.2 Cop_backoff_rpcPD_max_addr: 127.0.0.1 Cop_backoff_rpcPD_avg_time: 0.2 Cop_backoff_rpcPD_p90_time: 0.2 Cop_backoff_rpcTiKV_total_times: 200 Cop_backoff_rpcTiKV_total_time: 0.2 Cop_backoff_rpcTiKV_max_time: 0.2 Cop_backoff_rpcTiKV_max_addr: 127.0.0.1 Cop_backoff_rpcTiKV_avg_time: 0.2 Cop_backoff_rpcTiKV_p90_time: 0.2,` + `0,0,1,0,1,1,0,,60e9378c746d9a2be1c791047e008967cf252eb6de9167ad3aa6098fa2d523f4,` + - `update t set i = 1;,select * from t;` + `,update t set i = 1;,select * from t;` require.Equal(t, expectRecordString, recordString) // fix sql contain '# ' bug diff --git a/executor/statement_context_test.go b/executor/statement_context_test.go index dc9bcca07ce7f..69e47ac1c8107 100644 --- a/executor/statement_context_test.go +++ b/executor/statement_context_test.go @@ -20,8 +20,7 @@ import ( "unicode/utf8" "github.com/pingcap/tidb/config" - "github.com/pingcap/tidb/parser/terror" - "github.com/pingcap/tidb/table" + "github.com/pingcap/tidb/errno" "github.com/pingcap/tidb/testkit" "github.com/stretchr/testify/require" ) @@ -55,10 +54,8 @@ func TestStatementContext(t *testing.T) { // Handle coprocessor flags, '1x' is an invalid int. // UPDATE and DELETE do select request first which is handled by coprocessor. // In strict mode we expect error. - _, err := tk.Exec("update sc set a = 4 where a > '1x'") - require.Error(t, err) - _, err = tk.Exec("delete from sc where a < '1x'") - require.Error(t, err) + tk.MustExecToErr("update sc set a = 4 where a > '1x'") + tk.MustExecToErr("delete from sc where a < '1x'") tk.MustQuery("select * from sc where a > '1x'").Check(testkit.Rows("3")) // Non-strict mode never returns error. @@ -74,13 +71,10 @@ func TestStatementContext(t *testing.T) { require.Greater(t, tk.Session().GetSessionVars().StmtCtx.WarningCount(), uint16(0)) tk.MustQuery("select * from sc2").Check(testkit.Rows("@@")) tk.MustExec(strictModeSQL) - _, err = tk.Exec("insert sc2 values (unhex('4040ffff'))") - require.Error(t, err) - require.Truef(t, terror.ErrorEqual(err, table.ErrTruncatedWrongValueForField), "err %v", err) + tk.MustGetErrCode("insert sc2 values (unhex('4040ffff'))", errno.ErrTruncatedWrongValueForField) tk.MustExec("set @@tidb_skip_utf8_check = '1'") - _, err = tk.Exec("insert sc2 values (unhex('4040ffff'))") - require.NoError(t, err) + tk.MustExec("insert sc2 values (unhex('4040ffff'))") tk.MustQuery("select length(a) from sc2").Check(testkit.Rows("2", "4")) tk.MustExec("set @@tidb_skip_utf8_check = '0'") @@ -96,13 +90,10 @@ func TestStatementContext(t *testing.T) { tk.MustQuery("select * from sc3").Check(testkit.Rows("@@")) tk.MustExec(strictModeSQL) - _, err = tk.Exec("insert sc3 values (unhex('4040ffff'))") - require.Error(t, err) - require.Truef(t, terror.ErrorEqual(err, table.ErrTruncatedWrongValueForField), "err %v", err) + tk.MustGetErrCode("insert sc3 values (unhex('4040ffff'))", errno.ErrTruncatedWrongValueForField) tk.MustExec("set @@tidb_skip_ascii_check = '1'") - _, err = tk.Exec("insert sc3 values (unhex('4040ffff'))") - require.NoError(t, err) + tk.MustExec("insert sc3 values (unhex('4040ffff'))") tk.MustQuery("select length(a) from sc3").Check(testkit.Rows("2", "4")) // no placeholder in ASCII, so just insert '@@'... @@ -122,12 +113,8 @@ func TestStatementContext(t *testing.T) { tk.MustQuery("select * from t1").Check(testkit.Rows("", "@@")) tk.MustQuery("select length(a) from t1").Check(testkit.Rows("0", "2")) tk.MustExec(strictModeSQL) - _, err = tk.Exec("insert t1 values (unhex('f09f8c80'))") - require.Error(t, err) - require.Truef(t, terror.ErrorEqual(err, table.ErrTruncatedWrongValueForField), "err %v", err) - _, err = tk.Exec("insert t1 values (unhex('F0A48BAE'))") - require.Error(t, err) - require.Truef(t, terror.ErrorEqual(err, table.ErrTruncatedWrongValueForField), "err %v", err) + tk.MustGetErrCode("insert t1 values (unhex('f09f8c80'))", errno.ErrTruncatedWrongValueForField) + tk.MustGetErrCode("insert t1 values (unhex('F0A48BAE'))", errno.ErrTruncatedWrongValueForField) config.UpdateGlobal(func(conf *config.Config) { conf.Instance.CheckMb4ValueInUTF8.Store(false) }) @@ -135,6 +122,5 @@ func TestStatementContext(t *testing.T) { config.UpdateGlobal(func(conf *config.Config) { conf.Instance.CheckMb4ValueInUTF8.Store(true) }) - _, err = tk.Exec("insert t1 values (unhex('F0A48BAE'))") - require.Error(t, err) + tk.MustExecToErr("insert t1 values (unhex('F0A48BAE'))") } diff --git a/executor/table_reader.go b/executor/table_reader.go index 560eb1fd2ecd8..457822796ea91 100644 --- a/executor/table_reader.go +++ b/executor/table_reader.go @@ -82,6 +82,9 @@ type TableReaderExecutor struct { txnScope string readReplicaScope string isStaleness bool + // FIXME: in some cases the data size can be more accurate after get the handles count, + // but we keep things simple as it needn't to be that accurate for now. + netDataSize float64 // columns are only required by union scan and virtual column. columns []*model.ColumnInfo @@ -340,7 +343,9 @@ func (e *TableReaderExecutor) buildKVReqSeparately(ctx context.Context, ranges [ SetMemTracker(e.memTracker). SetStoreType(e.storeType). SetPaging(e.paging). - SetAllowBatchCop(e.batchCop).Build() + SetAllowBatchCop(e.batchCop). + SetClosestReplicaReadAdjuster(newClosestReadAdjuster(e.ctx, &reqBuilder.Request, e.netDataSize)). + Build() if err != nil { return nil, err } @@ -379,7 +384,9 @@ func (e *TableReaderExecutor) buildKVReqForPartitionTableScan(ctx context.Contex SetMemTracker(e.memTracker). SetStoreType(e.storeType). SetPaging(e.paging). - SetAllowBatchCop(e.batchCop).Build() + SetAllowBatchCop(e.batchCop). + SetClosestReplicaReadAdjuster(newClosestReadAdjuster(e.ctx, &reqBuilder.Request, e.netDataSize)). + Build() if err != nil { return nil, err } @@ -411,6 +418,7 @@ func (e *TableReaderExecutor) buildKVReq(ctx context.Context, ranges []*ranger.R SetMemTracker(e.memTracker). SetStoreType(e.storeType). SetAllowBatchCop(e.batchCop). + SetClosestReplicaReadAdjuster(newClosestReadAdjuster(e.ctx, &reqBuilder.Request, e.netDataSize)). SetPaging(e.paging) return reqBuilder.Build() } diff --git a/executor/tiflashtest/BUILD.bazel b/executor/tiflashtest/BUILD.bazel index 6a919ca76598a..7fc439efacd50 100644 --- a/executor/tiflashtest/BUILD.bazel +++ b/executor/tiflashtest/BUILD.bazel @@ -6,6 +6,7 @@ go_test( "main_test.go", "tiflash_test.go", ], + flaky = True, deps = [ "//config", "//domain", diff --git a/executor/tiflashtest/tiflash_test.go b/executor/tiflashtest/tiflash_test.go index d3c69b3988762..886c2012b0b00 100644 --- a/executor/tiflashtest/tiflash_test.go +++ b/executor/tiflashtest/tiflash_test.go @@ -72,7 +72,7 @@ func TestNonsupportCharsetTable(t *testing.T) { tk.MustExec("create table t(a int, b char(10) charset gbk collate gbk_bin)") err := tk.ExecToErr("alter table t set tiflash replica 1") require.Error(t, err) - require.Equal(t, "[ddl:8200]Unsupported ALTER table replica for table contain gbk charset", err.Error()) + require.Equal(t, "[ddl:8200]Unsupported ALTER TiFlash settings for tables not supported by TiFlash: table contains gbk charset", err.Error()) tk.MustExec("drop table if exists t") tk.MustExec("create table t(a char(10) charset utf8)") diff --git a/executor/write.go b/executor/write.go index 49707f6417bf5..2c9c8fe4107fa 100644 --- a/executor/write.go +++ b/executor/write.go @@ -22,6 +22,7 @@ import ( "github.com/pingcap/errors" "github.com/pingcap/tidb/errno" "github.com/pingcap/tidb/expression" + "github.com/pingcap/tidb/infoschema" "github.com/pingcap/tidb/kv" "github.com/pingcap/tidb/meta/autoid" "github.com/pingcap/tidb/parser/ast" @@ -80,6 +81,24 @@ func updateRecord(ctx context.Context, sctx sessionctx.Context, h kv.Handle, old } } + // Handle exchange partition + tbl := t.Meta() + if tbl.ExchangePartitionInfo != nil && tbl.ExchangePartitionInfo.ExchangePartitionFlag { + is := sctx.GetDomainInfoSchema().(infoschema.InfoSchema) + pt, tableFound := is.TableByID(tbl.ExchangePartitionInfo.ExchangePartitionID) + if !tableFound { + return false, errors.Errorf("exchange partition process table by id failed") + } + p, ok := pt.(table.PartitionedTable) + if !ok { + return false, errors.Errorf("exchange partition process assert table partition failed") + } + err := p.CheckForExchangePartition(sctx, pt.Meta().Partition, newData, tbl.ExchangePartitionInfo.ExchangePartitionDefID) + if err != nil { + return false, err + } + } + // Compare datum, then handle some flags. for i, col := range t.Cols() { // We should use binary collation to compare datum, otherwise the result will be incorrect. diff --git a/expression/aggregation/aggregation.go b/expression/aggregation/aggregation.go index 19ab63afb28d3..5d22c587f3c34 100644 --- a/expression/aggregation/aggregation.go +++ b/expression/aggregation/aggregation.go @@ -222,8 +222,11 @@ func CheckAggPushFlash(aggFunc *AggFuncDesc) bool { } } switch aggFunc.Name { - case ast.AggFuncSum, ast.AggFuncCount, ast.AggFuncMin, ast.AggFuncMax, ast.AggFuncAvg, ast.AggFuncFirstRow, ast.AggFuncApproxCountDistinct, ast.AggFuncGroupConcat: + case ast.AggFuncCount, ast.AggFuncMin, ast.AggFuncMax, ast.AggFuncFirstRow, ast.AggFuncApproxCountDistinct: return true + case ast.AggFuncSum, ast.AggFuncAvg, ast.AggFuncGroupConcat: + // Now tiflash doesn't support CastJsonAsReal and CastJsonAsString. + return aggFunc.Args[0].GetType().GetType() != mysql.TypeJSON } return false } diff --git a/expression/aggregation/base_func.go b/expression/aggregation/base_func.go index 7f72b94ea15a6..72d78a075158b 100644 --- a/expression/aggregation/base_func.go +++ b/expression/aggregation/base_func.go @@ -287,7 +287,7 @@ func (a *baseFuncDesc) typeInfer4BitFuncs(ctx sessionctx.Context) { a.RetTp.SetFlen(21) types.SetBinChsClnFlag(a.RetTp) a.RetTp.AddFlag(mysql.UnsignedFlag | mysql.NotNullFlag) - // TODO: a.Args[0] = expression.WrapWithCastAsInt(ctx, a.Args[0]) + a.Args[0] = expression.WrapWithCastAsInt(ctx, a.Args[0]) } func (a *baseFuncDesc) typeInfer4JsonFuncs(ctx sessionctx.Context) { diff --git a/expression/builtin.go b/expression/builtin.go index 772ef5c5d48f1..b56b7208249f7 100644 --- a/expression/builtin.go +++ b/expression/builtin.go @@ -834,6 +834,7 @@ var funcs = map[string]functionClass{ ast.TiDBVersion: &tidbVersionFunctionClass{baseFunctionClass{ast.TiDBVersion, 0, 0}}, ast.TiDBIsDDLOwner: &tidbIsDDLOwnerFunctionClass{baseFunctionClass{ast.TiDBIsDDLOwner, 0, 0}}, ast.TiDBDecodePlan: &tidbDecodePlanFunctionClass{baseFunctionClass{ast.TiDBDecodePlan, 1, 1}}, + ast.TiDBDecodeBinaryPlan: &tidbDecodePlanFunctionClass{baseFunctionClass{ast.TiDBDecodeBinaryPlan, 1, 1}}, ast.TiDBDecodeSQLDigests: &tidbDecodeSQLDigestsFunctionClass{baseFunctionClass{ast.TiDBDecodeSQLDigests, 1, 2}}, // TiDB Sequence function. diff --git a/expression/builtin_arithmetic.go b/expression/builtin_arithmetic.go index 29579fb06a3f1..067b5c2b50d76 100644 --- a/expression/builtin_arithmetic.go +++ b/expression/builtin_arithmetic.go @@ -63,16 +63,32 @@ var ( // performed with the / operator. const precIncrement = 4 +// isConstantBinaryLiteral return true if expr is constant binary literal +func isConstantBinaryLiteral(expr Expression) bool { + if types.IsBinaryStr(expr.GetType()) { + if v, ok := expr.(*Constant); ok { + if k := v.Value.Kind(); k == types.KindBinaryLiteral { + return true + } + } + } + return false +} + // numericContextResultType returns types.EvalType for numeric function's parameters. // the returned types.EvalType should be one of: types.ETInt, types.ETDecimal, types.ETReal -func numericContextResultType(ft *types.FieldType) types.EvalType { +func numericContextResultType(expr Expression) types.EvalType { + ft := expr.GetType() if types.IsTypeTemporal(ft.GetType()) { if ft.GetDecimal() > 0 { return types.ETDecimal } return types.ETInt } - if types.IsBinaryStr(ft) || ft.GetType() == mysql.TypeBit { + // to solve https://github.com/pingcap/tidb/issues/27698 + // if expression is constant binary literal, like `0x1234`, `0b00011`, cast to integer + // for other binary str column related expression, like varbinary, cast to float/double. + if isConstantBinaryLiteral(expr) || ft.GetType() == mysql.TypeBit { return types.ETInt } evalTp4Ft := types.ETReal @@ -153,8 +169,7 @@ func (c *arithmeticPlusFunctionClass) getFunction(ctx sessionctx.Context, args [ if err := c.verifyArgs(args); err != nil { return nil, err } - lhsTp, rhsTp := args[0].GetType(), args[1].GetType() - lhsEvalTp, rhsEvalTp := numericContextResultType(lhsTp), numericContextResultType(rhsTp) + lhsEvalTp, rhsEvalTp := numericContextResultType(args[0]), numericContextResultType(args[1]) if lhsEvalTp == types.ETReal || rhsEvalTp == types.ETReal { bf, err := newBaseBuiltinFuncWithTp(ctx, c.funcName, args, types.ETReal, types.ETReal, types.ETReal) if err != nil { @@ -305,8 +320,7 @@ func (c *arithmeticMinusFunctionClass) getFunction(ctx sessionctx.Context, args if err := c.verifyArgs(args); err != nil { return nil, err } - lhsTp, rhsTp := args[0].GetType(), args[1].GetType() - lhsEvalTp, rhsEvalTp := numericContextResultType(lhsTp), numericContextResultType(rhsTp) + lhsEvalTp, rhsEvalTp := numericContextResultType(args[0]), numericContextResultType(args[1]) if lhsEvalTp == types.ETReal || rhsEvalTp == types.ETReal { bf, err := newBaseBuiltinFuncWithTp(ctx, c.funcName, args, types.ETReal, types.ETReal, types.ETReal) if err != nil { @@ -492,7 +506,7 @@ func (c *arithmeticMultiplyFunctionClass) getFunction(ctx sessionctx.Context, ar return nil, err } lhsTp, rhsTp := args[0].GetType(), args[1].GetType() - lhsEvalTp, rhsEvalTp := numericContextResultType(lhsTp), numericContextResultType(rhsTp) + lhsEvalTp, rhsEvalTp := numericContextResultType(args[0]), numericContextResultType(args[1]) if lhsEvalTp == types.ETReal || rhsEvalTp == types.ETReal { bf, err := newBaseBuiltinFuncWithTp(ctx, c.funcName, args, types.ETReal, types.ETReal, types.ETReal) if err != nil { @@ -639,7 +653,7 @@ func (c *arithmeticDivideFunctionClass) getFunction(ctx sessionctx.Context, args return nil, err } lhsTp, rhsTp := args[0].GetType(), args[1].GetType() - lhsEvalTp, rhsEvalTp := numericContextResultType(lhsTp), numericContextResultType(rhsTp) + lhsEvalTp, rhsEvalTp := numericContextResultType(args[0]), numericContextResultType(args[1]) if lhsEvalTp == types.ETReal || rhsEvalTp == types.ETReal { bf, err := newBaseBuiltinFuncWithTp(ctx, c.funcName, args, types.ETReal, types.ETReal, types.ETReal) if err != nil { @@ -732,9 +746,8 @@ func (c *arithmeticIntDivideFunctionClass) getFunction(ctx sessionctx.Context, a if err := c.verifyArgs(args); err != nil { return nil, err } - lhsTp, rhsTp := args[0].GetType(), args[1].GetType() - lhsEvalTp, rhsEvalTp := numericContextResultType(lhsTp), numericContextResultType(rhsTp) + lhsEvalTp, rhsEvalTp := numericContextResultType(args[0]), numericContextResultType(args[1]) if lhsEvalTp == types.ETInt && rhsEvalTp == types.ETInt { bf, err := newBaseBuiltinFuncWithTp(ctx, c.funcName, args, types.ETInt, types.ETInt, types.ETInt) if err != nil { @@ -897,7 +910,7 @@ func (c *arithmeticModFunctionClass) getFunction(ctx sessionctx.Context, args [] return nil, err } lhsTp, rhsTp := args[0].GetType(), args[1].GetType() - lhsEvalTp, rhsEvalTp := numericContextResultType(lhsTp), numericContextResultType(rhsTp) + lhsEvalTp, rhsEvalTp := numericContextResultType(args[0]), numericContextResultType(args[1]) if lhsEvalTp == types.ETReal || rhsEvalTp == types.ETReal { bf, err := newBaseBuiltinFuncWithTp(ctx, c.funcName, args, types.ETReal, types.ETReal, types.ETReal) if err != nil { diff --git a/expression/builtin_cast.go b/expression/builtin_cast.go index cc7b9d3683b71..df7d66bce0b54 100644 --- a/expression/builtin_cast.go +++ b/expression/builtin_cast.go @@ -26,6 +26,7 @@ import ( "math" "strconv" "strings" + gotime "time" "github.com/pingcap/errors" "github.com/pingcap/tidb/parser/ast" @@ -524,7 +525,6 @@ func (b *builtinCastIntAsDecimalSig) evalDecimal(row chunk.Row) (res *types.MyDe if isNull || err != nil { return res, isNull, err } - if unsignedArgs0 := mysql.HasUnsignedFlag(b.args[0].GetType().GetFlag()); !mysql.HasUnsignedFlag(b.tp.GetFlag()) && !unsignedArgs0 { res = types.NewDecFromInt(val) // Round up to 0 if the value is negative but the expression eval type is unsigned in `UNION` statement @@ -1607,7 +1607,11 @@ func (b *builtinCastDurationAsTimeSig) evalTime(row chunk.Row) (res types.Time, return res, isNull, err } sc := b.ctx.GetSessionVars().StmtCtx - res, err = val.ConvertToTime(sc, b.tp.GetType()) + ts, err := getStmtTimestamp(b.ctx) + if err != nil { + ts = gotime.Now() + } + res, err = val.ConvertToTimeWithTimestamp(sc, b.tp.GetType(), ts) if err != nil { return types.ZeroTime, true, handleInvalidTimeError(b.ctx, err) } @@ -1773,7 +1777,7 @@ func (b *builtinCastJSONAsDurationSig) evalDuration(row chunk.Row) (res types.Du // in special cast context that negative unsigned num will be zero. type inCastContext int -func (i inCastContext) String() string { +func (inCastContext) String() string { return "__cast_ctx" } diff --git a/expression/builtin_cast_test.go b/expression/builtin_cast_test.go index 388925eb3d14a..bf37b37d5206e 100644 --- a/expression/builtin_cast_test.go +++ b/expression/builtin_cast_test.go @@ -255,14 +255,15 @@ func TestCastFunctions(t *testing.T) { } var ( - year, month, day = time.Now().In(time.UTC).Date() - curDateInt = int64(year*10000 + int(month)*100 + day) - curTimeInt = curDateInt*1000000 + 125959 - curTimeWithFspReal = float64(curTimeInt) + 0.555 - curTimeString = fmt.Sprintf("%4d-%02d-%02d 12:59:59", year, int(month), day) - curTimeWithFspString = fmt.Sprintf("%4d-%02d-%02d 12:59:59.555000", year, int(month), day) - tm = types.NewTime(types.FromDate(year, int(month), day, 12, 59, 59, 0), mysql.TypeDatetime, types.DefaultFsp) - tmWithFsp = types.NewTime(types.FromDate(year, int(month), day, 12, 59, 59, 555000), mysql.TypeDatetime, types.MaxFsp) + year, month, day = time.Now().In(time.UTC).Date() + curDateInt = int64(year*10000 + int(month)*100 + day) + curTimeInt = curDateInt*1000000 + 125959 + curTimeWithFspReal = float64(curTimeInt) + 0.555 + curTimeString = fmt.Sprintf("%4d-%02d-%02d 12:59:59", year, int(month), day) + curTimeWithFspString = fmt.Sprintf("%4d-%02d-%02d 12:59:59.555000", year, int(month), day) + tm = types.NewTime(types.FromDate(year, int(month), day, 12, 59, 59, 0), mysql.TypeDatetime, types.DefaultFsp) + tmWithFsp = types.NewTime(types.FromDate(year, int(month), day, 12, 59, 59, 555000), mysql.TypeDatetime, types.MaxFsp) + tmWithFspAndZeroMicrosecond = types.NewTime(types.FromDate(year, int(month), day, 12, 59, 59, 000000), mysql.TypeDatetime, types.MaxFsp) // timeDatum indicates datetime "curYear-curMonth-curDay 12:59:59". timeDatum = types.NewDatum(tm) // timeWithFspDatum indicates datetime "curYear-curMonth-curDay 12:59:59.555000". @@ -275,6 +276,9 @@ var ( durationWithFsp = types.Duration{ Duration: 12*time.Hour + 59*time.Minute + 59*time.Second + 555*time.Millisecond, Fsp: 3} + durationWithFspAndZeroMicrosecond = types.Duration{ + Duration: 12*time.Hour + 59*time.Minute + 59*time.Second, + Fsp: 3} // durationWithFspDatum indicates duration "12:59:59.555" durationWithFspDatum = types.NewDatum(durationWithFsp) dt = types.NewTime(types.FromDate(year, int(month), day, 0, 0, 0, 0), mysql.TypeDate, types.DefaultFsp) diff --git a/expression/builtin_cast_vec.go b/expression/builtin_cast_vec.go index 141ff49c26f13..2482739d0a9df 100644 --- a/expression/builtin_cast_vec.go +++ b/expression/builtin_cast_vec.go @@ -18,6 +18,7 @@ import ( "math" "strconv" "strings" + gotime "time" "github.com/pingcap/tidb/parser/mysql" "github.com/pingcap/tidb/types" @@ -63,7 +64,7 @@ func (b *builtinCastIntAsDurationSig) vecEvalDuration(input *chunk.Chunk, result return nil } -func (b *builtinCastIntAsDurationSig) vectorized() bool { +func (*builtinCastIntAsDurationSig) vectorized() bool { return true } @@ -84,7 +85,7 @@ func (b *builtinCastIntAsIntSig) vecEvalInt(input *chunk.Chunk, result *chunk.Co return nil } -func (b *builtinCastIntAsIntSig) vectorized() bool { +func (*builtinCastIntAsIntSig) vectorized() bool { return true } @@ -128,7 +129,7 @@ func (b *builtinCastIntAsRealSig) vecEvalReal(input *chunk.Chunk, result *chunk. return nil } -func (b *builtinCastIntAsRealSig) vectorized() bool { +func (*builtinCastIntAsRealSig) vectorized() bool { return true } @@ -153,11 +154,11 @@ func (b *builtinCastRealAsRealSig) vecEvalReal(input *chunk.Chunk, result *chunk return nil } -func (b *builtinCastRealAsRealSig) vectorized() bool { +func (*builtinCastRealAsRealSig) vectorized() bool { return true } -func (b *builtinCastTimeAsJSONSig) vectorized() bool { +func (*builtinCastTimeAsJSONSig) vectorized() bool { return true } @@ -189,7 +190,7 @@ func (b *builtinCastTimeAsJSONSig) vecEvalJSON(input *chunk.Chunk, result *chunk return nil } -func (b *builtinCastRealAsStringSig) vectorized() bool { +func (*builtinCastRealAsStringSig) vectorized() bool { return true } @@ -239,7 +240,7 @@ func (b *builtinCastRealAsStringSig) vecEvalString(input *chunk.Chunk, result *c return nil } -func (b *builtinCastDecimalAsStringSig) vectorized() bool { +func (*builtinCastDecimalAsStringSig) vectorized() bool { return true } @@ -279,7 +280,7 @@ func (b *builtinCastDecimalAsStringSig) vecEvalString(input *chunk.Chunk, result return nil } -func (b *builtinCastTimeAsDecimalSig) vectorized() bool { +func (*builtinCastTimeAsDecimalSig) vectorized() bool { return true } @@ -315,7 +316,7 @@ func (b *builtinCastTimeAsDecimalSig) vecEvalDecimal(input *chunk.Chunk, result return nil } -func (b *builtinCastDurationAsIntSig) vectorized() bool { +func (*builtinCastDurationAsIntSig) vectorized() bool { return true } @@ -353,10 +354,9 @@ func (b *builtinCastDurationAsIntSig) vecEvalInt(input *chunk.Chunk, result *chu } } return nil - } -func (b *builtinCastIntAsTimeSig) vectorized() bool { +func (*builtinCastIntAsTimeSig) vectorized() bool { return true } @@ -406,7 +406,7 @@ func (b *builtinCastIntAsTimeSig) vecEvalTime(input *chunk.Chunk, result *chunk. return nil } -func (b *builtinCastRealAsJSONSig) vectorized() bool { +func (*builtinCastRealAsJSONSig) vectorized() bool { return true } @@ -433,7 +433,7 @@ func (b *builtinCastRealAsJSONSig) vecEvalJSON(input *chunk.Chunk, result *chunk return nil } -func (b *builtinCastJSONAsRealSig) vectorized() bool { +func (*builtinCastJSONAsRealSig) vectorized() bool { return true } @@ -464,7 +464,7 @@ func (b *builtinCastJSONAsRealSig) vecEvalReal(input *chunk.Chunk, result *chunk return nil } -func (b *builtinCastJSONAsTimeSig) vectorized() bool { +func (*builtinCastJSONAsTimeSig) vectorized() bool { return true } @@ -509,7 +509,7 @@ func (b *builtinCastJSONAsTimeSig) vecEvalTime(input *chunk.Chunk, result *chunk return nil } -func (b *builtinCastRealAsTimeSig) vectorized() bool { +func (*builtinCastRealAsTimeSig) vectorized() bool { return true } @@ -556,7 +556,7 @@ func (b *builtinCastRealAsTimeSig) vecEvalTime(input *chunk.Chunk, result *chunk return nil } -func (b *builtinCastDecimalAsDecimalSig) vectorized() bool { +func (*builtinCastDecimalAsDecimalSig) vectorized() bool { return true } @@ -587,7 +587,7 @@ func (b *builtinCastDecimalAsDecimalSig) vecEvalDecimal(input *chunk.Chunk, resu return nil } -func (b *builtinCastDurationAsTimeSig) vectorized() bool { +func (*builtinCastDurationAsTimeSig) vectorized() bool { return true } @@ -608,6 +608,10 @@ func (b *builtinCastDurationAsTimeSig) vecEvalTime(input *chunk.Chunk, result *c ds := buf.GoDurations() times := result.Times() stmtCtx := b.ctx.GetSessionVars().StmtCtx + ts, err := getStmtTimestamp(b.ctx) + if err != nil { + ts = gotime.Now() + } fsp := b.tp.GetDecimal() for i := 0; i < n; i++ { if result.IsNull(i) { @@ -616,7 +620,7 @@ func (b *builtinCastDurationAsTimeSig) vecEvalTime(input *chunk.Chunk, result *c duration.Duration = ds[i] duration.Fsp = fsp - tm, err := duration.ConvertToTime(stmtCtx, b.tp.GetType()) + tm, err := duration.ConvertToTimeWithTimestamp(stmtCtx, b.tp.GetType(), ts) if err != nil { if err = handleInvalidTimeError(b.ctx, err); err != nil { return err @@ -633,7 +637,7 @@ func (b *builtinCastDurationAsTimeSig) vecEvalTime(input *chunk.Chunk, result *c return nil } -func (b *builtinCastIntAsStringSig) vectorized() bool { +func (*builtinCastIntAsStringSig) vectorized() bool { return true } @@ -685,7 +689,7 @@ func (b *builtinCastIntAsStringSig) vecEvalString(input *chunk.Chunk, result *ch return nil } -func (b *builtinCastRealAsIntSig) vectorized() bool { +func (*builtinCastRealAsIntSig) vectorized() bool { return true } @@ -730,7 +734,7 @@ func (b *builtinCastRealAsIntSig) vecEvalInt(input *chunk.Chunk, result *chunk.C return nil } -func (b *builtinCastTimeAsRealSig) vectorized() bool { +func (*builtinCastTimeAsRealSig) vectorized() bool { return true } @@ -768,7 +772,7 @@ func (b *builtinCastTimeAsRealSig) vecEvalReal(input *chunk.Chunk, result *chunk return nil } -func (b *builtinCastStringAsJSONSig) vectorized() bool { +func (*builtinCastStringAsJSONSig) vectorized() bool { return true } @@ -810,7 +814,7 @@ func (b *builtinCastStringAsJSONSig) vecEvalJSON(input *chunk.Chunk, result *chu return nil } -func (b *builtinCastRealAsDecimalSig) vectorized() bool { +func (*builtinCastRealAsDecimalSig) vectorized() bool { return true } @@ -855,7 +859,7 @@ func (b *builtinCastRealAsDecimalSig) vecEvalDecimal(input *chunk.Chunk, result return nil } -func (b *builtinCastStringAsIntSig) vectorized() bool { +func (*builtinCastStringAsIntSig) vectorized() bool { return true } @@ -918,7 +922,7 @@ func (b *builtinCastStringAsIntSig) vecEvalInt(input *chunk.Chunk, result *chunk return nil } -func (b *builtinCastStringAsDurationSig) vectorized() bool { +func (*builtinCastStringAsDurationSig) vectorized() bool { return true } @@ -957,7 +961,7 @@ func (b *builtinCastStringAsDurationSig) vecEvalDuration(input *chunk.Chunk, res return nil } -func (b *builtinCastDurationAsDecimalSig) vectorized() bool { +func (*builtinCastDurationAsDecimalSig) vectorized() bool { return true } @@ -996,7 +1000,7 @@ func (b *builtinCastDurationAsDecimalSig) vecEvalDecimal(input *chunk.Chunk, res return nil } -func (b *builtinCastIntAsDecimalSig) vectorized() bool { +func (*builtinCastIntAsDecimalSig) vectorized() bool { return true } @@ -1042,7 +1046,7 @@ func (b *builtinCastIntAsDecimalSig) vecEvalDecimal(input *chunk.Chunk, result * return nil } -func (b *builtinCastIntAsJSONSig) vectorized() bool { +func (*builtinCastIntAsJSONSig) vectorized() bool { return true } @@ -1087,7 +1091,7 @@ func (b *builtinCastIntAsJSONSig) vecEvalJSON(input *chunk.Chunk, result *chunk. return nil } -func (b *builtinCastJSONAsJSONSig) vectorized() bool { +func (*builtinCastJSONAsJSONSig) vectorized() bool { return true } @@ -1095,7 +1099,7 @@ func (b *builtinCastJSONAsJSONSig) vecEvalJSON(input *chunk.Chunk, result *chunk return b.args[0].VecEvalJSON(b.ctx, input, result) } -func (b *builtinCastJSONAsStringSig) vectorized() bool { +func (*builtinCastJSONAsStringSig) vectorized() bool { return true } @@ -1121,7 +1125,7 @@ func (b *builtinCastJSONAsStringSig) vecEvalString(input *chunk.Chunk, result *c return nil } -func (b *builtinCastDurationAsRealSig) vectorized() bool { +func (*builtinCastDurationAsRealSig) vectorized() bool { return true } @@ -1160,7 +1164,7 @@ func (b *builtinCastDurationAsRealSig) vecEvalReal(input *chunk.Chunk, result *c return nil } -func (b *builtinCastJSONAsIntSig) vectorized() bool { +func (*builtinCastJSONAsIntSig) vectorized() bool { return true } @@ -1191,7 +1195,7 @@ func (b *builtinCastJSONAsIntSig) vecEvalInt(input *chunk.Chunk, result *chunk.C return nil } -func (b *builtinCastRealAsDurationSig) vectorized() bool { +func (*builtinCastRealAsDurationSig) vectorized() bool { return true } @@ -1231,7 +1235,7 @@ func (b *builtinCastRealAsDurationSig) vecEvalDuration(input *chunk.Chunk, resul return nil } -func (b *builtinCastTimeAsDurationSig) vectorized() bool { +func (*builtinCastTimeAsDurationSig) vectorized() bool { return true } @@ -1266,7 +1270,7 @@ func (b *builtinCastTimeAsDurationSig) vecEvalDuration(input *chunk.Chunk, resul return nil } -func (b *builtinCastDurationAsDurationSig) vectorized() bool { +func (*builtinCastDurationAsDurationSig) vectorized() bool { return true } @@ -1295,7 +1299,7 @@ func (b *builtinCastDurationAsDurationSig) vecEvalDuration(input *chunk.Chunk, r return nil } -func (b *builtinCastDurationAsStringSig) vectorized() bool { +func (*builtinCastDurationAsStringSig) vectorized() bool { return true } @@ -1337,7 +1341,7 @@ func (b *builtinCastDurationAsStringSig) vecEvalString(input *chunk.Chunk, resul return nil } -func (b *builtinCastDecimalAsRealSig) vectorized() bool { +func (*builtinCastDecimalAsRealSig) vectorized() bool { return true } @@ -1383,7 +1387,7 @@ func (b *builtinCastDecimalAsRealSig) vecEvalReal(input *chunk.Chunk, result *ch return nil } -func (b *builtinCastDecimalAsTimeSig) vectorized() bool { +func (*builtinCastDecimalAsTimeSig) vectorized() bool { return true } @@ -1425,7 +1429,7 @@ func (b *builtinCastDecimalAsTimeSig) vecEvalTime(input *chunk.Chunk, result *ch return nil } -func (b *builtinCastTimeAsIntSig) vectorized() bool { +func (*builtinCastTimeAsIntSig) vectorized() bool { return true } @@ -1461,7 +1465,7 @@ func (b *builtinCastTimeAsIntSig) vecEvalInt(input *chunk.Chunk, result *chunk.C return nil } -func (b *builtinCastTimeAsTimeSig) vectorized() bool { +func (*builtinCastTimeAsTimeSig) vectorized() bool { return true } @@ -1500,7 +1504,7 @@ func (b *builtinCastTimeAsTimeSig) vecEvalTime(input *chunk.Chunk, result *chunk return nil } -func (b *builtinCastTimeAsStringSig) vectorized() bool { +func (*builtinCastTimeAsStringSig) vectorized() bool { return true } @@ -1542,7 +1546,7 @@ func (b *builtinCastTimeAsStringSig) vecEvalString(input *chunk.Chunk, result *c return nil } -func (b *builtinCastJSONAsDecimalSig) vectorized() bool { +func (*builtinCastJSONAsDecimalSig) vectorized() bool { return true } @@ -1577,7 +1581,7 @@ func (b *builtinCastJSONAsDecimalSig) vecEvalDecimal(input *chunk.Chunk, result return nil } -func (b *builtinCastStringAsRealSig) vectorized() bool { +func (*builtinCastStringAsRealSig) vectorized() bool { return true } @@ -1626,7 +1630,7 @@ func (b *builtinCastStringAsRealSig) vecEvalReal(input *chunk.Chunk, result *chu return nil } -func (b *builtinCastStringAsDecimalSig) vectorized() bool { +func (*builtinCastStringAsDecimalSig) vectorized() bool { return true } @@ -1668,7 +1672,7 @@ func (b *builtinCastStringAsDecimalSig) vecEvalDecimal(input *chunk.Chunk, resul return nil } -func (b *builtinCastStringAsTimeSig) vectorized() bool { +func (*builtinCastStringAsTimeSig) vectorized() bool { return true } @@ -1717,7 +1721,7 @@ func (b *builtinCastStringAsTimeSig) vecEvalTime(input *chunk.Chunk, result *chu return nil } -func (b *builtinCastDecimalAsIntSig) vectorized() bool { +func (*builtinCastDecimalAsIntSig) vectorized() bool { return true } @@ -1770,7 +1774,7 @@ func (b *builtinCastDecimalAsIntSig) vecEvalInt(input *chunk.Chunk, result *chun return nil } -func (b *builtinCastDecimalAsDurationSig) vectorized() bool { +func (*builtinCastDecimalAsDurationSig) vectorized() bool { return true } @@ -1811,7 +1815,7 @@ func (b *builtinCastDecimalAsDurationSig) vecEvalDuration(input *chunk.Chunk, re return nil } -func (b *builtinCastStringAsStringSig) vectorized() bool { +func (*builtinCastStringAsStringSig) vectorized() bool { return true } @@ -1852,7 +1856,7 @@ func (b *builtinCastStringAsStringSig) vecEvalString(input *chunk.Chunk, result return nil } -func (b *builtinCastJSONAsDurationSig) vectorized() bool { +func (*builtinCastJSONAsDurationSig) vectorized() bool { return true } @@ -1892,7 +1896,7 @@ func (b *builtinCastJSONAsDurationSig) vecEvalDuration(input *chunk.Chunk, resul return nil } -func (b *builtinCastDecimalAsJSONSig) vectorized() bool { +func (*builtinCastDecimalAsJSONSig) vectorized() bool { return true } @@ -1925,7 +1929,7 @@ func (b *builtinCastDecimalAsJSONSig) vecEvalJSON(input *chunk.Chunk, result *ch return nil } -func (b *builtinCastDurationAsJSONSig) vectorized() bool { +func (*builtinCastDurationAsJSONSig) vectorized() bool { return true } diff --git a/expression/builtin_compare.go b/expression/builtin_compare.go index 6ef85a4b9c057..f02e45cc8bbac 100644 --- a/expression/builtin_compare.go +++ b/expression/builtin_compare.go @@ -135,11 +135,6 @@ func (c *coalesceFunctionClass) getFunction(ctx sessionctx.Context, args []Expre fieldEvalTps = append(fieldEvalTps, retEvalTp) } - fsp, err := getExpressionFsp(ctx, args[0]) - if err != nil { - return nil, err - } - bf, err := newBaseBuiltinFuncWithTp(ctx, c.funcName, args, retEvalTp, fieldEvalTps...) if err != nil { return nil, err @@ -214,10 +209,11 @@ func (c *coalesceFunctionClass) getFunction(ctx sessionctx.Context, args []Expre sig = &builtinCoalesceStringSig{bf} sig.setPbCode(tipb.ScalarFuncSig_CoalesceString) case types.ETDatetime, types.ETTimestamp: + bf.tp.SetDecimal(resultFieldType.GetDecimal()) sig = &builtinCoalesceTimeSig{bf} sig.setPbCode(tipb.ScalarFuncSig_CoalesceTime) case types.ETDuration: - bf.tp.SetDecimal(fsp) + bf.tp.SetDecimal(resultFieldType.GetDecimal()) sig = &builtinCoalesceDurationSig{bf} sig.setPbCode(tipb.ScalarFuncSig_CoalesceDuration) case types.ETJson: @@ -329,8 +325,10 @@ func (b *builtinCoalesceTimeSig) Clone() builtinFunc { } func (b *builtinCoalesceTimeSig) evalTime(row chunk.Row) (res types.Time, isNull bool, err error) { + fsp := b.tp.GetDecimal() for _, a := range b.getArgs() { res, isNull, err = a.EvalTime(b.ctx, row) + res.SetFsp(fsp) if err != nil || !isNull { break } @@ -353,6 +351,7 @@ func (b *builtinCoalesceDurationSig) Clone() builtinFunc { func (b *builtinCoalesceDurationSig) evalDuration(row chunk.Row) (res types.Duration, isNull bool, err error) { for _, a := range b.getArgs() { res, isNull, err = a.EvalDuration(b.ctx, row) + res.Fsp = b.tp.GetDecimal() if err != nil || !isNull { break } diff --git a/expression/builtin_compare_test.go b/expression/builtin_compare_test.go index 89439f245dd82..9e006da275fdf 100644 --- a/expression/builtin_compare_test.go +++ b/expression/builtin_compare_test.go @@ -185,7 +185,13 @@ func TestCoalesce(t *testing.T) { {[]interface{}{nil, types.NewDecFromFloatForTest(123.456)}, types.NewDecFromFloatForTest(123.456), false, false}, {[]interface{}{1, types.NewDecFromFloatForTest(123.456)}, types.NewDecFromInt(1), false, false}, {[]interface{}{nil, duration}, duration, false, false}, + {[]interface{}{nil, durationWithFsp}, durationWithFsp, false, false}, + {[]interface{}{durationWithFsp, duration}, durationWithFsp, false, false}, + {[]interface{}{duration, durationWithFsp}, durationWithFspAndZeroMicrosecond, false, false}, {[]interface{}{nil, tm, nil}, tm, false, false}, + {[]interface{}{nil, tmWithFsp, nil}, tmWithFsp, false, false}, + {[]interface{}{tmWithFsp, tm, nil}, tmWithFsp, false, false}, + {[]interface{}{tm, tmWithFsp, nil}, tmWithFspAndZeroMicrosecond, false, false}, {[]interface{}{nil, dt, nil}, dt, false, false}, {[]interface{}{tm, dt}, tm, false, false}, } @@ -203,7 +209,11 @@ func TestCoalesce(t *testing.T) { if test.isNil { require.Equal(t, types.KindNull, d.Kind()) } else { - require.Equal(t, test.expected, d.GetValue()) + if f.GetType().EvalType() == types.ETDuration { + require.Equal(t, test.expected.(types.Duration).String(), d.GetValue().(types.Duration).String()) + } else { + require.Equal(t, test.expected, d.GetValue()) + } } } } diff --git a/expression/builtin_compare_vec_generated.go b/expression/builtin_compare_vec_generated.go index f93ba43005e63..7149807860aa1 100644 --- a/expression/builtin_compare_vec_generated.go +++ b/expression/builtin_compare_vec_generated.go @@ -1883,6 +1883,7 @@ func (b *builtinCoalesceTimeSig) vecEvalTime(input *chunk.Chunk, result *chunk.C beforeWarns := sc.WarningCount() for j := 0; j < len(b.args); j++ { err := b.args[j].VecEvalTime(b.ctx, input, buf1) + fsp := b.tp.GetDecimal() afterWarns := sc.WarningCount() if err != nil || afterWarns > beforeWarns { if afterWarns > beforeWarns { @@ -1894,6 +1895,7 @@ func (b *builtinCoalesceTimeSig) vecEvalTime(input *chunk.Chunk, result *chunk.C for i := 0; i < n; i++ { if !buf1.IsNull(i) && result.IsNull(i) { i64s[i] = args[i] + i64s[i].SetFsp(fsp) result.SetNull(i, false) } } diff --git a/expression/builtin_info.go b/expression/builtin_info.go index 1e61039b5d018..446f38fd9c409 100644 --- a/expression/builtin_info.go +++ b/expression/builtin_info.go @@ -25,6 +25,7 @@ import ( "time" "github.com/pingcap/errors" + "github.com/pingcap/tidb/parser/ast" "github.com/pingcap/tidb/parser/model" "github.com/pingcap/tidb/parser/mysql" "github.com/pingcap/tidb/privilege" @@ -938,8 +939,12 @@ func (c *tidbDecodePlanFunctionClass) getFunction(ctx sessionctx.Context, args [ if err != nil { return nil, err } - sig := &builtinTiDBDecodePlanSig{bf} - return sig, nil + if c.funcName == ast.TiDBDecodePlan { + return &builtinTiDBDecodePlanSig{bf}, nil + } else if c.funcName == ast.TiDBDecodeBinaryPlan { + return &builtinTiDBDecodeBinaryPlanSig{bf}, nil + } + return nil, errors.New("unknown decode plan function") } type builtinTiDBDecodePlanSig struct { @@ -964,6 +969,29 @@ func (b *builtinTiDBDecodePlanSig) evalString(row chunk.Row) (string, bool, erro return planTree, false, nil } +type builtinTiDBDecodeBinaryPlanSig struct { + baseBuiltinFunc +} + +func (b *builtinTiDBDecodeBinaryPlanSig) Clone() builtinFunc { + newSig := &builtinTiDBDecodeBinaryPlanSig{} + newSig.cloneFrom(&b.baseBuiltinFunc) + return newSig +} + +func (b *builtinTiDBDecodeBinaryPlanSig) evalString(row chunk.Row) (string, bool, error) { + planString, isNull, err := b.args[0].EvalString(b.ctx, row) + if isNull || err != nil { + return "", isNull, err + } + planTree, err := plancodec.DecodeBinaryPlan(planString) + if err != nil { + b.ctx.GetSessionVars().StmtCtx.AppendWarning(err) + return "", false, nil + } + return planTree, false, nil +} + type nextValFunctionClass struct { baseFunctionClass } diff --git a/expression/builtin_time.go b/expression/builtin_time.go index d5d17bd4a6ecb..c54e0aecd79a6 100644 --- a/expression/builtin_time.go +++ b/expression/builtin_time.go @@ -2565,36 +2565,40 @@ func (c *extractFunctionClass) getFunction(ctx sessionctx.Context, args []Expres return nil, err } - datetimeUnits := map[string]struct{}{ - "DAY": {}, - "WEEK": {}, - "MONTH": {}, - "QUARTER": {}, - "YEAR": {}, - "DAY_MICROSECOND": {}, - "DAY_SECOND": {}, - "DAY_MINUTE": {}, - "DAY_HOUR": {}, - "YEAR_MONTH": {}, - } - isDatetimeUnit := true args[0] = WrapWithCastAsString(ctx, args[0]) - if _, isCon := args[0].(*Constant); isCon { - unit, _, err1 := args[0].EvalString(ctx, chunk.Row{}) - if err1 != nil { - return nil, err1 - } - _, isDatetimeUnit = datetimeUnits[unit] + unit, _, err := args[0].EvalString(ctx, chunk.Row{}) + if err != nil { + return nil, err } + isClockUnit := types.IsClockUnit(unit) + isDateUnit := types.IsDateUnit(unit) var bf baseBuiltinFunc - if isDatetimeUnit { - if args[1].GetType().EvalType() != types.ETString { + if isClockUnit && isDateUnit { + // For unit DAY_MICROSECOND/DAY_SECOND/DAY_MINUTE/DAY_HOUR, the interpretation of the second argument depends on its evaluation type: + // 1. Datetime/timestamp are interpreted as datetime. For example: + // extract(day_second from datetime('2001-01-01 02:03:04')) = 120304 + // Note that MySQL 5.5+ has a bug of no day portion in the result (20304) for this case, see https://bugs.mysql.com/bug.php?id=73240. + // 2. Time is interpreted as is. For example: + // extract(day_second from time('02:03:04')) = 20304 + // Note that time shouldn't be implicitly cast to datetime, or else the date portion will be padded with the current date and this will adjust time portion accordingly. + // 3. Otherwise, string/int/float are interpreted as arbitrarily either datetime or time, depending on which fits. For example: + // extract(day_second from '2001-01-01 02:03:04') = 1020304 // datetime + // extract(day_second from 20010101020304) = 1020304 // datetime + // extract(day_second from '01 02:03:04') = 260304 // time + if args[1].GetType().EvalType() == types.ETDatetime || args[1].GetType().EvalType() == types.ETTimestamp { bf, err = newBaseBuiltinFuncWithTp(ctx, c.funcName, args, types.ETInt, types.ETString, types.ETDatetime) if err != nil { return nil, err } sig = &builtinExtractDatetimeSig{bf} sig.setPbCode(tipb.ScalarFuncSig_ExtractDatetime) + } else if args[1].GetType().EvalType() == types.ETDuration { + bf, err = newBaseBuiltinFuncWithTp(ctx, c.funcName, args, types.ETInt, types.ETString, types.ETDuration) + if err != nil { + return nil, err + } + sig = &builtinExtractDurationSig{bf} + sig.setPbCode(tipb.ScalarFuncSig_ExtractDuration) } else { bf, err = newBaseBuiltinFuncWithTp(ctx, c.funcName, args, types.ETInt, types.ETString, types.ETString) if err != nil { @@ -2604,13 +2608,22 @@ func (c *extractFunctionClass) getFunction(ctx sessionctx.Context, args []Expres sig = &builtinExtractDatetimeFromStringSig{bf} sig.setPbCode(tipb.ScalarFuncSig_ExtractDatetimeFromString) } - } else { + } else if isClockUnit { + // Clock units interpret the second argument as time. bf, err = newBaseBuiltinFuncWithTp(ctx, c.funcName, args, types.ETInt, types.ETString, types.ETDuration) if err != nil { return nil, err } sig = &builtinExtractDurationSig{bf} sig.setPbCode(tipb.ScalarFuncSig_ExtractDuration) + } else { + // Date units interpret the second argument as datetime. + bf, err = newBaseBuiltinFuncWithTp(ctx, c.funcName, args, types.ETInt, types.ETString, types.ETDatetime) + if err != nil { + return nil, err + } + sig = &builtinExtractDatetimeSig{bf} + sig.setPbCode(tipb.ScalarFuncSig_ExtractDatetime) } return sig, nil } @@ -2625,7 +2638,7 @@ func (b *builtinExtractDatetimeFromStringSig) Clone() builtinFunc { return newSig } -// evalInt evals a builtinExtractDatetimeSig. +// evalInt evals a builtinExtractDatetimeFromStringSig. // See https://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html#function_extract func (b *builtinExtractDatetimeFromStringSig) evalInt(row chunk.Row) (int64, bool, error) { unit, isNull, err := b.args[0].EvalString(b.ctx, row) @@ -2637,8 +2650,7 @@ func (b *builtinExtractDatetimeFromStringSig) evalInt(row chunk.Row) (int64, boo return 0, isNull, err } sc := b.ctx.GetSessionVars().StmtCtx - switch strings.ToUpper(unit) { - case "DAY_MICROSECOND", "DAY_SECOND", "DAY_MINUTE", "DAY_HOUR": + if types.IsClockUnit(unit) && types.IsDateUnit(unit) { dur, _, err := types.ParseDuration(sc, dtStr, types.GetFsp(dtStr)) if err != nil { return 0, true, err @@ -2656,22 +2668,8 @@ func (b *builtinExtractDatetimeFromStringSig) evalInt(row chunk.Row) (int64, boo } return res, err != nil, err } - dt, err := types.ParseDatetime(sc, dtStr) - if err != nil { - if !terror.ErrorEqual(err, types.ErrWrongValue) { - return 0, true, err - } - } - if dt.IsZero() { - dt.SetFsp(b.args[1].GetType().GetDecimal()) - if b.ctx.GetSessionVars().SQLMode.HasNoZeroDateMode() { - isNull, err := handleInvalidZeroTime(b.ctx, dt) - return 0, isNull, err - } - return 0, false, nil - } - res, err := types.ExtractDatetimeNum(&dt, unit) - return res, err != nil, err + + panic("Unexpected unit for extract") } type builtinExtractDatetimeSig struct { @@ -6454,19 +6452,6 @@ func (b *builtinTidbParseTsoSig) evalTime(row chunk.Row) (types.Time, bool, erro return result, false, nil } -func handleInvalidZeroTime(ctx sessionctx.Context, t types.Time) (bool, error) { - // MySQL compatibility, #11203 - // 0 | 0.0 should be converted to null without warnings - n, err := t.ToNumber().ToInt() - isOriginalIntOrDecimalZero := err == nil && n == 0 - // Args like "0000-00-00", "0000-00-00 00:00:00" set Fsp to 6 - isOriginalStringZero := t.Fsp() > 0 - if isOriginalIntOrDecimalZero && !isOriginalStringZero { - return false, nil - } - return true, handleInvalidTimeError(ctx, types.ErrWrongValue.GenWithStackByArgs(types.DateTimeStr, t.String())) -} - // tidbBoundedStalenessFunctionClass reads a time window [a, b] and compares it with the latest SafeTS // to determine which TS to use in a read only transaction. type tidbBoundedStalenessFunctionClass struct { diff --git a/expression/expr_to_pb_test.go b/expression/expr_to_pb_test.go index c65e43b408390..d63bc2b95af40 100644 --- a/expression/expr_to_pb_test.go +++ b/expression/expr_to_pb_test.go @@ -551,7 +551,10 @@ func TestExprPushDownToFlash(t *testing.T) { exprs = append(exprs, function) // ExtractDatetime: can be pushed - function, err = NewFunction(mock.NewContext(), ast.Extract, types.NewFieldType(mysql.TypeLonglong), stringColumn, datetimeColumn) + extractDatetimeUnitCol := new(Constant) + extractDatetimeUnitCol.Value = types.NewStringDatum("day") + extractDatetimeUnitCol.RetType = types.NewFieldType(mysql.TypeString) + function, err = NewFunction(mock.NewContext(), ast.Extract, types.NewFieldType(mysql.TypeLonglong), extractDatetimeUnitCol, datetimeColumn) require.NoError(t, err) exprs = append(exprs, function) @@ -850,6 +853,11 @@ func TestExprPushDownToFlash(t *testing.T) { require.Equal(t, tipb.ScalarFuncSig_DayOfMonth, function.(*ScalarFunction).Function.PbCode()) exprs = append(exprs, function) + function, err = NewFunction(mock.NewContext(), ast.Repeat, types.NewFieldType(mysql.TypeString), stringColumn, intColumn) + require.NoError(t, err) + require.Equal(t, tipb.ScalarFuncSig_Repeat, function.(*ScalarFunction).Function.PbCode()) + exprs = append(exprs, function) + // Datediff function, err = NewFunction(mock.NewContext(), ast.DateDiff, types.NewFieldType(mysql.TypeLonglong), datetimeColumn, datetimeColumn) require.NoError(t, err) @@ -956,7 +964,10 @@ func TestExprPushDownToFlash(t *testing.T) { exprs = append(exprs, function) // ExtractDatetimeFromString: can not be pushed - function, err = NewFunction(mock.NewContext(), ast.Extract, types.NewFieldType(mysql.TypeLonglong), stringColumn, stringColumn) + extractDatetimeFromStringUnitCol := new(Constant) + extractDatetimeFromStringUnitCol.Value = types.NewStringDatum("day_microsecond") + extractDatetimeFromStringUnitCol.RetType = types.NewFieldType(mysql.TypeString) + function, err = NewFunction(mock.NewContext(), ast.Extract, types.NewFieldType(mysql.TypeLonglong), extractDatetimeFromStringUnitCol, stringColumn) require.NoError(t, err) exprs = append(exprs, function) @@ -1179,6 +1190,10 @@ func TestExprOnlyPushDownToFlash(t *testing.T) { require.NoError(t, err) exprs = append(exprs, function) + function, err = NewFunction(mock.NewContext(), ast.GetFormat, types.NewFieldType(mysql.TypeString), stringColumn, stringColumn) + require.NoError(t, err) + exprs = append(exprs, function) + function, err = NewFunction(mock.NewContext(), ast.TimestampDiff, types.NewFieldType(mysql.TypeLonglong), stringColumn, datetimeColumn, datetimeColumn) require.NoError(t, err) exprs = append(exprs, function) diff --git a/expression/expression.go b/expression/expression.go index 1a5c3248c889a..81252879688f2 100644 --- a/expression/expression.go +++ b/expression/expression.go @@ -1055,7 +1055,7 @@ func scalarExprSupportedByFlash(function *ScalarFunction) bool { ast.Sqrt, ast.Log, ast.Log2, ast.Log10, ast.Ln, ast.Exp, ast.Pow, ast.Sign, ast.Radians, ast.Degrees, ast.Conv, ast.CRC32, - ast.JSONLength, + ast.JSONLength, ast.Repeat, ast.InetNtoa, ast.InetAton, ast.Inet6Ntoa, ast.Inet6Aton, ast.Coalesce, ast.ASCII, ast.Length, ast.Trim, ast.Position, ast.Format, ast.LTrim, ast.RTrim, ast.Lpad, ast.Rpad, ast.Regexp, @@ -1158,6 +1158,8 @@ func scalarExprSupportedByFlash(function *ScalarFunction) bool { } case ast.IsTruthWithNull, ast.IsTruthWithoutNull, ast.IsFalsity: return true + case ast.GetFormat: + return true } return false } diff --git a/expression/generator/compare_vec.go b/expression/generator/compare_vec.go index dac52ca5a1be1..42004f3d5006c 100644 --- a/expression/generator/compare_vec.go +++ b/expression/generator/compare_vec.go @@ -224,6 +224,9 @@ func (b *builtin{{ .compare.CompareName }}{{ .type.TypeName }}Sig) vecEval{{ .ty beforeWarns := sc.WarningCount() for j := 0; j < len(b.args); j++{ err := b.args[j].VecEval{{ .type.TypeName }}(b.ctx, input, buf1) + {{- if eq .type.TypeName "Time" }} + fsp := b.tp.GetDecimal() + {{- end }} afterWarns := sc.WarningCount() if err != nil || afterWarns > beforeWarns { if afterWarns > beforeWarns { @@ -235,6 +238,9 @@ func (b *builtin{{ .compare.CompareName }}{{ .type.TypeName }}Sig) vecEval{{ .ty for i := 0; i < n; i++ { if !buf1.IsNull(i) && result.IsNull(i) { i64s[i] = args[i] + {{- if eq .type.TypeName "Time" }} + i64s[i].SetFsp(fsp) + {{- end }} result.SetNull(i, false) } } diff --git a/expression/integration_serial_test.go b/expression/integration_serial_test.go index fc4ecda462208..bedb737134f6e 100644 --- a/expression/integration_serial_test.go +++ b/expression/integration_serial_test.go @@ -2612,6 +2612,10 @@ func TestTimeBuiltin(t *testing.T) { result.Check(testkit.Rows("112 36 12 24")) result = tk.MustQuery("select extract(day_microsecond from cast('2017-01-01 12:12:12' as datetime)), extract(day_second from cast('2017-01-01 12:12:12' as datetime)), extract(day_minute from cast('2017-01-01 12:12:12' as datetime)), extract(day_hour from cast('2017-01-01 12:12:12' as datetime))") result.Check(testkit.Rows("1121212000000 1121212 11212 112")) + result = tk.MustQuery("select extract(day_microsecond from cast(20010101020304.050607 as decimal(20,6))), extract(day_second from cast(20010101020304.050607 as decimal(20,6))), extract(day_minute from cast(20010101020304.050607 as decimal(20,6))), extract(day_hour from cast(20010101020304.050607 as decimal(20,6))), extract(day from cast(20010101020304.050607 as decimal(20,6)))") + result.Check(testkit.Rows("1020304050607 1020304 10203 102 1")) + result = tk.MustQuery("select extract(day_microsecond from cast(1020304.050607 as decimal(20,6))), extract(day_second from cast(1020304.050607 as decimal(20,6))), extract(day_minute from cast(1020304.050607 as decimal(20,6))), extract(day_hour from cast(1020304.050607 as decimal(20,6))), extract(day from cast(1020304.050607 as decimal(20,6)))") + result.Check(testkit.Rows("1020304050607 1020304 10203 102 4")) // for adddate, subdate dateArithmeticalTests := []struct { @@ -3826,6 +3830,7 @@ func TestSetVariables(t *testing.T) { require.Error(t, err) require.Error(t, err, variable.ErrWrongTypeForVar.GenWithStackByArgs("max_prepared_stmt_count").Error()) + tk.MustExec("set @@global.tidb_enable_concurrent_ddl=1") tk.MustQuery("select @@global.tidb_enable_concurrent_ddl").Check(testkit.Rows("1")) require.True(t, variable.EnableConcurrentDDL.Load()) tk.MustExec("set @@global.tidb_enable_concurrent_ddl=0") diff --git a/expression/integration_test.go b/expression/integration_test.go index b3dc43fe084d1..8b2aa0139347f 100644 --- a/expression/integration_test.go +++ b/expression/integration_test.go @@ -7396,6 +7396,79 @@ func TestIssue31867(t *testing.T) { tk.MustExec("drop table t") } +func TestIssue31600(t *testing.T) { + store, clean := testkit.CreateMockStore(t) + defer clean() + + tk := testkit.NewTestKit(t, store) + tk.MustExec("set time_zone = '+00:00'") + tk.MustExec("use test") + tk.MustExec("drop table if exists t") + tk.MustExec("create table t (tm_fsp0 time(0), tm_fsp1 time(1), tm_fsp3 time(3),tm_fsp6 time(6), d date, dt_fsp0 datetime(0), dt_fsp1 datetime(1), dt_fsp3 datetime(3), dt_fsp6 datetime(6))") + tk.MustExec("insert into t values(null, '12:12:01.1', '12:12:02.123', '12:12:03.123456', '20221212', null, '2020/12/11 12:12:11.1', '2020/12/12 12:12:12.123', '2020/12/13 12:12:13.123456')") + tk.MustExec("insert into t values('12:12:00', null, '12:12:02.123', '12:12:03.123456', '20221212', '2020/12/10 12:12:10', null, '2020/12/12 12:12:12.123', '2020/12/13 12:12:13.123456')") + tk.MustExec("insert into t values('12:12:00', '12:12:01.1', null, '12:12:03.123456', '20221212', '2020/12/10 12:12:10', '2020/12/11 12:12:11.1', null, '2020/12/13 12:12:13.123456')") + tk.MustExec("insert into t values('12:12:00', '12:12:01.1', '12:12:02.123', null, '20221212', '2020/12/10 12:12:10', '2020/12/11 12:12:11.1', '2020/12/12 12:12:12.123', null)") + tk.MustQuery("select coalesce(null, tm_fsp0, tm_fsp1, tm_fsp3, tm_fsp6) from t").Check([][]interface{}{ + {"12:12:01.100000"}, + {"12:12:00.000000"}, + {"12:12:00.000000"}, + {"12:12:00.000000"}, + }) + tk.MustQuery("select coalesce(tm_fsp1, tm_fsp0, tm_fsp3) from t").Check([][]interface{}{ + {"12:12:01.100"}, + {"12:12:00.000"}, + {"12:12:01.100"}, + {"12:12:01.100"}, + }) + tk.MustQuery("select coalesce(tm_fsp3, tm_fsp0) from t").Check([][]interface{}{ + {"12:12:02.123"}, + {"12:12:02.123"}, + {"12:12:00.000"}, + {"12:12:02.123"}, + }) + tk.MustQuery("select coalesce(tm_fsp6) from t").Check([][]interface{}{ + {"12:12:03.123456"}, + {"12:12:03.123456"}, + {"12:12:03.123456"}, + {""}, + }) + + tk.MustQuery("select coalesce(null, dt_fsp0, dt_fsp1, dt_fsp3, dt_fsp6) from t").Check([][]interface{}{ + {"2020-12-11 12:12:11.100000"}, + {"2020-12-10 12:12:10.000000"}, + {"2020-12-10 12:12:10.000000"}, + {"2020-12-10 12:12:10.000000"}, + }) + tk.MustQuery("select coalesce(dt_fsp0, dt_fsp1, dt_fsp3) from t").Check([][]interface{}{ + {"2020-12-11 12:12:11.100"}, + {"2020-12-10 12:12:10.000"}, + {"2020-12-10 12:12:10.000"}, + {"2020-12-10 12:12:10.000"}, + }) + tk.MustQuery("select coalesce(dt_fsp3, dt_fsp0) from t").Check([][]interface{}{ + {"2020-12-12 12:12:12.123"}, + {"2020-12-12 12:12:12.123"}, + {"2020-12-10 12:12:10.000"}, + {"2020-12-12 12:12:12.123"}, + }) + tk.MustQuery("select coalesce(dt_fsp6) from t").Check([][]interface{}{ + {"2020-12-13 12:12:13.123456"}, + {"2020-12-13 12:12:13.123456"}, + {"2020-12-13 12:12:13.123456"}, + {""}, + }) + + tk.MustQuery("select coalesce(null, d) from t").Check([][]interface{}{ + {"2022-12-12"}, + {"2022-12-12"}, + {"2022-12-12"}, + {"2022-12-12"}, + }) + + tk.MustExec("drop table t") +} + func TestDateAddForNonExistingTimestamp(t *testing.T) { store, clean := testkit.CreateMockStore(t) defer clean() @@ -7448,3 +7521,42 @@ func TestImcompleteDateFunc(t *testing.T) { tk.MustQuery("select YEARWEEK('1998-10-00')").Check(testkit.Rows("")) tk.MustQuery("select YEARWEEK('1998-00-11')").Check(testkit.Rows("")) } + +func TestIssue36279(t *testing.T) { + store, clean := testkit.CreateMockStore(t) + defer clean() + tk := testkit.NewTestKit(t, store) + tk.MustExec("SET timestamp=UNIX_TIMESTAMP('2011-11-01 17:48:00')") + + // test const + tk.MustQuery("SELECT cast(cast('12:12:12' as time) as datetime(6))").Check(testkit.Rows("2011-11-01 12:12:12.000000")) + + // test vec + tk.MustExec("use test") + tk.MustExec("drop table if exists t") + tk.MustExec("create table t (tm time(6))") + tk.MustExec("insert into t values('23:59:59')") + tk.MustQuery("SELECT cast(tm as datetime(6)) from t").Check(testkit.Rows("2011-11-01 23:59:59.000000")) +} + +func TestIssue34998(t *testing.T) { + store, clean := testkit.CreateMockStore(t) + defer clean() + tk := testkit.NewTestKit(t, store) + tk.MustExec("use test") + tk.MustExec("CREATE TABLE `PK_S_MULTI_43`(`COL1` time(2) NOT NULL, `COL2` time(2) NOT NULL, `COL3` time(2) DEFAULT NULL, PRIMARY KEY(`COL1`,`COL2`))") + tk.MustExec("insert into PK_S_MULTI_43(col1, col2) values('-512:37:22.00', '-512:37:22.00')") + tk.MustQuery("select extract(day_microsecond from '-512:37:22.00')").Check(testkit.Rows("-5123722000000")) + tk.MustQuery("select extract(day_microsecond from col1) from PK_S_MULTI_43").Check(testkit.Rows("-5123722000000")) +} + +func TestIssue36358(t *testing.T) { + store, clean := testkit.CreateMockStore(t) + defer clean() + tk := testkit.NewTestKit(t, store) + tk.MustExec("use test") + tk.MustExec("create table t(c datetime(6))") + tk.MustExec("insert into t values('2001-01-01 02:03:04.050607')") + tk.MustQuery("select extract(day_microsecond from cast('2001-01-01 02:03:04.050607' as datetime(6))) from t").Check(testkit.Rows("1020304050607")) + tk.MustQuery("select extract(day_microsecond from c) from t").Check(testkit.Rows("1020304050607")) +} diff --git a/expression/util.go b/expression/util.go index f81737e4b7369..f3bddcc0e8e52 100644 --- a/expression/util.go +++ b/expression/util.go @@ -688,6 +688,21 @@ func pushNotAcrossExpr(ctx sessionctx.Context, expr Expression, not bool) (_ Exp return expr, not } +// GetExprInsideIsTruth get the expression inside the `istrue_with_null` and `istrue`. +// This is useful when handling expressions from "not" or "!", because we might wrap `istrue_with_null` or `istrue` +// when handling them. See pushNotAcrossExpr() and wrapWithIsTrue() for details. +func GetExprInsideIsTruth(expr Expression) Expression { + if f, ok := expr.(*ScalarFunction); ok { + switch f.FuncName.L { + case ast.IsTruthWithNull, ast.IsTruthWithoutNull: + return GetExprInsideIsTruth(f.GetArgs()[0]) + default: + return expr + } + } + return expr +} + // PushDownNot pushes the `not` function down to the expression's arguments. func PushDownNot(ctx sessionctx.Context, expr Expression) Expression { newExpr, _ := pushNotAcrossExpr(ctx, expr, false) diff --git a/go.mod b/go.mod index 8cce36cca8da7..50eae7f17a1ab 100644 --- a/go.mod +++ b/go.mod @@ -10,7 +10,7 @@ require ( github.com/DATA-DOG/go-sqlmock v1.5.0 github.com/Jeffail/gabs/v2 v2.5.1 github.com/Shopify/sarama v1.29.0 - github.com/aws/aws-sdk-go v1.35.3 + github.com/aws/aws-sdk-go v1.36.30 github.com/blacktear23/go-proxyprotocol v1.0.0 github.com/carlmjohnson/flagext v0.21.0 github.com/cheggaaa/pb/v3 v3.0.8 @@ -30,9 +30,9 @@ require ( github.com/golang/mock v1.6.0 github.com/golang/protobuf v1.5.2 github.com/golang/snappy v0.0.4 - github.com/google/btree v1.0.1 + github.com/google/btree v1.1.2 github.com/google/pprof v0.0.0-20211122183932-1daafda22083 - github.com/google/uuid v1.1.2 + github.com/google/uuid v1.3.0 github.com/gorilla/mux v1.8.0 github.com/grpc-ecosystem/go-grpc-middleware v1.3.0 github.com/iancoleman/strcase v0.2.0 @@ -46,11 +46,11 @@ require ( github.com/pingcap/errors v0.11.5-0.20211224045212-9687c2b0f87c github.com/pingcap/failpoint v0.0.0-20220423142525-ae43b7f4e5c3 github.com/pingcap/fn v0.0.0-20200306044125-d5540d389059 - github.com/pingcap/kvproto v0.0.0-20220705090230-a5d4ffd2ba33 + github.com/pingcap/kvproto v0.0.0-20220711062932-08b02befd813 github.com/pingcap/log v1.1.0 github.com/pingcap/sysutil v0.0.0-20220114020952-ea68d2dbf5b4 github.com/pingcap/tidb/parser v0.0.0-20211011031125-9b13dc409c5e - github.com/pingcap/tipb v0.0.0-20220706024432-7be3cc83a7d5 + github.com/pingcap/tipb v0.0.0-20220718022156-3e2483c20a9e github.com/prometheus/client_golang v1.12.2 github.com/prometheus/client_model v0.2.0 github.com/prometheus/common v0.32.1 @@ -62,7 +62,7 @@ require ( github.com/spf13/pflag v1.0.5 github.com/stretchr/testify v1.7.2-0.20220504104629-106ec21d14df github.com/tiancaiamao/appdash v0.0.0-20181126055449-889f96f722a2 - github.com/tikv/client-go/v2 v2.0.1-0.20220627063500-947d923945fd + github.com/tikv/client-go/v2 v2.0.1-0.20220721031657-e38d2b07de3f github.com/tikv/pd/client v0.0.0-20220307081149-841fa61e9710 github.com/twmb/murmur3 v1.1.3 github.com/uber/jaeger-client-go v2.22.1+incompatible @@ -80,16 +80,16 @@ require ( go.uber.org/multierr v1.8.0 go.uber.org/zap v1.21.0 golang.org/x/exp v0.0.0-20220428152302-39d4317da171 - golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd - golang.org/x/oauth2 v0.0.0-20211104180415-d3ed0bb246c8 + golang.org/x/net v0.0.0-20220412020605-290c469a71a5 + golang.org/x/oauth2 v0.0.0-20220411215720-9780585627b5 golang.org/x/sync v0.0.0-20220513210516-0976fa681c29 golang.org/x/sys v0.0.0-20220622161953-175b2fd9d664 golang.org/x/term v0.0.0-20210927222741-03fcf44c2211 golang.org/x/text v0.3.7 golang.org/x/time v0.0.0-20220224211638-0e9765cccd65 golang.org/x/tools v0.1.11 - google.golang.org/api v0.69.0 - google.golang.org/grpc v1.44.0 + google.golang.org/api v0.74.0 + google.golang.org/grpc v1.45.0 gopkg.in/yaml.v2 v2.4.0 sourcegraph.com/sourcegraph/appdash v0.0.0-20190731080439-ebfcffb1b5c0 sourcegraph.com/sourcegraph/appdash-data v0.0.0-20151005221446-73f23eafcf67 @@ -107,20 +107,35 @@ require ( github.com/gordonklaus/ineffassign v0.0.0-20210914165742-4cc7213b9bc8 github.com/kisielk/errcheck v1.6.1 github.com/kyoh86/exportloopref v0.1.8 + github.com/mgechev/revive v1.2.1 github.com/nishanths/predeclared v0.2.2 + github.com/prometheus/prometheus v0.0.0-20190525122359-d20e84d0fb64 github.com/tdakkota/asciicheck v0.1.1 honnef.co/go/tools v0.3.1 ) require ( + cloud.google.com/go/compute v1.5.0 // indirect + github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d // indirect + github.com/cespare/xxhash v1.1.0 // indirect + github.com/chavacava/garif v0.0.0-20220316182200-5cad0b5181d4 // indirect + github.com/fatih/structtag v1.2.0 // indirect + github.com/go-kit/kit v0.9.0 // indirect + github.com/go-logfmt/logfmt v0.5.0 // indirect + github.com/googleapis/gax-go/v2 v2.2.0 // indirect github.com/hexops/gotextdiff v1.0.3 // indirect github.com/kisielk/gotool v1.0.0 // indirect github.com/nbutton23/zxcvbn-go v0.0.0-20210217022336-fa2cb2858354 // indirect + github.com/oklog/ulid v1.3.1 // indirect + github.com/olekukonko/tablewriter v0.0.5 // indirect + github.com/prometheus/tsdb v0.8.0 // indirect + github.com/rogpeppe/go-internal v1.6.1 // indirect + golang.org/x/crypto v0.0.0-20210921155107-089bfa567519 // indirect + google.golang.org/genproto v0.0.0-20220324131243-acbaeb5b85eb // indirect ) require ( cloud.google.com/go v0.100.2 // indirect - cloud.google.com/go/compute v1.2.0 // indirect cloud.google.com/go/iam v0.1.1 // indirect github.com/Azure/azure-sdk-for-go/sdk/azcore v0.20.0 // indirect github.com/Azure/azure-sdk-for-go/sdk/internal v0.8.1 // indirect @@ -150,7 +165,6 @@ require ( github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect github.com/golangci/prealloc v0.0.0-20180630174525-215b22d4de21 github.com/google/go-cmp v0.5.7 // indirect - github.com/googleapis/gax-go/v2 v2.1.1 // indirect github.com/gorilla/handlers v1.5.1 // indirect github.com/gorilla/websocket v1.4.2 // indirect github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 // indirect @@ -188,7 +202,6 @@ require ( github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 // indirect github.com/remyoudompheng/bigfft v0.0.0-20200410134404-eec4a21b6bb0 // indirect github.com/rivo/uniseg v0.2.0 // indirect - github.com/rogpeppe/go-internal v1.6.1 // indirect github.com/shurcooL/httpfs v0.0.0-20190707220628-8d4bc4ba7749 // indirect github.com/sirupsen/logrus v1.8.1 // indirect github.com/stathat/consistent v1.0.0 // indirect @@ -213,12 +226,10 @@ require ( go.opentelemetry.io/otel/sdk/metric v0.20.0 // indirect go.opentelemetry.io/otel/trace v0.20.0 // indirect go.opentelemetry.io/proto/otlp v0.7.0 // indirect - golang.org/x/crypto v0.0.0-20220214200702-86341886e292 // indirect golang.org/x/exp/typeparams v0.0.0-20220218215828-6cf2b201936e // indirect golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4 // indirect golang.org/x/xerrors v0.0.0-20220411194840-2f41105eb62f // indirect google.golang.org/appengine v1.6.7 // indirect - google.golang.org/genproto v0.0.0-20220216160803-4663080d8bc8 // indirect google.golang.org/protobuf v1.28.0 // indirect gopkg.in/natefinch/lumberjack.v2 v2.0.0 // indirect gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b // indirect diff --git a/go.sum b/go.sum index 53f2f6f7ec9ed..bc494d9851775 100644 --- a/go.sum +++ b/go.sum @@ -36,8 +36,10 @@ cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUM cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc= cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ= cloud.google.com/go/compute v0.1.0/go.mod h1:GAesmwr110a34z04OlxYkATPBEfVhkymfTBXtfbBFow= -cloud.google.com/go/compute v1.2.0 h1:EKki8sSdvDU0OO9mAXGwPXOTOgPz2l08R0/IutDH11I= cloud.google.com/go/compute v1.2.0/go.mod h1:xlogom/6gr8RJGBe7nT2eGsQYAFUbbv8dbC29qE3Xmw= +cloud.google.com/go/compute v1.3.0/go.mod h1:cCZiE1NHEtai4wiufUhW8I8S1JKkAnhnQJWM7YD99wM= +cloud.google.com/go/compute v1.5.0 h1:b1zWmYuuHz7gO9kDcM/EpHGr06UgsYNRpNJzI2kFiLM= +cloud.google.com/go/compute v1.5.0/go.mod h1:9SMHyhJlzhlkJqrPAc839t2BZFTSk6Jdj6mkzQJeu0M= cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= cloud.google.com/go/firestore v1.1.0/go.mod h1:ulACoGHTpvq5r8rxGJ4ddJZBZqakUQqClKRT5SZwBmk= @@ -54,8 +56,10 @@ cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RX cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= cloud.google.com/go/storage v1.21.0 h1:HwnT2u2D309SFDHQII6m18HlrCi3jAXhUMTLOWXYH14= cloud.google.com/go/storage v1.21.0/go.mod h1:XmRlxkgPjlBONznT2dDUU/5XlpU2OjMnKuqnZI01LAA= +contrib.go.opencensus.io/exporter/ocagent v0.4.12/go.mod h1:450APlNTSR6FrvC3CTRqYosuDstRB9un7SOx2k/9ckA= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= github.com/AndreasBriese/bbloom v0.0.0-20190306092124-e2d15f34fcf9/go.mod h1:bOvUY6CB00SOBii9/FifXqc0awNKxLFCL/+pkDPuyl8= +github.com/Azure/azure-sdk-for-go v23.2.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= github.com/Azure/azure-sdk-for-go/sdk/azcore v0.20.0 h1:KQgdWmEOmaJKxaUUZwHAYh12t+b+ZJf8q3friycK1kA= github.com/Azure/azure-sdk-for-go/sdk/azcore v0.20.0/go.mod h1:ZPW/Z0kLCTdDZaDbYTetxc9Cxl/2lNqxYHYNOF2bti0= github.com/Azure/azure-sdk-for-go/sdk/azidentity v0.12.0 h1:VBvHGLJbaY0+c66NZHdS9cgjHVYSH6DDa0XJMyrblsI= @@ -64,6 +68,7 @@ github.com/Azure/azure-sdk-for-go/sdk/internal v0.8.1 h1:BUYIbDf/mMZ8945v3QkG3Ou github.com/Azure/azure-sdk-for-go/sdk/internal v0.8.1/go.mod h1:KLF4gFr6DcKFZwSuH8w8yEK6DpFl3LP5rhdvAb7Yz5I= github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v0.2.0 h1:62Ew5xXg5UCGIXDOM7+y4IL5/6mQJq1nenhBCJAeGX8= github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v0.2.0/go.mod h1:eHWhQKXc1Gv1DvWH//UzgWjWFEo0Pp4pH2vBzjBw8Fc= +github.com/Azure/go-autorest v11.2.8+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/toml v0.4.1/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= github.com/BurntSushi/toml v1.1.0 h1:ksErzDEI1khOiGPgpwuI7x2ebx/uXQNw7xJpn9Eq1+I= @@ -82,11 +87,15 @@ github.com/Jeffail/gabs/v2 v2.5.1/go.mod h1:xCn81vdHKxFUuWWAaD5jCTQDNPBMh5pPs9IJ github.com/Joker/hpp v1.0.0/go.mod h1:8x5n+M1Hp5hC0g8okX3sR3vFQwynaX/UgSOM9MeBKzY= github.com/Joker/jade v1.0.1-0.20190614124447-d475f43051e7/go.mod h1:6E6s8o2AE4KhCrqr6GRJjdC/gNfTdxkIXvuGZZda2VM= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= +github.com/OneOfOne/xxhash v1.2.5 h1:zl/OfRA6nftbBK9qTohYBJ5xvw6C/oNKizR7cZGl3cI= +github.com/OneOfOne/xxhash v1.2.5/go.mod h1:eZbhyaAYD41SGSSsnmcpxVoRiQ/MPUTjUdIIOT9Um7Q= github.com/Shopify/goreferrer v0.0.0-20181106222321-ec9c9a553398/go.mod h1:a1uqRtAwp2Xwc6WNPJEufxJ7fx3npB4UV/JOLmbu5I0= +github.com/Shopify/sarama v1.19.0/go.mod h1:FVkBWblsNy7DGZRfXLU0O9RCGt5g3g3yEuWXgklEdEo= github.com/Shopify/sarama v1.29.0 h1:ARid8o8oieau9XrHI55f/L3EoRAhm9px6sonbD7yuUE= github.com/Shopify/sarama v1.29.0/go.mod h1:2QpgD79wpdAESqNQMxNc0KYMkycd4slxGdV3TWSVqrU= github.com/Shopify/toxiproxy v2.1.4+incompatible h1:TKdv8HiTLgE5wdJuEML90aBgNWsokNbMijUGhmcoBJc= github.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMxUHB2q5Ap20/P/eIdh4G0pI= +github.com/StackExchange/wmi v0.0.0-20180725035823-b12b22c5341f/go.mod h1:3eOhrUMpNV+6aFIbp5/iudMxNCF27Vw2OZgy4xEx0Fg= github.com/VividCortex/ewma v1.1.1 h1:MnEK4VOv6n0RSY4vtRe3h11qjxL3+t0B8yOL8iMXdcM= github.com/VividCortex/ewma v1.1.1/go.mod h1:2Tkkvm3sRDVXaiyucHiACn4cqf7DpdyLvmxzcbUokwA= github.com/ajg/form v1.5.1/go.mod h1:uL1WgH+h2mgNtvBq0339dVnzXdBETtL2LeUXaIv25UY= @@ -95,21 +104,24 @@ github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuy github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= +github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d h1:UQZhZ2O0vMHr2cI+DC1Mbh0TJxzA3RcLoMsFw+aXw7E= github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho= github.com/aliyun/alibaba-cloud-sdk-go v1.61.1581 h1:Q/yk4z/cHUVZfgTqtD09qeYBxHwshQAjVRX73qs8UH0= github.com/aliyun/alibaba-cloud-sdk-go v1.61.1581/go.mod h1:RcDobYh8k5VP6TNybz9m++gL3ijVI5wueVr0EM10VsU= github.com/antihax/optional v0.0.0-20180407024304-ca021399b1a6/go.mod h1:V8iCPQYkqmusNa815XgQio277wI47sdRh1dUOLdyC6Q= github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= github.com/apache/thrift v0.0.0-20181112125854-24918abba929/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ= +github.com/apache/thrift v0.12.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ= github.com/apache/thrift v0.13.1-0.20201008052519-daf620915714 h1:Jz3KVLYY5+JO7rDiX0sAuRGtuv2vG01r17Y9nLMWNUw= github.com/apache/thrift v0.13.1-0.20201008052519-daf620915714/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ= github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o= github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY= github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= +github.com/aws/aws-sdk-go v1.15.24/go.mod h1:mFuSZ37Z9YOHbQEwBWztmVzqXrEkub65tZoCYDt7FT0= github.com/aws/aws-sdk-go v1.30.19/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= -github.com/aws/aws-sdk-go v1.35.3 h1:r0puXncSaAfRt7Btml2swUo74Kao+vKhO3VLjwDjK54= -github.com/aws/aws-sdk-go v1.35.3/go.mod h1:H7NKnBqNVzoTJpGfLrQkkD+ytBA93eiDYi/+8rV9s48= +github.com/aws/aws-sdk-go v1.36.30 h1:hAwyfe7eZa7sM+S5mIJZFiNFwJMia9Whz6CYblioLoU= +github.com/aws/aws-sdk-go v1.36.30/go.mod h1:hcU610XS61/+aQV88ixoOzUoG7v3b31pl2zKMmprdro= github.com/aymerick/raymond v2.0.3-0.20180322193309-b565731e1464+incompatible/go.mod h1:osfaiScAUVup+UC9Nfq76eWqDhXlp+4UYaA8uhTBO6g= github.com/benbjohnson/clock v1.0.3/go.mod h1:bGMdMPoPVvcYyt1gHDf4J2KE153Yf9BuiUKYMaxlTDM= github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= @@ -120,20 +132,27 @@ github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+Ce github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= +github.com/biogo/store v0.0.0-20160505134755-913427a1d5e8/go.mod h1:Iev9Q3MErcn+w3UOJD/DkEzllvugfdx7bGcMOFhvr/4= github.com/bketelsen/crypt v0.0.3-0.20200106085610-5cbc8cc4026c/go.mod h1:MKsuJmJgSg28kpZDP6UIiPt0e0Oz0kqKNGyRaWEPv84= github.com/blacktear23/go-proxyprotocol v1.0.0 h1:WmMmtZanGEfIHnJN9N3A4Pl6mM69D+GxEph2eOaCf7g= github.com/blacktear23/go-proxyprotocol v1.0.0/go.mod h1:fbqiWSHMxaW0KsJ3SHjpxOMbTpIaQSMRn1GRd+oPyEw= github.com/carlmjohnson/flagext v0.21.0 h1:/c4uK3ie786Z7caXLcIMvePNSSiH3bQVGDvmGLMme60= github.com/carlmjohnson/flagext v0.21.0/go.mod h1:Eenv0epIUAr4NuedNmkzI8WmBmjIxZC239XcKxYS2ac= +github.com/cenk/backoff v2.0.0+incompatible/go.mod h1:7FtoeaSnHoZnmZzz47cM35Y9nSW7tNyaidugnHTaFDE= +github.com/census-instrumentation/opencensus-proto v0.2.0/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= +github.com/certifi/gocertifi v0.0.0-20180905225744-ee1a9a0726d2/go.mod h1:GJKEexRPVJrBSOjoqN5VNOIKJ5Q3RViH6eu3puDRwx4= github.com/certifi/gocertifi v0.0.0-20191021191039-0944d244cd40/go.mod h1:sGbDF6GwGcLpkNXPUTkMRoywsNa/ol15pxFe6ERfguA= github.com/certifi/gocertifi v0.0.0-20200922220541-2c3bb06c6054/go.mod h1:sGbDF6GwGcLpkNXPUTkMRoywsNa/ol15pxFe6ERfguA= +github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko= github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cespare/xxhash/v2 v2.1.2 h1:YRXhKfTDauu4ajMg1TPgFO5jnlC2HCbmLXMcTG5cbYE= github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/charithe/durationcheck v0.0.9 h1:mPP4ucLrf/rKZiIG/a9IPXHGlh8p4CzgpyTy6EEutYk= github.com/charithe/durationcheck v0.0.9/go.mod h1:SSbRIBVfMjCi/kEB6K65XEA83D6prSM8ap1UCpNKtgg= +github.com/chavacava/garif v0.0.0-20220316182200-5cad0b5181d4 h1:tFXjAxje9thrTF4h57Ckik+scJjTWdwAtZqZPtOT48M= +github.com/chavacava/garif v0.0.0-20220316182200-5cad0b5181d4/go.mod h1:W8EnPSQ8Nv4fUjc/v1/8tHFqhuOJXnRub0dTfuAQktU= github.com/cheggaaa/pb/v3 v3.0.8 h1:bC8oemdChbke2FHIIGy9mn4DPJ2caZYQnfbRqwmdCoA= github.com/cheggaaa/pb/v3 v3.0.8/go.mod h1:UICbiLec/XO6Hw6k+BHEtHeQFzzBH4i2/qk/ow1EJTA= github.com/cheynewallace/tabby v1.1.1 h1:JvUR8waht4Y0S3JF17G6Vhyt+FRhnqVCkk8l4YrOU54= @@ -150,6 +169,10 @@ github.com/cncf/xds/go v0.0.0-20210312221358-fbca930ec8ed/go.mod h1:eXthEFrGJvWH github.com/cncf/xds/go v0.0.0-20210805033703-aa0b78936158/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cncf/xds/go v0.0.0-20210922020428-25de7278fc84/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cockroachdb/apd v1.1.0/go.mod h1:8Sl8LxpKi29FqWXR16WEFZRNSz3SoPzUzeMeY4+DwBQ= +github.com/cockroachdb/cmux v0.0.0-20170110192607-30d10be49292/go.mod h1:qRiX68mZX1lGBkTWyp3CLcenw9I94W2dLeRvMzcn9N4= +github.com/cockroachdb/cockroach v0.0.0-20170608034007-84bc9597164f/go.mod h1:xeT/CQ0qZHangbYbWShlCGAx31aV4AjGswDUjhKS6HQ= +github.com/cockroachdb/cockroach-go v0.0.0-20181001143604-e0a95dfd547c/go.mod h1:XGLbWH/ujMcbPbhZq52Nv6UrCghb1yGn//133kEsvDk= github.com/cockroachdb/datadriven v0.0.0-20200714090401-bf6692d28da5/go.mod h1:h6jFvWxBdQXxjopDMZyH2UVceIRfR84bdzbkoKrsWNo= github.com/cockroachdb/datadriven v1.0.0 h1:uhZrAfEayBecH2w2tZmhe20HJ7hDvrrA4x2Bg9YdZKM= github.com/cockroachdb/datadriven v1.0.0/go.mod h1:5Ib8Meh+jk1RlHIXej6Pzevx/NLlNvQB9pmSBZErGA4= @@ -176,6 +199,7 @@ github.com/coocood/rtutil v0.0.0-20190304133409-c84515f646f2 h1:NnLfQ77q0G4k2Of2 github.com/coocood/rtutil v0.0.0-20190304133409-c84515f646f2/go.mod h1:7qG7YFnOALvsx6tKTNmQot8d7cGFXM9TidzvRFLWYwM= github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= +github.com/coreos/etcd v3.3.12+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= github.com/coreos/etcd v3.3.13+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk= github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= @@ -214,6 +238,7 @@ github.com/docker/go-units v0.4.0 h1:3uh0PgVws3nIA0Q+MwDC8yjEPf9zjRfZZWXZYDct3Tw github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= github.com/dustin/go-humanize v1.0.0 h1:VSnTsYCnlFHaM2/igO1h6X3HA71jcobQuxemgkq4zYo= github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= +github.com/eapache/go-resiliency v1.1.0/go.mod h1:kFI+JgMyC7bLPUVY133qvEBtVayf5mFgVsvEsIPBvNs= github.com/eapache/go-resiliency v1.2.0 h1:v7g92e/KSN71Rq7vSThKaWIq68fL4YHvWyiUKorFR1Q= github.com/eapache/go-resiliency v1.2.0/go.mod h1:kFI+JgMyC7bLPUVY133qvEBtVayf5mFgVsvEsIPBvNs= github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21 h1:YEetp8/yCZMuEPMUDHG0CW/brkkEp8mzqk2+ODEitlw= @@ -221,6 +246,8 @@ github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21/go.mod h1 github.com/eapache/queue v1.1.0 h1:YOEu7KNc61ntiQlcEeUIoDTJ2o8mQznoNvUhiigpIqc= github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFPTqq+I= github.com/eknkc/amber v0.0.0-20171010120322-cdade1c07385/go.mod h1:0vRUJqYpeSZifjYj7uP3BG/gKcuzL9xWVV/Y+cK33KM= +github.com/elastic/gosigar v0.9.0/go.mod h1:cdorVVzy1fhmEqmtgqkoE3bYtCfSCkVyjTyCIo22xvs= +github.com/elazarl/go-bindata-assetfs v1.0.0/go.mod h1:v+YaWX3bdea5J/mo8dSETolEo7R71Vk1u8bnjau5yw4= github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= @@ -232,12 +259,16 @@ github.com/envoyproxy/go-control-plane v0.9.10-0.20210907150352-cf90f659a021/go. github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/etcd-io/bbolt v1.3.3/go.mod h1:ZF2nL25h33cCyBtcyWeZ2/I3HQOfTP+0PIEvHjkjCrw= github.com/etcd-io/gofail v0.0.0-20190801230047-ad7f989257ca/go.mod h1:49H/RkXP8pKaZy4h0d+NW16rSLhyVBt4o6VLJbmOqDE= +github.com/evanphx/json-patch v4.1.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= +github.com/facebookgo/clock v0.0.0-20150410010913-600d898af40a/go.mod h1:7Ga40egUymuWXxAe151lTNnCv97MddSOVsjpPPkityA= github.com/fasthttp-contrib/websocket v0.0.0-20160511215533-1f3b11f56072/go.mod h1:duJ4Jxv5lDcvg4QuQr0oowTf7dz4/CR8NtyCooz9HL8= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= github.com/fatih/color v1.10.0/go.mod h1:ELkj/draVOlAH/xkhN6mQ50Qd0MPOk5AAr3maGEBuJM= github.com/fatih/color v1.13.0 h1:8LOYc1KYPPmyKMuN8QV2DNRWNbLo6LZ0iLs8+mlH53w= github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk= github.com/fatih/structs v1.1.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga6PJ7M= +github.com/fatih/structtag v1.2.0 h1:/OdNE99OxoI/PqaW/SuSK9uxxT3f/tcSZgon/ssNSx4= +github.com/fatih/structtag v1.2.0/go.mod h1:mBJUNpUnHmRKrKlQQlmCrh5PuhftFbNv8Ys4/aAZl94= github.com/felixge/httpsnoop v1.0.1 h1:lvB5Jl89CsZtGIWuTcDM1E/vkVs49/Ml7JJe07l8SPQ= github.com/felixge/httpsnoop v1.0.1/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= github.com/flosch/pongo2 v0.0.0-20190707114632-bbf5a6c351f4/go.mod h1:T9YF2M40nIgbVgp3rreNmTged+9HrbNTIQf1PsaIiTA= @@ -257,6 +288,7 @@ github.com/fsouza/fake-gcs-server v1.19.0 h1:XyaGOlqo+R5sjT03x2ymk0xepaQlgwhRLTT github.com/fsouza/fake-gcs-server v1.19.0/go.mod h1:JtXHY/QzHhtyIxsNfIuQ+XgHtRb5B/w8nqbL5O8zqo0= github.com/fzipp/gocyclo v0.3.1/go.mod h1:DJHO6AUmbdqj2ET4Z9iArSuwWgYDRryYt2wASxc7x3E= github.com/gavv/httpexpect v2.0.0+incompatible/go.mod h1:x+9tiU1YnrOvnB725RkpoLv1M62hOWzwo5OXotisrKc= +github.com/getsentry/raven-go v0.1.2/go.mod h1:KungGk8q33+aIAZUIVWZDr2OfAEBsO49PX4NzFV5kcQ= github.com/getsentry/raven-go v0.2.0/go.mod h1:KungGk8q33+aIAZUIVWZDr2OfAEBsO49PX4NzFV5kcQ= github.com/ghemawat/stream v0.0.0-20171120220530-696b145b53b9/go.mod h1:106OIgooyS7OzLDOpUGgm9fA3bQENb/cFSyyBmMoJDs= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= @@ -268,20 +300,25 @@ github.com/go-errors/errors v1.0.1/go.mod h1:f4zRHt4oKfwPJE5k8C9vpYG+aDHdBFUsgrm github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= +github.com/go-ini/ini v1.25.4/go.mod h1:ByCAeIL28uOIIG0E3PJtZPDL8WnHpFKFOtgjp+3Ies8= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= +github.com/go-kit/kit v0.9.0 h1:wDJmvq38kDhkVxi50ni9ykkdUr1PKgqKOoi01fa0Mdk= github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vbaY= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= +github.com/go-logfmt/logfmt v0.5.0 h1:TrB8swr/68K7m9CcGut2g3UOihhbcbiMAYiuTXdEih4= github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A= github.com/go-martini/martini v0.0.0-20170121215854-22fa46961aab/go.mod h1:/P9AEU963A2AYjv4d1V5eVL1CQbEJq6aCNHDDjibzu8= +github.com/go-ole/go-ole v1.2.4/go.mod h1:XCwSNxSkXRo4vlyPy93sltvi/qJq0jqQhjqQNIwKuxM= github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= +github.com/go-sql-driver/mysql v1.4.1/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= github.com/go-sql-driver/mysql v1.5.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg= github.com/go-sql-driver/mysql v1.6.0 h1:BCTh4TKNUYmOmMUcQ3IipzF5prigylS7XXjEkfCHuOE= github.com/go-sql-driver/mysql v1.6.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg= +github.com/go-stack/stack v1.8.0 h1:5SgMzNM5HxrEjV0ww2lTmX6E2Izsfxas4+YHWRs3Lsk= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= -github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE= github.com/gobwas/httphead v0.0.0-20180130184737-2c6c146eadee/go.mod h1:L0fX3K22YWvt/FAX9NnzrNzcI4wNYi9Yku4O0LKYflo= github.com/gobwas/pool v0.2.0/go.mod h1:q8bcK0KcYlCgd9e7WYLm9LpyS+YeLd8JVDW6WezmKEw= github.com/gobwas/ws v1.0.2/go.mod h1:szmBTxLgaFppYjEmNtny/v3w89xOydFnnZMcgRRu/EM= @@ -301,6 +338,7 @@ github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGw github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= github.com/golang/glog v1.0.0 h1:nfP3RFugxnNRyKgeWd4oI1nYvXpxrx8ck8ZrcizshdQ= github.com/golang/glog v1.0.0/go.mod h1:EWib/APOK0SL3dFbYqvxE3UYd8E6s1ouQ7iEp/0LWV4= +github.com/golang/groupcache v0.0.0-20180924190550-6f2cf27854a4/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= @@ -339,7 +377,6 @@ github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= -github.com/golang/snappy v0.0.2-0.20190904063534-ff6b7dc882cf/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.4 h1:yAGX7huGHXlcLOEtBnF4w7FQwA26wojNCwOYAEhLjQM= github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= @@ -358,8 +395,9 @@ github.com/golangci/unconvert v0.0.0-20180507085042-28b1c447d1f4/go.mod h1:Izgrg github.com/gomodule/redigo v1.7.1-0.20190724094224-574c33c3df38/go.mod h1:B4C85qUVwatsJoIUNIfCRsp7qO0iAmpGFZ4EELWSbC4= github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= -github.com/google/btree v1.0.1 h1:gK4Kx5IaGY9CD5sPJ36FHiBJ6ZXl0kilRiiCj+jdYp4= github.com/google/btree v1.0.1/go.mod h1:xXMiIv4Fb/0kKde4SpL7qlzvu5cMJDRkFDxJfI9uaxA= +github.com/google/btree v1.1.2 h1:xf4v41cLI2Z6FxbKm+8Bu+m8ifhj15JuZ9sa0jZCMUU= +github.com/google/btree v1.1.2/go.mod h1:qOPhT0dTNdNzV6Z/lhRX0YXUafgPLFUh+gZMl761Gm4= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= @@ -375,6 +413,7 @@ github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/go-cmp v0.5.7 h1:81/ik6ipDQS2aGcBfIN5dHDB36BwrStyeAQquSYCV4o= github.com/google/go-cmp v0.5.7/go.mod h1:n+brtR0CgQNWTVd5ZUFpTBC8YFBDLK/h/bpaJ8/DtOE= github.com/google/go-querystring v1.0.0/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO6wN/zVPAxq5ck= +github.com/google/gofuzz v0.0.0-20170612174753-24818f796faf/go.mod h1:HP5RmnzzSNb993RKQDq4+1A4ia9nllfqcQFTQJedwGI= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/martian v2.1.0+incompatible h1:/CP5g8u/VJHijgedC/Legn3BAbAaWPgecwXBIDzw5no= github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= @@ -382,6 +421,7 @@ github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIG github.com/google/martian/v3 v3.1.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= github.com/google/martian/v3 v3.2.1 h1:d8MncMlErDFTwQGBK1xhv026j9kqhvw1Qv9IbWT1VLQ= github.com/google/martian/v3 v3.2.1/go.mod h1:oBOf6HBosgwRXnUGWUB05QECsc6uvmMiJ3+6W4l/CUk= +github.com/google/pprof v0.0.0-20180605153948-8b03ce837f34/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= @@ -393,25 +433,30 @@ github.com/google/pprof v0.0.0-20201023163331-3e6fc7fc9c4c/go.mod h1:kpwsk12EmLe github.com/google/pprof v0.0.0-20201203190320-1bf35d6f28c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20210122040257-d980be63207e/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20210226084205-cbba55b83ad5/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20210407192527-94a9f03dee38/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20210601050228-01bbb1931b22/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20210609004039-a478d1d731e9/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20211122183932-1daafda22083 h1:c8EUapQFi+kjzedr4c6WqbwMdmB95+oDBWZ5XFHFYxY= github.com/google/pprof v0.0.0-20211122183932-1daafda22083/go.mod h1:KgnwoLYCZ8IQu3XUZ8Nc/bM9CCZFOyjUNOSygVozoDg= -github.com/google/uuid v1.1.2 h1:EVhdT+1Kseyi1/pUmXKaFxYsDNy9RQYkMWRH68J/W7Y= github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I= +github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= github.com/googleapis/gax-go/v2 v2.1.0/go.mod h1:Q3nei7sK6ybPYH7twZdmQpAd1MKb7pfu6SK+H1/DsU0= -github.com/googleapis/gax-go/v2 v2.1.1 h1:dp3bWCh+PPO1zjRRiCSczJav13sBvG4UhNyVTa1KqdU= github.com/googleapis/gax-go/v2 v2.1.1/go.mod h1:hddJymUZASv3XPyGkUpKj8pPO47Rmb0eJc8R6ouapiM= +github.com/googleapis/gax-go/v2 v2.2.0 h1:s7jOdKSaksJVOxE0Y/S32otcfiP+UQ0cL8/GTKaONwE= +github.com/googleapis/gax-go/v2 v2.2.0/go.mod h1:as02EH8zWkzwUoLbBaFeQ+arQaj/OthfcblKl4IGNaM= +github.com/googleapis/gnostic v0.2.0/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY= +github.com/gophercloud/gophercloud v0.0.0-20190301152420-fca40860790e/go.mod h1:vxM41WHh5uqHVBMZHzuwNOHh8XEoIEcSTewFxm1c5g8= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gordonklaus/ineffassign v0.0.0-20210914165742-4cc7213b9bc8 h1:PVRE9d4AQKmbelZ7emNig1+NT27DUmKZn5qXxfio54U= github.com/gordonklaus/ineffassign v0.0.0-20210914165742-4cc7213b9bc8/go.mod h1:Qcp2HIAYhR7mNUVSIxZww3Guk4it82ghYcEXIAk+QT0= +github.com/gorilla/context v1.1.1/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg= github.com/gorilla/handlers v1.4.2/go.mod h1:Qkdc/uu4tH4g6mTK6auzZ766c4CA0Ng8+o/OAirnOIQ= github.com/gorilla/handlers v1.5.1 h1:9lRY6j8DEeeBT10CvO9hGW0gmky0BprnvDI5vfhUHH4= github.com/gorilla/handlers v1.5.1/go.mod h1:t8XrUpc4KVXb7HGyJ4/cEnwQiaxrX/hz1Zv/4g96P1Q= +github.com/gorilla/mux v1.6.2/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= github.com/gorilla/mux v1.7.4/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= github.com/gorilla/mux v1.8.0 h1:i40aqfkR1h2SlN9hojwV5ZA91wcXFOvkdNIeFDP5koI= github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= @@ -421,24 +466,27 @@ github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoA github.com/gorilla/websocket v1.4.2 h1:+/TMaTYc4QFitKJxsQ7Yye35DkWvkdLcvGKqM+x0Ufc= github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= -github.com/grpc-ecosystem/go-grpc-middleware v1.1.0/go.mod h1:f5nM7jw/oeRSadq3xCzHAvxcr8HZnzsqU6ILg/0NiiE= github.com/grpc-ecosystem/go-grpc-middleware v1.3.0 h1:+9834+KizmvFV7pXQGSXQTsaWhq2GjuNUt0aUU0YBYw= github.com/grpc-ecosystem/go-grpc-middleware v1.3.0/go.mod h1:z0ButlSOZa5vEBq9m2m2hlwIgKw+rp3sdCBRoJY+30Y= github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 h1:Ovs26xHkKqVztRpIrF/92BcuyuQ/YW4NSIpoGtfXNho= github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= +github.com/grpc-ecosystem/grpc-gateway v1.8.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= github.com/grpc-ecosystem/grpc-gateway v1.12.1/go.mod h1:8XEsbTttt/W+VvjtQhLACqCisSPWTxCZ7sBRjU6iH9c= github.com/grpc-ecosystem/grpc-gateway v1.16.0 h1:gmcG1KaJ57LophUzW0Hy8NmPhnMZb4M0+kPpLofRdBo= github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= +github.com/grpc-ecosystem/grpc-opentracing v0.0.0-20180507213350-8e809c8a8645/go.mod h1:6iZfnjpejD4L/4DwD7NryNaJyCQdzwWwH2MWhCA90Kw= github.com/hashicorp/consul/api v1.1.0/go.mod h1:VmuI/Lkw1nC05EYQWNKwWGbkg+FbDBtguAZLlVdkD9Q= github.com/hashicorp/consul/sdk v0.1.1/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8= github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= github.com/hashicorp/go-msgpack v0.5.3/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM= +github.com/hashicorp/go-msgpack v0.5.4/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM= github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk= github.com/hashicorp/go-rootcerts v1.0.0/go.mod h1:K6zTfqpRlCUIjkwsN4Z+hiSfzSTQa6eBIzfwKfwNnHU= github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerXegt+ozgdvDeDU= +github.com/hashicorp/go-sockaddr v1.0.2/go.mod h1:rB4wwRAUzs07qva3c5SdrY/NEtAUjGlgmH/UkBUC97A= github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4= github.com/hashicorp/go-uuid v0.0.0-20180228145832-27454136f036/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= @@ -466,10 +514,13 @@ github.com/ianlancetaylor/demangle v0.0.0-20210905161508-09a460cdf81d/go.mod h1: github.com/imkira/go-interpol v1.1.0/go.mod h1:z0h2/2T3XF8kyEPpRgJ3kmNv+C43p+I/CoI+jC3w2iA= github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= +github.com/influxdata/influxdb v0.0.0-20170331210902-15e594fc09f1/go.mod h1:qZna6X/4elxqT3yI9iZYdZrWWdeFOOprn86kgg4+IzY= github.com/iris-contrib/blackfriday v2.0.0+incompatible/go.mod h1:UzZ2bDEoaSGPbkg6SAB4att1aAwTmVIx/5gCVqeyUdI= github.com/iris-contrib/go.uuid v2.0.0+incompatible/go.mod h1:iz2lgM/1UnEf1kP0L/+fafWORmlnuysV2EMP8MW+qe0= github.com/iris-contrib/i18n v0.0.0-20171121225848-987a633949d0/go.mod h1:pMCz62A0xJL6I+umB2YTlFRwWXaDFA0jy+5HzGiJjqI= github.com/iris-contrib/schema v0.0.1/go.mod h1:urYA3uvUNG1TIIjOSCzHr9/LmbQo8LrOcOqfqxa4hXw= +github.com/jackc/fake v0.0.0-20150926172116-812a484cc733/go.mod h1:WrMFNQdiFJ80sQsxDoMokWK1W5TQtxBFNpzWTD84ibQ= +github.com/jackc/pgx v3.2.0+incompatible/go.mod h1:0ZGrqGqkRlliWnWB4zKnWtjbSWbGkVEFm4TeybAXq+I= github.com/jcmturner/aescts/v2 v2.0.0 h1:9YKLH6ey7H4eDBXW8khjYslgyqG2xZikXP0EQFKrle8= github.com/jcmturner/aescts/v2 v2.0.0/go.mod h1:AiaICIRyfYg35RUkr8yESTqvSy7csK90qZ5xfvvsoNs= github.com/jcmturner/dnsutils/v2 v2.0.0 h1:lltnkeZGL0wILNvrNiVCR6Ro5PGU/SeBvVO/8c/iPbo= @@ -485,6 +536,8 @@ github.com/jcmturner/rpc/v2 v2.0.3 h1:7FXXj8Ti1IaVFpSAziCZWNzbNuZmnvw/i6CqLNdWfZ github.com/jcmturner/rpc/v2 v2.0.3/go.mod h1:VUJYCIDm3PVOEHw8sgt091/20OJjskO/YJki3ELg/Hc= github.com/jedib0t/go-pretty/v6 v6.2.2 h1:o3McN0rQ4X+IU+HduppSp9TwRdGLRW2rhJXy9CJaCRw= github.com/jedib0t/go-pretty/v6 v6.2.2/go.mod h1:+nE9fyyHGil+PuISTCrp7avEdo6bqoMwqZnuiK2r2a0= +github.com/jmespath/go-jmespath v0.0.0-20160202185014-0b12d6b521d8/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= +github.com/jmespath/go-jmespath v0.0.0-20160803190731-bd40a432e4c7/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= github.com/jmespath/go-jmespath v0.3.0/go.mod h1:9QtRXoHjLGCJ5IBSaohpXITPlowMeeYCZ7fLUTSywik= github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg= @@ -506,6 +559,7 @@ github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnr github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= +github.com/jtolds/gls v4.2.1+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= github.com/juju/errors v0.0.0-20181118221551-089d3ea4e4d5/go.mod h1:W54LbzXuIE0boCoNJfwqpmkKJ1O4TCTZMetAt6jGk7Q= github.com/juju/loggo v0.0.0-20180524022052-584905176618/go.mod h1:vgyd7OREkbtVEN/8IXZe5Ooef3LQePvuBm9UWj6ZL8U= @@ -537,6 +591,7 @@ github.com/klauspost/compress v1.15.1/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47e github.com/klauspost/cpuid v1.2.1/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek= github.com/klauspost/cpuid v1.3.1 h1:5JNjFYYQrZeKRJ0734q51WCEEn2huer72Dc7K+R/b6s= github.com/klauspost/cpuid v1.3.1/go.mod h1:bYW4mA6ZgKPob1/Dlai2LviZJO7KGI3uoWLd42rAQw4= +github.com/knz/strtime v0.0.0-20181018220328-af2256ee352c/go.mod h1:4ZxfWkxwtc7dBeifERVVWRy9F9rTU9p0yCDgeCtlius= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= @@ -552,6 +607,8 @@ github.com/kyoh86/exportloopref v0.1.8 h1:5Ry/at+eFdkX9Vsdw3qU4YkvGtzuVfzT4X7S77 github.com/kyoh86/exportloopref v0.1.8/go.mod h1:1tUcJeiioIs7VWe5gcOObrux3lb66+sBqGZrRkMwPgg= github.com/labstack/echo/v4 v4.1.11/go.mod h1:i541M3Fj6f76NZtHSj7TXnyM8n2gaodfvfxNnFqi74g= github.com/labstack/gommon v0.3.0/go.mod h1:MULnywXg0yavhxWKc+lOruYdAhDwPK9wf0OL7NoOu+k= +github.com/lib/pq v1.0.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= +github.com/lightstep/lightstep-tracer-go v0.15.6/go.mod h1:6AMpwZpsyCFwSovxzM78e+AsYxE8sGwiM6C3TytaWeI= github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 h1:6E+4a0GO5zZEnZ81pIr0yLvtUWk2if982qA3F3QD6H4= github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= @@ -569,6 +626,7 @@ github.com/mattn/go-isatty v0.0.9/go.mod h1:YNRxwqDuOph6SZLI9vUUz6OYw3QyUt7WiY2y github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= github.com/mattn/go-isatty v0.0.14 h1:yVuAays6BHfxijgZPzw+3Zlu5yQgKGP2/hcQbHb7S9Y= github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= +github.com/mattn/go-runewidth v0.0.4/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= github.com/mattn/go-runewidth v0.0.12 h1:Y41i/hVW3Pgwr8gV+J23B9YEY0zxjptBuCWEaxmAOow= github.com/mattn/go-runewidth v0.0.12/go.mod h1:RAqKPSqVFrSLVXbA8x7dzmKdmGzieGRCM46jaSJTDAk= @@ -577,16 +635,22 @@ github.com/matttproud/golang_protobuf_extensions v1.0.1 h1:4hp9jkHxhMHkqkrB3Ix0j github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/mediocregopher/mediocre-go-lib v0.0.0-20181029021733-cb65787f37ed/go.mod h1:dSsfyI2zABAdhcbvkXqgxOxrCsbYeHCPgrZkku60dSg= github.com/mediocregopher/radix/v3 v3.3.0/go.mod h1:EmfVyvspXz1uZEyPBMyGK+kjWiKQGvsUt6O3Pj+LDCQ= +github.com/mgechev/dots v0.0.0-20210922191527-e955255bf517/go.mod h1:KQ7+USdGKfpPjXk4Ga+5XxQM4Lm4e3gAogrreFAYpOg= +github.com/mgechev/revive v1.2.1 h1:GjFml7ZsoR0IrQ2E2YIvWFNS5GPDV7xNwvA5GM1HZC4= +github.com/mgechev/revive v1.2.1/go.mod h1:+Ro3wqY4vakcYNtkBWdZC7dBg1xSB6sp054wWwmeFm0= github.com/microcosm-cc/bluemonday v1.0.2/go.mod h1:iVP4YcDBq+n/5fb23BhYFvIMq/leAFZyRl6bYmGDlGc= github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= +github.com/miekg/dns v1.1.10/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc= github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= github.com/mitchellh/go-testing-interface v1.0.0/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI= +github.com/mitchellh/go-wordwrap v1.0.0/go.mod h1:ZXFpozHsX6DPmq2I0TCekCxypsnAUbP2oI0UX1GXzOo= github.com/mitchellh/gox v0.4.0/go.mod h1:Sd9lOJ0+aimLBi73mGofS1ycjY8lL3uZM3JPS42BGNg= github.com/mitchellh/iochan v1.0.0/go.mod h1:JwYml1nuB7xOzsp52dPpHFffvOCDupsG0QubkSMEySY= github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= +github.com/mitchellh/reflectwalk v1.0.1/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= @@ -595,6 +659,7 @@ github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3Rllmb github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= github.com/modocache/gover v0.0.0-20171022184752-b58185e213c5/go.mod h1:caMODM3PzxT8aQXRPkAt8xlV/e7d7w8GM5g0fa5F0D8= +github.com/montanaflynn/stats v0.0.0-20180911141734-db72e6cae808/go.mod h1:wL8QJuTMNUDYhXwkmfOly8iTdp5TEcJFWZD2D7SIkUc= github.com/moul/http2curl v1.0.0/go.mod h1:8UbvGypXm98wA/IqH45anm5Y2Z6ep6O31QGOAZ3H0fQ= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f h1:KUppIJq7/+SVif2QVs3tOP0zanoHgBEVAwHxUSIzRqU= @@ -614,33 +679,39 @@ github.com/ngaut/sync2 v0.0.0-20141008032647-7a24ed77b2ef/go.mod h1:7WjlapSfwQyo github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= github.com/nishanths/predeclared v0.2.2 h1:V2EPdZPliZymNAn79T8RkNApBjMmVKh5XRpLm/w98Vk= github.com/nishanths/predeclared v0.2.2/go.mod h1:RROzoN6TnGQupbC+lqggsOlcgysk3LMK/HI84Mp280c= +github.com/nxadm/tail v1.4.4 h1:DQuhQpB1tVlglWS2hLQ5OV6B5r8aGxSrPc5Qo6uTN78= github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= -github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE= -github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU= +github.com/oklog/run v1.0.0/go.mod h1:dlhp/R75TPv97u0XWUtDeV/lRKWPKSdTuV0TZvrmrQA= +github.com/oklog/ulid v1.3.1 h1:EGfNDEx6MqHz8B3uNV6QAib1UR2Lm97sHi3ocA6ESJ4= github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= +github.com/olekukonko/tablewriter v0.0.1/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo= +github.com/olekukonko/tablewriter v0.0.5 h1:P2Ga83D34wi1o9J6Wh1mRuqd4mF/x/lgBS7N7AbDhec= github.com/olekukonko/tablewriter v0.0.5/go.mod h1:hPp6KlRPjbx+hW8ykQs1w3UBbZlj6HuIJcUGPhkA7kY= github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk= github.com/onsi/ginkgo v1.13.0/go.mod h1:+REjRxOmWfHCjfv9TTWB1jD1Frx4XydAD3zm1lskyM0= -github.com/onsi/ginkgo v1.16.4/go.mod h1:dX+/inL/fNMqNlz0e9LfyB9TswhZpCVdJM/Z6Vvnwo0= github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE= -github.com/onsi/ginkgo v1.16.5/go.mod h1:+E8gABHa3K6zRBolWtd+ROzc/U5bkGt0FwiG042wbpU= -github.com/onsi/ginkgo/v2 v2.0.0/go.mod h1:vw5CSIxN1JObi/U8gcbwft7ZxR2dgaR70JSE3/PpL4c= +github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= -github.com/onsi/gomega v1.17.0/go.mod h1:HnhC7FXeEQY45zxNK3PPoIUhzk/80Xly9PcubAlGdZY= github.com/onsi/gomega v1.18.1 h1:M1GfJqGRrBrrGGsbxzV5dqM2U2ApXefZCQpkukxYRLE= -github.com/onsi/gomega v1.18.1/go.mod h1:0q+aL8jAiMXy9hbwj2mr5GziHiwhAIQpFmmtT5hitRs= +github.com/opentracing-contrib/go-stdlib v0.0.0-20170113013457-1de4cc2120e7/go.mod h1:PLldrQSroqzH70Xl+1DQcGnefIbqsKR7UDaiux3zV+w= github.com/opentracing/basictracer-go v1.0.0 h1:YyUAhaEfjoWXclZVJ9sGoNct7j4TVk7lZWlQw5UXuoo= github.com/opentracing/basictracer-go v1.0.0/go.mod h1:QfBfYuafItcjQuMwinw9GhYKwFXS9KnPs5lxoYwgW74= +github.com/opentracing/opentracing-go v1.0.2/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= github.com/opentracing/opentracing-go v1.2.0 h1:uEJPy/1a5RIPAJ0Ov+OIO8OxWu77jEv+1B0VhjKrZUs= github.com/opentracing/opentracing-go v1.2.0/go.mod h1:GxEUsuufX4nBwe+T+Wl9TAgYrxe9dPLANfrWvHYVTgc= +github.com/openzipkin/zipkin-go v0.1.6/go.mod h1:QgAqvLzwWbR/WpD4A3cGpPtJrZXNIiJc5AZX7/PBEpw= github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= github.com/pborman/getopt v0.0.0-20180729010549-6fdd0a2c7117/go.mod h1:85jBQOZwpVEaDAr341tbn15RS4fCAsIst0qp7i8ex1o= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= +github.com/peterbourgon/g2s v0.0.0-20170223122336-d4e7ad98afea/go.mod h1:1VcHEd3ro4QMoHfiNl/j7Jkln9+KQuorp0PItHMJYNg= +github.com/petermattis/goid v0.0.0-20170504144140-0ded85884ba5/go.mod h1:jvVRKCrJTQWu0XVbaOlby/2lO20uSCHEMzzplHXte1o= github.com/phayes/freeport v0.0.0-20180830031419-95f893ade6f2 h1:JhzVVoYvbOACxoUmOs6V/G4D5nPVUW73rKvXxP4XUJc= github.com/phayes/freeport v0.0.0-20180830031419-95f893ade6f2/go.mod h1:iIss55rKnNBTvrwdmkUpLnDpZoAHvWaiq5+iMmen4AE= +github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= github.com/pierrec/lz4 v2.6.0+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= github.com/pierrec/lz4 v2.6.1+incompatible h1:9UY3+iC23yxF0UfGaYrGplQ+79Rg+h/q9FV9ix19jjM= github.com/pierrec/lz4 v2.6.1+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= @@ -664,9 +735,8 @@ github.com/pingcap/goleveldb v0.0.0-20191226122134-f82aafb29989 h1:surzm05a8C9dN github.com/pingcap/goleveldb v0.0.0-20191226122134-f82aafb29989/go.mod h1:O17XtbryoCJhkKGbT62+L2OlrniwqiGLSqrmdHCMzZw= github.com/pingcap/kvproto v0.0.0-20191211054548-3c6b38ea5107/go.mod h1:WWLmULLO7l8IOcQG+t+ItJ3fEcrL5FxF0Wu+HrMy26w= github.com/pingcap/kvproto v0.0.0-20220302110454-c696585a961b/go.mod h1:IOdRDPLyda8GX2hE/jO7gqaCV/PNFh8BZQCQZXfIOqI= -github.com/pingcap/kvproto v0.0.0-20220525022339-6aaebf466305/go.mod h1:OYtxs0786qojVTmkVeufx93xe+jUgm56GUYRIKnmaGI= -github.com/pingcap/kvproto v0.0.0-20220705090230-a5d4ffd2ba33 h1:VKMmvYhtG28j1sCCBdq4s+V9UOYqNgQ6CQviQwOgTeg= -github.com/pingcap/kvproto v0.0.0-20220705090230-a5d4ffd2ba33/go.mod h1:OYtxs0786qojVTmkVeufx93xe+jUgm56GUYRIKnmaGI= +github.com/pingcap/kvproto v0.0.0-20220711062932-08b02befd813 h1:PAXtUVMJnyQQS8t9GzihIFmh6FBXu0JziWbIVknLniA= +github.com/pingcap/kvproto v0.0.0-20220711062932-08b02befd813/go.mod h1:OYtxs0786qojVTmkVeufx93xe+jUgm56GUYRIKnmaGI= github.com/pingcap/log v0.0.0-20191012051959-b742a5d432e9/go.mod h1:4rbK1p9ILyIfb6hU7OG2CiWSqMXnp3JMbiaVJ6mvoY8= github.com/pingcap/log v0.0.0-20200511115504-543df19646ad/go.mod h1:4rbK1p9ILyIfb6hU7OG2CiWSqMXnp3JMbiaVJ6mvoY8= github.com/pingcap/log v0.0.0-20210625125904-98ed8e2eb1c7/go.mod h1:8AanEdAHATuRurdGxZXBz0At+9avep+ub7U1AGYLIMM= @@ -675,8 +745,8 @@ github.com/pingcap/log v1.1.0 h1:ELiPxACz7vdo1qAvvaWJg1NrYFoY6gqAh/+Uo6aXdD8= github.com/pingcap/log v1.1.0/go.mod h1:DWQW5jICDR7UJh4HtxXSM20Churx4CQL0fwL/SoOSA4= github.com/pingcap/sysutil v0.0.0-20220114020952-ea68d2dbf5b4 h1:HYbcxtnkN3s5tqrZ/z3eJS4j3Db8wMphEm1q10lY/TM= github.com/pingcap/sysutil v0.0.0-20220114020952-ea68d2dbf5b4/go.mod h1:sDCsM39cGiv2vwunZkaFA917vVkqDTGSPbbV7z4Oops= -github.com/pingcap/tipb v0.0.0-20220706024432-7be3cc83a7d5 h1:XaTE4ZhQbQtQZtAVzlZh/Pf6SjFfMSTe1ia2nGcl36Y= -github.com/pingcap/tipb v0.0.0-20220706024432-7be3cc83a7d5/go.mod h1:A7mrd7WHBl1o63LE2bIBGEJMTNWXqhgmYiOvMLxozfs= +github.com/pingcap/tipb v0.0.0-20220718022156-3e2483c20a9e h1:FBaTXU8C3xgt/drM58VHxojHo/QoG1oPsgWTGvaSpO4= +github.com/pingcap/tipb v0.0.0-20220718022156-3e2483c20a9e/go.mod h1:A7mrd7WHBl1o63LE2bIBGEJMTNWXqhgmYiOvMLxozfs= github.com/pkg/browser v0.0.0-20180916011732-0a3d74bf9ce4 h1:49lOXmGaUpV9Fz3gd7TFZY106KVlPVa5jcYD1gaQf98= github.com/pkg/browser v0.0.0-20180916011732-0a3d74bf9ce4/go.mod h1:4OwLy04Bl9Ef3GJJCoec+30X3LQs/0/m4HFRt/2LUSA= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= @@ -691,6 +761,7 @@ github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c h1:ncq/mPwQF github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= github.com/prometheus/client_golang v0.9.0/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= +github.com/prometheus/client_golang v0.9.3-0.20190127221311-3c4408c8b829/go.mod h1:p2iRAGwDERtqlqzRXnrOVns+ignqQo//hLXqYxZYVNs= github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= @@ -698,12 +769,14 @@ github.com/prometheus/client_golang v1.11.0/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqr github.com/prometheus/client_golang v1.12.2 h1:51L9cDoUHVrXx4zWYlcLQIZ+d+VXHgqnYKkIuq4g/34= github.com/prometheus/client_golang v1.12.2/go.mod h1:3Z9XVyYiZYEO+YQWt3RD2R3jrbd179Rt297l4aS6nDY= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= +github.com/prometheus/client_model v0.0.0-20190115171406-56726106282f/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.2.0 h1:uq5h0d+GuxiXLJLNABMgp2qUWDPiLvgCzz2dUR+/W/M= github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/common v0.0.0-20181020173914-7e9e6cabbd39/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= +github.com/prometheus/common v0.2.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= @@ -711,13 +784,19 @@ github.com/prometheus/common v0.26.0/go.mod h1:M7rCNAaPfAosfx8veZJCuw84e35h3Cfd9 github.com/prometheus/common v0.32.1 h1:hWIdL3N2HoUx3B8j3YN9mWor0qhY/NlEKZEaXxuIRh4= github.com/prometheus/common v0.32.1/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= +github.com/prometheus/procfs v0.0.0-20190117184657-bf6a532e95b1/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= github.com/prometheus/procfs v0.7.3 h1:4jVXhlkAyzOScmCkXBTOLRLTz8EeU+eyjrwB/EPq0VU= github.com/prometheus/procfs v0.7.3/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= +github.com/prometheus/prometheus v0.0.0-20190525122359-d20e84d0fb64 h1:3DyLm+sTAJkfLyR/1pJ3L+fU2lFufWbpcgMFlGtqeyA= +github.com/prometheus/prometheus v0.0.0-20190525122359-d20e84d0fb64/go.mod h1:oYrT4Vs22/NcnoVYXt5m4cIHP+znvgyusahVpyETKTw= github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= +github.com/prometheus/tsdb v0.8.0 h1:w1tAGxsBMLkuGrFMhqgcCeBkM5d1YI24udArs+aASuQ= +github.com/prometheus/tsdb v0.8.0/go.mod h1:fSI0j+IUQrDd7+ZtR9WKIGtoYAYAJUKcKhYLG25tN4g= +github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 h1:N/ElC8H3+5XpJzTSTfLsJV/mx9Q9g7kxmchpfZyxgzM= github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= github.com/remyoudompheng/bigfft v0.0.0-20200410134404-eec4a21b6bb0 h1:OdAsTTz6OkFY5QxjkYwrChwuRruF69c169dPK26NUlk= @@ -725,26 +804,34 @@ github.com/remyoudompheng/bigfft v0.0.0-20200410134404-eec4a21b6bb0/go.mod h1:qq github.com/rivo/uniseg v0.1.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rivo/uniseg v0.2.0 h1:S1pD9weZBuJdFmowNwbpi7BJ8TNftyUImj/0WQi72jY= github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= +github.com/rlmcpherson/s3gof3r v0.5.0/go.mod h1:s7vv7SMDPInkitQMuZzH615G7yWHdrU2r/Go7Bo71Rs= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.6.1 h1:/FiVV8dS/e+YqF2JvO3yXRFbBLTIuSDkuC7aBOAvL+k= github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= +github.com/rubyist/circuitbreaker v2.2.1+incompatible/go.mod h1:Ycs3JgJADPuzJDwffe12k6BZT8hxVi6lFK+gWYJLN4A= github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= github.com/ryanuber/columnize v2.1.0+incompatible/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= +github.com/samuel/go-zookeeper v0.0.0-20161028232340-1d7be4effb13/go.mod h1:gi+0XIa01GRL2eRQVjQkKGqKF3SF9vZR/HnPullcV2E= +github.com/sasha-s/go-deadlock v0.0.0-20161201235124-341000892f3d/go.mod h1:StQn567HiB1fF2yJ44N9au7wOhrPS3iZqiDbRupzT10= +github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0= github.com/sclevine/agouti v3.0.0+incompatible/go.mod h1:b4WX9W9L1sfQKXeJf1mUTLZKJ48R1S7H23Ji7oFO5Bw= github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= github.com/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= github.com/shirou/gopsutil/v3 v3.21.12/go.mod h1:BToYZVTlSVlfazpDDYFnsVZLaoRG+g8ufT6fPQLdJzA= github.com/shirou/gopsutil/v3 v3.22.4 h1:srAQaiX6jX/cYL6q29aE0m8lOskT9CurZ9N61YR3yoI= github.com/shirou/gopsutil/v3 v3.22.4/go.mod h1:D01hZJ4pVHPpCTZ3m3T2+wDF2YAGfd+H4ifUguaQzHM= +github.com/shopspring/decimal v0.0.0-20180709203117-cd690d0c9e24/go.mod h1:M+9NzErvs504Cn4c5DxATwIqPbtswREoFCre64PpcG4= +github.com/shurcooL/httpfs v0.0.0-20171119174359-809beceb2371/go.mod h1:ZY1cvUeJuFPAdZ/B6v7RHavJWZn2YPVFQ1OSXhCGOkg= github.com/shurcooL/httpfs v0.0.0-20190707220628-8d4bc4ba7749 h1:bUGsEnyNbVPw06Bs80sCeARAlK8lhwqGyi6UT8ymuGk= github.com/shurcooL/httpfs v0.0.0-20190707220628-8d4bc4ba7749/go.mod h1:ZY1cvUeJuFPAdZ/B6v7RHavJWZn2YPVFQ1OSXhCGOkg= github.com/shurcooL/httpgzip v0.0.0-20190720172056-320755c1c1b0 h1:mj/nMDAwTBiaCqMEs4cYCqF7pO6Np7vhy1D1wcQGz+E= github.com/shurcooL/httpgzip v0.0.0-20190720172056-320755c1c1b0/go.mod h1:919LwcH0M7/W4fcZ0/jy0qGght1GIhqyS/EgWGH2j5Q= github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= +github.com/shurcooL/vfsgen v0.0.0-20180711163814-62bca832be04/go.mod h1:TrYk7fJVaAttu97ZZKrO9UbRa8izdowaMIZcxYMbVaw= github.com/shurcooL/vfsgen v0.0.0-20200824052919-0d455de96546 h1:pXY9qYc/MP5zdvqWEUH6SjNiu7VhSjuVFTFiTcphaLU= github.com/shurcooL/vfsgen v0.0.0-20200824052919-0d455de96546/go.mod h1:TrYk7fJVaAttu97ZZKrO9UbRa8izdowaMIZcxYMbVaw= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= @@ -754,10 +841,12 @@ github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic github.com/sirupsen/logrus v1.8.1 h1:dJKuHgqk1NNQlqoA6BTlM1Wf9DOH3NBjQyu0h9+AZZE= github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= +github.com/smartystreets/goconvey v0.0.0-20180222194500-ef6db91d284a/go.mod h1:XDJAKZRPZ1CvBcN2aX5YOUTYGHki24fSF0Iv48Ibg0s= github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= github.com/soheilhy/cmux v0.1.5 h1:jjzc5WVemNEDTLwv9tlmemhC73tI08BNOIGwBOo10Js= github.com/soheilhy/cmux v0.1.5/go.mod h1:T7TcVDs9LWfQgPlPsdngu6I6QIoyIFZDDC6sNE1GqG0= +github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72 h1:qLC7fQah7D6K1B0ujays3HV9gkFtllcxhzImRR7ArPQ= github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk= @@ -791,8 +880,8 @@ github.com/tdakkota/asciicheck v0.1.1 h1:PKzG7JUTUmVspQTDqtkX9eSiLGossXTybutHwTX github.com/tdakkota/asciicheck v0.1.1/go.mod h1:yHp0ai0Z9gUljN3o0xMhYJnH/IcvkdTBOX2fmJ93JEM= github.com/tiancaiamao/appdash v0.0.0-20181126055449-889f96f722a2 h1:mbAskLJ0oJfDRtkanvQPiooDH8HvJ2FBh+iKT/OmiQQ= github.com/tiancaiamao/appdash v0.0.0-20181126055449-889f96f722a2/go.mod h1:2PfKggNGDuadAa0LElHrByyrz4JPZ9fFx6Gs7nx7ZZU= -github.com/tikv/client-go/v2 v2.0.1-0.20220627063500-947d923945fd h1:VAyYcN1Nw7RupQszUYqOkueEVapWSxKFU7uBaYY5Dv8= -github.com/tikv/client-go/v2 v2.0.1-0.20220627063500-947d923945fd/go.mod h1:uoZHYWKB+PsDueEnZ0EvF5zvNJPEauEWN26Tgi7qvNI= +github.com/tikv/client-go/v2 v2.0.1-0.20220721031657-e38d2b07de3f h1:fCAWVzUJYee1pDqYTBt5j2G1WuUfOL7A2mZoONoaHgs= +github.com/tikv/client-go/v2 v2.0.1-0.20220721031657-e38d2b07de3f/go.mod h1:UmDQEoeHXza8RSHBXVFERpxH54VBOf8yKZVphyel3l4= github.com/tikv/pd/client v0.0.0-20220307081149-841fa61e9710 h1:jxgmKOscXSjaFEKQGRyY5qOpK8hLqxs2irb/uDJMtwk= github.com/tikv/pd/client v0.0.0-20220307081149-841fa61e9710/go.mod h1:AtvppPwkiyUgQlR1W9qSqfTB+OsOIu19jDCOxOsPkmU= github.com/tklauser/go-sysconf v0.3.9/go.mod h1:11DU/5sG7UexIrp/O6g35hrWzu0JxlwQ3LSFUzyeuhs= @@ -865,6 +954,8 @@ go.etcd.io/etcd/server/v3 v3.5.2 h1:B6ytJvS4Fmt8nkjzS2/8POf4tuPhFMluE0lWd4dx/7U= go.etcd.io/etcd/server/v3 v3.5.2/go.mod h1:mlG8znIEz4N/28GABrohZCBM11FqgGVQcpbcyJgh0j0= go.etcd.io/etcd/tests/v3 v3.5.2 h1:uk7/uMGVebpBDl+roivowHt6gJ5Fnqwik3syDkoSKdo= go.etcd.io/etcd/tests/v3 v3.5.2/go.mod h1:Jdzbei4uFi9C3xDBfCwckRXjlX0UPooiP4g/zXgBMgQ= +go.opencensus.io v0.20.1/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= +go.opencensus.io v0.20.2/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= @@ -928,7 +1019,9 @@ golang.org/x/crypto v0.0.0-20180723164146-c126467f60eb/go.mod h1:6SG95UA2DQfeDnf golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20190325154230-a5d413f7728c/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= @@ -938,9 +1031,8 @@ golang.org/x/crypto v0.0.0-20201002170205-7f63de1d35b0/go.mod h1:LzIPMQfyMNhhGPh golang.org/x/crypto v0.0.0-20201016220609-9e8e0b390897/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20201112155050-0c6587e931a9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= +golang.org/x/crypto v0.0.0-20210921155107-089bfa567519 h1:7I4JAnoQBe7ZtJcBaYHi5UtiO8tQHbUSXxL+pnGRANg= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.0.0-20220214200702-86341886e292 h1:f+lwQ+GtmgoY+A2YaQxlSOnDjXcQ7ZRLWOHbC6HtRqE= -golang.org/x/crypto v0.0.0-20220214200702-86341886e292/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= @@ -997,9 +1089,11 @@ golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73r golang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190125091013-d26f9f9a57f3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190327091125-710a502c58a2/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190403144856-b630fd6fe46b/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= @@ -1036,14 +1130,16 @@ golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4/go.mod h1:RBQZq4jEuRlivfhVLdyRGr576XBO4/greRjx4P4O3yc= golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= golang.org/x/net v0.0.0-20210427231257-85d9c07bbe3a/go.mod h1:OJAsFXCWl8Ukc7SiCT/9KSuxbyM7479/AVlXFRxuMCk= -golang.org/x/net v0.0.0-20210428140749-89ef3d95e781/go.mod h1:OJAsFXCWl8Ukc7SiCT/9KSuxbyM7479/AVlXFRxuMCk= golang.org/x/net v0.0.0-20210503060351-7fd8e65b6420/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20210610132358-84b48f89b13b/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20210805182204-aaa1db679c0d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd h1:O7DYs+zxREGLKzKoMQrtrEacpb0ZVXA5rIwylE2Xchk= golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= +golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= +golang.org/x/net v0.0.0-20220325170049-de3da57026de/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= +golang.org/x/net v0.0.0-20220412020605-290c469a71a5 h1:bRb386wvrE+oBNdF1d/Xh9mQrfQ4ecYhW5qJ5GvTGT4= +golang.org/x/net v0.0.0-20220412020605-290c469a71a5/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -1059,8 +1155,11 @@ golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c/go.mod h1:KelEdhl1UZF7XfJ golang.org/x/oauth2 v0.0.0-20210628180205-a41e5a781914/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20210805134026-6f1e6394065a/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20210819190943-2bc19b11175f/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20211104180415-d3ed0bb246c8 h1:RerP+noqYHUQ8CMRcPlC2nvTa4dcBIjegkuWdcUDuqg= golang.org/x/oauth2 v0.0.0-20211104180415-d3ed0bb246c8/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20220223155221-ee480838109b/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc= +golang.org/x/oauth2 v0.0.0-20220309155454-6242fa91716a/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc= +golang.org/x/oauth2 v0.0.0-20220411215720-9780585627b5 h1:OSnWWcOd/CtWQC2cYSBgbTSJv3ciqd8r54ySIW2y3RE= +golang.org/x/oauth2 v0.0.0-20220411215720-9780585627b5/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -1082,10 +1181,13 @@ golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5h golang.org/x/sys v0.0.0-20181026203630-95b1ffbd15a5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181122145206-62eef0e2fa9b/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181205085412-a5c9d58dba9a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190209173611-3b5209105503/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190403152447-81d4e9dc473e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -1128,7 +1230,6 @@ golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20201201145000-ef89a241ccb3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210104204734-6f8348627aad/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210112080510-489259a85091/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210220050731-9a76102bfb43/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -1159,6 +1260,8 @@ golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220114195835-da31bd327af9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220128215802-99c3d69c2c27/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220209214540-3681064d5158/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220227234510-4e6760a101f9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220328115105-d36c6a25d886/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220622161953-175b2fd9d664 h1:wEZYwx+kK+KlZ0hpvP2Ls1Xr4+RWnlzGFwPP0aiDjIU= golang.org/x/sys v0.0.0-20220622161953-175b2fd9d664/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= @@ -1174,6 +1277,7 @@ golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7 h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= +golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -1182,6 +1286,7 @@ golang.org/x/time v0.0.0-20220224211638-0e9765cccd65 h1:M73Iuj3xbbb9Uk1DYhzydths golang.org/x/time v0.0.0-20220224211638-0e9765cccd65/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180525024113-a5b4c53f6e8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20180828015842-6cd1fcedba52/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20181221001348-537d06c36207/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= @@ -1238,7 +1343,6 @@ golang.org/x/tools v0.0.0-20201110124207-079ba7bd75cd/go.mod h1:emZCQorbCU4vsT4f golang.org/x/tools v0.0.0-20201125231158-b5590deeca9b/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20201201161351-ac6f37ff4c2a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20201208233053-a543418bbed2/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= @@ -1261,6 +1365,8 @@ gonum.org/v1/gonum v0.0.0-20180816165407-929014505bf4/go.mod h1:Y+Yx5eoAFn32cQvJ gonum.org/v1/gonum v0.8.2/go.mod h1:oe/vMfY3deqTw+1EZJhuvEW2iwGF1bW9wwu7XCu0+v0= gonum.org/v1/netlib v0.0.0-20190313105609-8cb42192e0e0/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw= gonum.org/v1/plot v0.0.0-20190515093506-e2840ee46a6b/go.mod h1:Wt8AAjI+ypCyYX3nZBvf6cAIx93T+c/OS2HFAYskSZc= +google.golang.org/api v0.3.1/go.mod h1:6wY9I6uQWHQ8EM57III9mq/AjF+i8G65rmVagqKMtkk= +google.golang.org/api v0.3.2/go.mod h1:6wY9I6uQWHQ8EM57III9mq/AjF+i8G65rmVagqKMtkk= google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= @@ -1294,8 +1400,12 @@ google.golang.org/api v0.61.0/go.mod h1:xQRti5UdCmoCEqFxcz93fTl338AVqDgyaDRuOZ3h google.golang.org/api v0.63.0/go.mod h1:gs4ij2ffTRXwuzzgJl/56BdwJaA194ijkfn++9tDuPo= google.golang.org/api v0.64.0/go.mod h1:931CdxA8Rm4t6zqTFGSsgwbAEZ2+GMYurbndwSimebM= google.golang.org/api v0.66.0/go.mod h1:I1dmXYpX7HGwz/ejRxwQp2qj5bFAz93HiCU1C1oYd9M= -google.golang.org/api v0.69.0 h1:yHW5s2SFyDapr/43kYtIQmoaaFVW4baLMLwqV4auj2A= +google.golang.org/api v0.67.0/go.mod h1:ShHKP8E60yPsKNw/w8w+VYaj9H6buA5UqDp8dhbQZ6g= google.golang.org/api v0.69.0/go.mod h1:boanBiw+h5c3s+tBPgEzLDRHfFLWV0qXxRHz3ws7C80= +google.golang.org/api v0.70.0/go.mod h1:Bs4ZM2HGifEvXwd50TtW70ovgJffJYw2oRCOFU/SkfA= +google.golang.org/api v0.71.0/go.mod h1:4PyU6e6JogV1f9eA4voyrTY2batOLdgZ5qZ5HOCc4j8= +google.golang.org/api v0.74.0 h1:ExR2D+5TYIrMphWgs5JCgwRhEDlPDXXrLwHHMgPHTXE= +google.golang.org/api v0.74.0/go.mod h1:ZpfMZOVRMywNyvJFeqL9HRWBgAuRfSjJFpe9QtRRyDs= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= @@ -1371,13 +1481,22 @@ google.golang.org/genproto v0.0.0-20211221195035-429b39de9b1c/go.mod h1:5CzLGKJ6 google.golang.org/genproto v0.0.0-20211223182754-3ac035c7e7cb/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= google.golang.org/genproto v0.0.0-20220111164026-67b88f271998/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= google.golang.org/genproto v0.0.0-20220114231437-d2e6a121cae0/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= +google.golang.org/genproto v0.0.0-20220126215142-9970aeb2e350/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= google.golang.org/genproto v0.0.0-20220201184016-50beb8ab5c44/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= +google.golang.org/genproto v0.0.0-20220207164111-0872dc986b00/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= google.golang.org/genproto v0.0.0-20220211171837-173942840c17/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI= -google.golang.org/genproto v0.0.0-20220216160803-4663080d8bc8 h1:divpuJZKgX3Qt7MFDE5v62yu0yQcQbTCD9VJp9leX58= google.golang.org/genproto v0.0.0-20220216160803-4663080d8bc8/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI= +google.golang.org/genproto v0.0.0-20220218161850-94dd64e39d7c/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI= +google.golang.org/genproto v0.0.0-20220222213610-43724f9ea8cf/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI= +google.golang.org/genproto v0.0.0-20220304144024-325a89244dc8/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI= +google.golang.org/genproto v0.0.0-20220310185008-1973136f34c6/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI= +google.golang.org/genproto v0.0.0-20220324131243-acbaeb5b85eb h1:0m9wktIpOxGw+SSKmydXWB3Z3GTfcPP6+q75HCQa6HI= +google.golang.org/genproto v0.0.0-20220324131243-acbaeb5b85eb/go.mod h1:hAL49I2IFola2sVEjAn7MEwsja0xp51I0tlGAf9hz4E= google.golang.org/grpc v0.0.0-20180607172857-7a6a684ca69e/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= google.golang.org/grpc v1.12.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= +google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= +google.golang.org/grpc v1.19.1/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= @@ -1405,8 +1524,9 @@ google.golang.org/grpc v1.39.1/go.mod h1:PImNr+rS9TWYb2O4/emRugxiyHZ5JyHW5F+RPnD google.golang.org/grpc v1.40.0/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34= google.golang.org/grpc v1.40.1/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34= google.golang.org/grpc v1.43.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU= -google.golang.org/grpc v1.44.0 h1:weqSxi/TMs1SqFRMHCtBgXRs8k3X39QIDEZ0pRcttUg= google.golang.org/grpc v1.44.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU= +google.golang.org/grpc v1.45.0 h1:NEpgUqV3Z+ZjkqMsxMg11IaDrXY4RY6CQukSGK0uI1M= +google.golang.org/grpc v1.45.0/go.mod h1:lN7owxKUQEqMfSyQikvvk5tf/6zMPsrK+ONuO11+0rQ= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= @@ -1432,8 +1552,10 @@ gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntN gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= +gopkg.in/fsnotify/fsnotify.v1 v1.3.1/go.mod h1:Fyux9zXlo4rWoMSIzpn9fDAYjalPqJ/K1qJ27s+7ltE= gopkg.in/go-playground/assert.v1 v1.2.1/go.mod h1:9RXL0bg/zibRAgZUYszZSwO/z8Y/a8bDuhia5mkpMnE= gopkg.in/go-playground/validator.v8 v8.18.2/go.mod h1:RX2a/7Ha8BgOhfk7j780h4/u/RRjR0eouCJSH80/M2Y= +gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/ini.v1 v1.66.2/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/jcmturner/aescts.v1 v1.0.1/go.mod h1:nsR8qBOg+OucoIW+WMhB3GspUQXq9XorLnQb9XtvcOo= @@ -1462,10 +1584,17 @@ gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b h1:h8qDotaEPuJATrMmW04NCwg7v gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= honnef.co/go/tools v0.3.2 h1:ytYb4rOqyp1TSa2EPvNVwtPQJctSELKaMyLfqNP4+34= honnef.co/go/tools v0.3.2/go.mod h1:jzwdWgg7Jdq75wlfblQxO4neNaFFSvgc1tD5Wv8U0Yw= +k8s.io/api v0.0.0-20190409021203-6e4e0e4f393b/go.mod h1:iuAfoD4hCxJ8Onx9kaTIt30j7jUFS00AXQi6QMi99vA= +k8s.io/apimachinery v0.0.0-20190404173353-6a84e37a896d/go.mod h1:ccL7Eh7zubPUSh9A3USN90/OzHNSVN6zxzde07TDCL0= +k8s.io/client-go v11.0.1-0.20190409021438-1a26190bd76a+incompatible/go.mod h1:7vJpHMYJwNQCWgzmNV+VYUl1zCObLyodBc8nIyt8L5s= +k8s.io/klog v0.3.0/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk= +k8s.io/kube-openapi v0.0.0-20180629012420-d83b052f768a/go.mod h1:BXM9ceUBTj2QnfH2MK1odQs778ajze1RxcmP6S8RVVc= +k8s.io/utils v0.0.0-20190308190857-21c4ce38f2a7/go.mod h1:8k8uAuAQ0rXslZKaEWd0c3oVhZz7sSzSiPnVZayjIX0= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4= rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= +sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o= sigs.k8s.io/yaml v1.2.0 h1:kr/MCeFWJWTwyaHoR9c8EjH9OumOmoF9YGiZd7lFm/Q= sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc= sourcegraph.com/sourcegraph/appdash v0.0.0-20190731080439-ebfcffb1b5c0 h1:ucqkfpjg9WzSUubAO62csmucvxl4/JeW3F4I4909XkM= @@ -1473,4 +1602,3 @@ sourcegraph.com/sourcegraph/appdash v0.0.0-20190731080439-ebfcffb1b5c0/go.mod h1 sourcegraph.com/sourcegraph/appdash-data v0.0.0-20151005221446-73f23eafcf67 h1:e1sMhtVq9AfcEy8AXNb8eSg6gbzfdpYhoNqnPJa+GzI= sourcegraph.com/sourcegraph/appdash-data v0.0.0-20151005221446-73f23eafcf67/go.mod h1:L5q+DGLGOQFpo1snNEkLOJT2d1YTW66rWNzatr3He1k= stathat.com/c/consistent v1.0.0 h1:ezyc51EGcRPJUxfHGSgJjWzJdj3NiMU9pNfLNGiXV0c= -stathat.com/c/consistent v1.0.0/go.mod h1:QkzMWzcbB+yQBL2AttO6sgsQS/JSTapcDISJalmCDS0= diff --git a/infoschema/cache.go b/infoschema/cache.go index 1e2191e4699da..22ea012a9be28 100644 --- a/infoschema/cache.go +++ b/infoschema/cache.go @@ -67,7 +67,26 @@ func (h *InfoCache) GetByVersion(version int64) InfoSchema { i := sort.Search(len(h.cache), func(i int) bool { return h.cache[i].SchemaMetaVersion() <= version }) - if i < len(h.cache) && h.cache[i].SchemaMetaVersion() == version { + + // `GetByVersion` is allowed to load the latest schema that is less than argument `version`. + // Consider cache has values [10, 9, _, _, 6, 5, 4, 3, 2, 1], version 8 and 7 is empty because of the diff is empty. + // If we want to get version 8, we can return version 6 because v7 and v8 do not change anything, they are totally the same, + // in this case the `i` will not be 0. + // If i == 0, it means the argument version is `10`, or greater than `10`, if `version` is 10 + // `h.cache[i].SchemaMetaVersion() == version` will be true, so we can return the latest schema, return nil if not. + // The following code is equivalent to: + // ``` + // if h.GetLatest().SchemaMetaVersion() < version { + // return nil + // } + // + // if i < len(h.cache) { + // hitVersionCounter.Inc() + // return h.cache[i] + // } + // ``` + + if i < len(h.cache) && (i != 0 || h.cache[i].SchemaMetaVersion() == version) { hitVersionCounter.Inc() return h.cache[i] } diff --git a/infoschema/cache_test.go b/infoschema/cache_test.go index 977b9906c34b9..c229df8c8747c 100644 --- a/infoschema/cache_test.go +++ b/infoschema/cache_test.go @@ -107,7 +107,7 @@ func TestGetByVersion(t *testing.T) { require.Equal(t, is1, ic.GetByVersion(1)) require.Equal(t, is3, ic.GetByVersion(3)) require.Nilf(t, ic.GetByVersion(0), "index == 0, but not found") - require.Nilf(t, ic.GetByVersion(2), "index in the middle, but not found") + require.Equal(t, int64(1), ic.GetByVersion(2).SchemaMetaVersion()) require.Nilf(t, ic.GetByVersion(4), "index == length, but not found") } diff --git a/infoschema/metric_table_def.go b/infoschema/metric_table_def.go index 7487adadb6168..fed4017286db2 100644 --- a/infoschema/metric_table_def.go +++ b/infoschema/metric_table_def.go @@ -2514,7 +2514,7 @@ var MetricTableMap = map[string]MetricTableDef{ }, "tidb_distsql_copr_cache": { Comment: "The total count of TiDB distsql coprocessor cache", - PromQL: "sum(rate(tidb_distsql_copr_cache{$LABEL_CONDITIONS}[$RANGE_DURATION])) by (type,instance))", + PromQL: "sum(rate(tidb_distsql_copr_cache{$LABEL_CONDITIONS}[$RANGE_DURATION])) by (type,instance)", Labels: []string{"instance", "type"}, }, "tidb_execute_total_count": { diff --git a/infoschema/metrics_schema_test.go b/infoschema/metrics_schema_test.go index 0cb1554f2e3ca..5e8e4606351ba 100644 --- a/infoschema/metrics_schema_test.go +++ b/infoschema/metrics_schema_test.go @@ -15,14 +15,23 @@ package infoschema_test import ( + "strconv" "strings" "testing" "github.com/pingcap/tidb/infoschema" "github.com/pingcap/tidb/util/set" + "github.com/prometheus/prometheus/promql" "github.com/stretchr/testify/require" ) +func mockGenPromQL(promQL string) string { + promQL = strings.Replace(promQL, "$QUANTILE", strconv.FormatFloat(0.5, 'f', -1, 64), -1) + promQL = strings.Replace(promQL, "$LABEL_CONDITIONS", "", -1) + promQL = strings.Replace(promQL, "$RANGE_DURATION", "1s", -1) + return promQL +} + func TestMetricSchemaDef(t *testing.T) { for name, def := range infoschema.MetricTableMap { if strings.Contains(def.PromQL, "$QUANTILE") || strings.Contains(def.PromQL, "histogram_quantile") { @@ -53,5 +62,8 @@ func TestMetricSchemaDef(t *testing.T) { if set.NewStringSet(def.Labels...).Exist("instance") { require.Equalf(t, "instance", def.Labels[0], "metrics table %v: expect `instance`is the first label but got %v", name, def.Labels) } + + _, err := promql.ParseExpr(mockGenPromQL(def.PromQL)) + require.NoError(t, err, "fail to parser PromQL %s", def.PromQL) } } diff --git a/infoschema/perfschema/BUILD.bazel b/infoschema/perfschema/BUILD.bazel index c577e67525808..7087c0c44e911 100644 --- a/infoschema/perfschema/BUILD.bazel +++ b/infoschema/perfschema/BUILD.bazel @@ -40,6 +40,7 @@ go_test( ], data = glob(["testdata/**"]), embed = [":perfschema"], + flaky = True, deps = [ "//kv", "//parser/terror", diff --git a/infoschema/tables.go b/infoschema/tables.go index e6c843e45f8bf..f8584724b2704 100644 --- a/infoschema/tables.go +++ b/infoschema/tables.go @@ -888,6 +888,7 @@ var slowQueryCols = []columnInfo{ {name: variable.SlowLogHasMoreResults, tp: mysql.TypeTiny, size: 1}, {name: variable.SlowLogPlan, tp: mysql.TypeLongBlob, size: types.UnspecifiedLength}, {name: variable.SlowLogPlanDigest, tp: mysql.TypeVarchar, size: 128}, + {name: variable.SlowLogBinaryPlan, tp: mysql.TypeLongBlob, size: types.UnspecifiedLength}, {name: variable.SlowLogPrevStmt, tp: mysql.TypeLongBlob, size: types.UnspecifiedLength}, {name: variable.SlowLogQuerySQLStr, tp: mysql.TypeLongBlob, size: types.UnspecifiedLength}, } @@ -1294,6 +1295,7 @@ var tableStatementsSummaryCols = []columnInfo{ {name: stmtsummary.PrevSampleTextStr, tp: mysql.TypeBlob, size: types.UnspecifiedLength, comment: "The previous statement before commit"}, {name: stmtsummary.PlanDigestStr, tp: mysql.TypeVarchar, size: 64, comment: "Digest of its execution plan"}, {name: stmtsummary.PlanStr, tp: mysql.TypeBlob, size: types.UnspecifiedLength, comment: "Sampled execution plan"}, + {name: stmtsummary.BinaryPlan, tp: mysql.TypeBlob, size: types.UnspecifiedLength, comment: "Sampled binary plan"}, } var tableStorageStatsCols = []columnInfo{ diff --git a/infoschema/tables_test.go b/infoschema/tables_test.go index 42a1cc3ece50d..36aff22cdfaaf 100644 --- a/infoschema/tables_test.go +++ b/infoschema/tables_test.go @@ -567,13 +567,13 @@ func TestSlowQuery(t *testing.T) { tk.MustExec(fmt.Sprintf("set @@tidb_slow_query_file='%v'", slowLogFileName)) tk.MustExec("set time_zone = '+08:00';") re := tk.MustQuery("select * from information_schema.slow_query") - re.Check(testkit.RowsWithSep("|", "2019-02-12 19:33:56.571953|406315658548871171|root|localhost|6|57|0.12|4.895492|0.4|0.2|0.000000003|2|0.000000002|0.00000001|0.000000003|0.19|0.21|0.01|0|0.18|[txnLock]|0.03|0|15|480|1|8|0.3824278|0.161|0.101|0.092|1.71|1|100001|100000|100|10|10|10|100|test||0|42a1c8aae6f133e934d4bf0147491709a8812ea05ff8819ec522780fe657b772|t1:1,t2:2|0.1|0.2|0.03|127.0.0.1:20160|0.05|0.6|0.8|0.0.0.0:20160|70724|65536|0|0|0|0|10||0|1|0|0|1|0|0|abcd|60e9378c746d9a2be1c791047e008967cf252eb6de9167ad3aa6098fa2d523f4|update t set i = 2;|select * from t_slim;", - "2021-09-08|14:39:54.506967|427578666238083075|root|172.16.0.0|40507|0|0|25.571605962|0.002923536|0.006800973|0.002100764|0|0|0|0.000015801|25.542014572|0|0.002294647|0.000605473|12.483|[tikvRPC regionMiss tikvRPC regionMiss regionMiss]|0|0|624|172064|60|0|0|0|0|0|0|0|0|0|0|0|0|0|0|rtdb||0|124acb3a0bec903176baca5f9da00b4e7512a41c93b417923f26502edeb324cc||0|0|0||0|0|0||856544|0|86.635049185|0.015486658|100.054|0|0||0|1|0|0|0|0|0||||INSERT INTO ...;", + re.Check(testkit.RowsWithSep("|", "2019-02-12 19:33:56.571953|406315658548871171|root|localhost|6|57|0.12|4.895492|0.4|0.2|0.000000003|2|0.000000002|0.00000001|0.000000003|0.19|0.21|0.01|0|0.18|[txnLock]|0.03|0|15|480|1|8|0.3824278|0.161|0.101|0.092|1.71|1|100001|100000|100|10|10|10|100|test||0|42a1c8aae6f133e934d4bf0147491709a8812ea05ff8819ec522780fe657b772|t1:1,t2:2|0.1|0.2|0.03|127.0.0.1:20160|0.05|0.6|0.8|0.0.0.0:20160|70724|65536|0|0|0|0|10||0|1|0|0|1|0|0|abcd|60e9378c746d9a2be1c791047e008967cf252eb6de9167ad3aa6098fa2d523f4||update t set i = 2;|select * from t_slim;", + "2021-09-08|14:39:54.506967|427578666238083075|root|172.16.0.0|40507|0|0|25.571605962|0.002923536|0.006800973|0.002100764|0|0|0|0.000015801|25.542014572|0|0.002294647|0.000605473|12.483|[tikvRPC regionMiss tikvRPC regionMiss regionMiss]|0|0|624|172064|60|0|0|0|0|0|0|0|0|0|0|0|0|0|0|rtdb||0|124acb3a0bec903176baca5f9da00b4e7512a41c93b417923f26502edeb324cc||0|0|0||0|0|0||856544|0|86.635049185|0.015486658|100.054|0|0||0|1|0|0|0|0|0|||||INSERT INTO ...;", )) tk.MustExec("set time_zone = '+00:00';") re = tk.MustQuery("select * from information_schema.slow_query") - re.Check(testkit.RowsWithSep("|", "2019-02-12 11:33:56.571953|406315658548871171|root|localhost|6|57|0.12|4.895492|0.4|0.2|0.000000003|2|0.000000002|0.00000001|0.000000003|0.19|0.21|0.01|0|0.18|[txnLock]|0.03|0|15|480|1|8|0.3824278|0.161|0.101|0.092|1.71|1|100001|100000|100|10|10|10|100|test||0|42a1c8aae6f133e934d4bf0147491709a8812ea05ff8819ec522780fe657b772|t1:1,t2:2|0.1|0.2|0.03|127.0.0.1:20160|0.05|0.6|0.8|0.0.0.0:20160|70724|65536|0|0|0|0|10||0|1|0|0|1|0|0|abcd|60e9378c746d9a2be1c791047e008967cf252eb6de9167ad3aa6098fa2d523f4|update t set i = 2;|select * from t_slim;", - "2021-09-08|06:39:54.506967|427578666238083075|root|172.16.0.0|40507|0|0|25.571605962|0.002923536|0.006800973|0.002100764|0|0|0|0.000015801|25.542014572|0|0.002294647|0.000605473|12.483|[tikvRPC regionMiss tikvRPC regionMiss regionMiss]|0|0|624|172064|60|0|0|0|0|0|0|0|0|0|0|0|0|0|0|rtdb||0|124acb3a0bec903176baca5f9da00b4e7512a41c93b417923f26502edeb324cc||0|0|0||0|0|0||856544|0|86.635049185|0.015486658|100.054|0|0||0|1|0|0|0|0|0||||INSERT INTO ...;", + re.Check(testkit.RowsWithSep("|", "2019-02-12 11:33:56.571953|406315658548871171|root|localhost|6|57|0.12|4.895492|0.4|0.2|0.000000003|2|0.000000002|0.00000001|0.000000003|0.19|0.21|0.01|0|0.18|[txnLock]|0.03|0|15|480|1|8|0.3824278|0.161|0.101|0.092|1.71|1|100001|100000|100|10|10|10|100|test||0|42a1c8aae6f133e934d4bf0147491709a8812ea05ff8819ec522780fe657b772|t1:1,t2:2|0.1|0.2|0.03|127.0.0.1:20160|0.05|0.6|0.8|0.0.0.0:20160|70724|65536|0|0|0|0|10||0|1|0|0|1|0|0|abcd|60e9378c746d9a2be1c791047e008967cf252eb6de9167ad3aa6098fa2d523f4||update t set i = 2;|select * from t_slim;", + "2021-09-08|06:39:54.506967|427578666238083075|root|172.16.0.0|40507|0|0|25.571605962|0.002923536|0.006800973|0.002100764|0|0|0|0.000015801|25.542014572|0|0.002294647|0.000605473|12.483|[tikvRPC regionMiss tikvRPC regionMiss regionMiss]|0|0|624|172064|60|0|0|0|0|0|0|0|0|0|0|0|0|0|0|rtdb||0|124acb3a0bec903176baca5f9da00b4e7512a41c93b417923f26502edeb324cc||0|0|0||0|0|0||856544|0|86.635049185|0.015486658|100.054|0|0||0|1|0|0|0|0|0|||||INSERT INTO ...;", )) // Test for long query. @@ -825,10 +825,10 @@ func TestStmtSummaryTable(t *testing.T) { "max_prewrite_regions, avg_affected_rows, query_sample_text, plan " + "from information_schema.statements_summary " + "where digest_text like 'select * from `t`%'" - tk.MustQuery(sql).Check(testkit.Rows("Select test test.t t:k 1 0 0 0 0 0 0 0 0 0 0 select * from t where a=2 \tid \ttask \testRows\toperator info\n" + - "\tIndexLookUp_10 \troot \t100 \t\n" + - "\t├─IndexRangeScan_8\tcop[tikv]\t100 \ttable:t, index:k(a), range:[2,2], keep order:false, stats:pseudo\n" + - "\t└─TableRowIDScan_9\tcop[tikv]\t100 \ttable:t, keep order:false, stats:pseudo")) + tk.MustQuery(sql).Check(testkit.Rows("Select test test.t t:k 1 0 0 0 0 0 0 0 0 0 0 select * from t where a=2 \tid \ttask \testRows\toperator info\n" + + "\tIndexLookUp_10 \troot \t100 \t\n" + + "\t├─IndexRangeScan_8(Build)\tcop[tikv]\t100 \ttable:t, index:k(a), range:[2,2], keep order:false, stats:pseudo\n" + + "\t└─TableRowIDScan_9(Probe)\tcop[tikv]\t100 \ttable:t, keep order:false, stats:pseudo")) // select ... order by tk.MustQuery(`select stmt_type, schema_name, table_names, index_names, exec_count, sum_cop_task_num, avg_total_keys, @@ -847,10 +847,10 @@ func TestStmtSummaryTable(t *testing.T) { "from information_schema.statements_summary " + "where digest_text like 'select * from `t`%'" tk.MustQuery(sql).Check(testkit.Rows( - "Select test test.t t:k 2 0 0 0 0 0 0 0 0 0 0 select * from t where a=2 \tid \ttask \testRows\toperator info\n" + - "\tIndexLookUp_10 \troot \t100 \t\n" + - "\t├─IndexRangeScan_8\tcop[tikv]\t100 \ttable:t, index:k(a), range:[2,2], keep order:false, stats:pseudo\n" + - "\t└─TableRowIDScan_9\tcop[tikv]\t100 \ttable:t, keep order:false, stats:pseudo")) + "Select test test.t t:k 2 0 0 0 0 0 0 0 0 0 0 select * from t where a=2 \tid \ttask \testRows\toperator info\n" + + "\tIndexLookUp_10 \troot \t100 \t\n" + + "\t├─IndexRangeScan_8(Build)\tcop[tikv]\t100 \ttable:t, index:k(a), range:[2,2], keep order:false, stats:pseudo\n" + + "\t└─TableRowIDScan_9(Probe)\tcop[tikv]\t100 \ttable:t, keep order:false, stats:pseudo")) // Disable it again. tk.MustExec("set global tidb_enable_stmt_summary = false") @@ -894,10 +894,10 @@ func TestStmtSummaryTable(t *testing.T) { "max_prewrite_regions, avg_affected_rows, query_sample_text, plan " + "from information_schema.statements_summary " + "where digest_text like 'select * from `t`%'" - tk.MustQuery(sql).Check(testkit.Rows("Select test test.t t:k 1 0 0 0 0 0 0 0 0 0 0 select * from t where a=2 \tid \ttask \testRows\toperator info\n" + - "\tIndexLookUp_10 \troot \t1000 \t\n" + - "\t├─IndexRangeScan_8\tcop[tikv]\t1000 \ttable:t, index:k(a), range:[2,2], keep order:false, stats:pseudo\n" + - "\t└─TableRowIDScan_9\tcop[tikv]\t1000 \ttable:t, keep order:false, stats:pseudo")) + tk.MustQuery(sql).Check(testkit.Rows("Select test test.t t:k 1 0 0 0 0 0 0 0 0 0 0 select * from t where a=2 \tid \ttask \testRows\toperator info\n" + + "\tIndexLookUp_10 \troot \t1000 \t\n" + + "\t├─IndexRangeScan_8(Build)\tcop[tikv]\t1000 \ttable:t, index:k(a), range:[2,2], keep order:false, stats:pseudo\n" + + "\t└─TableRowIDScan_9(Probe)\tcop[tikv]\t1000 \ttable:t, keep order:false, stats:pseudo")) // Disable it in global scope. tk.MustExec("set global tidb_enable_stmt_summary = false") diff --git a/kv/BUILD.bazel b/kv/BUILD.bazel index 835cd827b6bfa..ff40895d45d54 100644 --- a/kv/BUILD.bazel +++ b/kv/BUILD.bazel @@ -67,6 +67,7 @@ go_test( "version_test.go", ], embed = [":kv"], + flaky = True, deps = [ "//parser/model", "//parser/mysql", diff --git a/kv/checker.go b/kv/checker.go index bec1d98d46af0..80115927fa41f 100644 --- a/kv/checker.go +++ b/kv/checker.go @@ -43,7 +43,7 @@ func (d RequestTypeSupportedChecker) IsRequestTypeSupported(reqType, subType int // 1. we have more than one storage engine available for push-down. // 2. we'd better do an accurate push-down check at the planner stage, instead of here. // currently, we do aggregation push-down check in `CheckAggCanPushCop`. -func (d RequestTypeSupportedChecker) supportExpr(exprType tipb.ExprType) bool { +func (RequestTypeSupportedChecker) supportExpr(exprType tipb.ExprType) bool { switch exprType { case tipb.ExprType_Null, tipb.ExprType_Int64, tipb.ExprType_Uint64, tipb.ExprType_String, tipb.ExprType_Bytes, tipb.ExprType_MysqlDuration, tipb.ExprType_MysqlTime, tipb.ExprType_MysqlDecimal, diff --git a/kv/key.go b/kv/key.go index 561cc2a03fd78..e285aca4c1e7c 100644 --- a/kv/key.go +++ b/kv/key.go @@ -172,7 +172,7 @@ var _ Handle = PartitionHandle{} type IntHandle int64 // IsInt implements the Handle interface. -func (ih IntHandle) IsInt() bool { +func (IntHandle) IsInt() bool { return true } @@ -213,17 +213,17 @@ func (ih IntHandle) Encoded() []byte { } // Len implements the Handle interface. -func (ih IntHandle) Len() int { +func (IntHandle) Len() int { return 8 } // NumCols implements the Handle interface, not supported for IntHandle type. -func (ih IntHandle) NumCols() int { +func (IntHandle) NumCols() int { panic("not supported in IntHandle") } // EncodedCol implements the Handle interface., not supported for IntHandle type. -func (ih IntHandle) EncodedCol(idx int) []byte { +func (IntHandle) EncodedCol(_ int) []byte { panic("not supported in IntHandle") } @@ -238,12 +238,12 @@ func (ih IntHandle) String() string { } // MemUsage implements the Handle interface. -func (ih IntHandle) MemUsage() uint64 { +func (IntHandle) MemUsage() uint64 { return 8 } // ExtraMemSize implements the Handle interface. -func (ih IntHandle) ExtraMemSize() uint64 { +func (IntHandle) ExtraMemSize() uint64 { return 0 } @@ -281,12 +281,12 @@ func NewCommonHandle(encoded []byte) (*CommonHandle, error) { } // IsInt implements the Handle interface. -func (ch *CommonHandle) IsInt() bool { +func (*CommonHandle) IsInt() bool { return false } // IntValue implements the Handle interface, not supported for CommonHandle type. -func (ch *CommonHandle) IntValue() int64 { +func (*CommonHandle) IntValue() int64 { panic("not supported in CommonHandle") } diff --git a/kv/kv.go b/kv/kv.go index d65d6498c12d1..86b592e093b04 100644 --- a/kv/kv.go +++ b/kv/kv.go @@ -79,33 +79,33 @@ type Retriever interface { type EmptyIterator struct{} // Valid returns true if the current iterator is valid. -func (i *EmptyIterator) Valid() bool { return false } +func (*EmptyIterator) Valid() bool { return false } // Key returns the current key. Always return nil for this iterator -func (i *EmptyIterator) Key() Key { return nil } +func (*EmptyIterator) Key() Key { return nil } // Value returns the current value. Always return nil for this iterator -func (i *EmptyIterator) Value() []byte { return nil } +func (*EmptyIterator) Value() []byte { return nil } // Next goes the next position. Always return error for this iterator -func (i *EmptyIterator) Next() error { return errors.New("iterator is invalid") } +func (*EmptyIterator) Next() error { return errors.New("iterator is invalid") } // Close closes the iterator. -func (i *EmptyIterator) Close() {} +func (*EmptyIterator) Close() {} // EmptyRetriever is a retriever without any entry type EmptyRetriever struct{} // Get gets the value for key k from kv store. Always return nil for this retriever -func (r *EmptyRetriever) Get(_ context.Context, _ Key) ([]byte, error) { +func (*EmptyRetriever) Get(_ context.Context, _ Key) ([]byte, error) { return nil, ErrNotExist } // Iter creates an Iterator. Always return EmptyIterator for this retriever -func (r *EmptyRetriever) Iter(_ Key, _ Key) (Iterator, error) { return &EmptyIterator{}, nil } +func (*EmptyRetriever) Iter(_ Key, _ Key) (Iterator, error) { return &EmptyIterator{}, nil } // IterReverse creates a reversed Iterator. Always return EmptyIterator for this retriever -func (r *EmptyRetriever) IterReverse(_ Key) (Iterator, error) { +func (*EmptyRetriever) IterReverse(_ Key) (Iterator, error) { return &EmptyIterator{}, nil } @@ -362,16 +362,24 @@ type Request struct { ReadReplicaScope string // IsStaleness indicates whether the request read staleness data IsStaleness bool + // ClosestReplicaReadAdjuster used to adjust a copr request. + ClosestReplicaReadAdjuster CoprRequestAdjuster // MatchStoreLabels indicates the labels the store should be matched MatchStoreLabels []*metapb.StoreLabel // ResourceGroupTagger indicates the kv request task group tagger. ResourceGroupTagger tikvrpc.ResourceGroupTagger // Paging indicates whether the request is a paging request. Paging bool + // MinPagingSize is used when Paging is true. + MinPagingSize uint64 // RequestSource indicates whether the request is an internal request. RequestSource util.RequestSource } +// CoprRequestAdjuster is used to check and adjust a copr request according to specific rules. +// return true if the request is changed. +type CoprRequestAdjuster func(*Request, int) bool + // PartitionIDAndRanges used by PartitionTableScan in tiflash. type PartitionIDAndRanges struct { ID int64 diff --git a/kv/option.go b/kv/option.go index 295cf60ee0c11..5ecf120802e27 100644 --- a/kv/option.go +++ b/kv/option.go @@ -89,6 +89,8 @@ const ( RequestSourceInternal // RequestSourceType set request source type of the current statement. RequestSourceType + // ReplicaReadAdjuster set the adjust function of cop requsts. + ReplicaReadAdjuster ) // ReplicaReadType is the type of replica to read data from @@ -103,6 +105,8 @@ const ( ReplicaReadMixed // ReplicaReadClosest stands for 'read from leader and follower which locates with the same zone' ReplicaReadClosest + // ReplicaReadClosestAdaptive stands for 'read from follower which locates in the same zone if the response size exceeds certain threshold' + ReplicaReadClosestAdaptive ) // IsFollowerRead checks if follower is going to be used to read data. diff --git a/kv/txn.go b/kv/txn.go index dfad0ee2efed0..c196166bc9c48 100644 --- a/kv/txn.go +++ b/kv/txn.go @@ -51,7 +51,6 @@ func (ib *innerTxnStartTsBox) storeInnerTxnTS(startTS uint64) { ib.innerTSLock.Lock() ib.innerTxnStartTsMap[startTS] = struct{}{} ib.innerTSLock.Unlock() - } func (ib *innerTxnStartTsBox) deleteInnerTxnTS(startTS uint64) { diff --git a/lock/lock.go b/lock/lock.go index 71d76ed924075..98b8d15e7cd3a 100644 --- a/lock/lock.go +++ b/lock/lock.go @@ -89,7 +89,6 @@ func (c *Checker) CheckTableLock(db, table string, privilege mysql.PrivilegeType } } } - } if !alterWriteable && c.ctx.HasLockedTables() { diff --git a/meta/autoid/BUILD.bazel b/meta/autoid/BUILD.bazel index 3d74004a554ef..8ccdebed7d2ac 100644 --- a/meta/autoid/BUILD.bazel +++ b/meta/autoid/BUILD.bazel @@ -39,6 +39,7 @@ go_test( "memid_test.go", "seq_autoid_test.go", ], + flaky = True, deps = [ ":autoid", "//kv", diff --git a/meta/autoid/autoid.go b/meta/autoid/autoid.go index 7082ea184b476..6309816c9f899 100644 --- a/meta/autoid/autoid.go +++ b/meta/autoid/autoid.go @@ -564,7 +564,7 @@ func NewAllocatorsFromTblInfo(store kv.Storage, schemaID int64, tblInfo *model.T // but actually we don't care about it, all we need is to calculate the new autoID corresponding to the // increment and offset at this time now. To simplify the rule is like (ID - offset) % increment = 0, // so the first autoID should be 9, then add increment to it to get 13. -func (alloc *allocator) Alloc(ctx context.Context, n uint64, increment, offset int64) (int64, int64, error) { +func (alloc *allocator) Alloc(ctx context.Context, n uint64, increment, offset int64) (min int64, max int64, err error) { if alloc.tbID == 0 { return 0, 0, errInvalidTableID.GenWithStackByArgs("Invalid tableID") } @@ -584,7 +584,7 @@ func (alloc *allocator) Alloc(ctx context.Context, n uint64, increment, offset i return alloc.alloc4Signed(ctx, n, increment, offset) } -func (alloc *allocator) AllocSeqCache() (int64, int64, int64, error) { +func (alloc *allocator) AllocSeqCache() (min int64, max int64, round int64, err error) { alloc.mu.Lock() defer alloc.mu.Unlock() return alloc.alloc4Sequence() @@ -615,65 +615,65 @@ func CalcNeededBatchSize(base, n, increment, offset int64, isUnsigned bool) int6 } // CalcSequenceBatchSize calculate the next sequence batch size. -func CalcSequenceBatchSize(base, size, increment, offset, MIN, MAX int64) (int64, error) { +func CalcSequenceBatchSize(base, size, increment, offset, min, max int64) (int64, error) { // The sequence is positive growth. if increment > 0 { if increment == 1 { // Sequence is already allocated to the end. - if base >= MAX { + if base >= max { return 0, ErrAutoincReadFailed } // The rest of sequence < cache size, return the rest. - if MAX-base < size { - return MAX - base, nil + if max-base < size { + return max - base, nil } // The rest of sequence is adequate. return size, nil } - nr, ok := SeekToFirstSequenceValue(base, increment, offset, MIN, MAX) + nr, ok := SeekToFirstSequenceValue(base, increment, offset, min, max) if !ok { return 0, ErrAutoincReadFailed } // The rest of sequence < cache size, return the rest. - if MAX-nr < (size-1)*increment { - return MAX - base, nil + if max-nr < (size-1)*increment { + return max - base, nil } return (nr - base) + (size-1)*increment, nil } // The sequence is negative growth. if increment == -1 { - if base <= MIN { + if base <= min { return 0, ErrAutoincReadFailed } - if base-MIN < size { - return base - MIN, nil + if base-min < size { + return base - min, nil } return size, nil } - nr, ok := SeekToFirstSequenceValue(base, increment, offset, MIN, MAX) + nr, ok := SeekToFirstSequenceValue(base, increment, offset, min, max) if !ok { return 0, ErrAutoincReadFailed } // The rest of sequence < cache size, return the rest. - if nr-MIN < (size-1)*(-increment) { - return base - MIN, nil + if nr-min < (size-1)*(-increment) { + return base - min, nil } return (base - nr) + (size-1)*(-increment), nil } -// SeekToFirstSequenceValue seeks to the next valid value (must be in range of [MIN, MAX]), +// SeekToFirstSequenceValue seeks to the next valid value (must be in range of [MIN, max]), // the bool indicates whether the first value is got. // The seeking formula is describe as below: // nr := (base + increment - offset) / increment // first := nr*increment + offset // Because formula computation will overflow Int64, so we transfer it to uint64 for distance computation. -func SeekToFirstSequenceValue(base, increment, offset, MIN, MAX int64) (int64, bool) { +func SeekToFirstSequenceValue(base, increment, offset, min, max int64) (int64, bool) { if increment > 0 { // Sequence is already allocated to the end. - if base >= MAX { + if base >= max { return 0, false } - uMax := EncodeIntToCmpUint(MAX) + uMax := EncodeIntToCmpUint(max) uBase := EncodeIntToCmpUint(base) uOffset := EncodeIntToCmpUint(offset) uIncrement := uint64(increment) @@ -692,10 +692,10 @@ func SeekToFirstSequenceValue(base, increment, offset, MIN, MAX int64) (int64, b return first, true } // Sequence is already allocated to the end. - if base <= MIN { + if base <= min { return 0, false } - uMin := EncodeIntToCmpUint(MIN) + uMin := EncodeIntToCmpUint(min) uBase := EncodeIntToCmpUint(base) uOffset := EncodeIntToCmpUint(offset) uIncrement := uint64(-increment) @@ -728,7 +728,7 @@ func SeekToFirstAutoIDUnSigned(base, increment, offset uint64) uint64 { return nr } -func (alloc *allocator) alloc4Signed(ctx context.Context, n uint64, increment, offset int64) (int64, int64, error) { +func (alloc *allocator) alloc4Signed(ctx context.Context, n uint64, increment, offset int64) (min int64, max int64, err error) { // Check offset rebase if necessary. if offset-1 > alloc.base { if err := alloc.rebase4Signed(ctx, offset-1, true); err != nil { @@ -813,12 +813,12 @@ func (alloc *allocator) alloc4Signed(ctx context.Context, n uint64, increment, o zap.Uint64("to ID", uint64(alloc.base+n1)), zap.Int64("table ID", alloc.tbID), zap.Int64("database ID", alloc.dbID)) - min := alloc.base + min = alloc.base alloc.base += n1 return min, alloc.base, nil } -func (alloc *allocator) alloc4Unsigned(ctx context.Context, n uint64, increment, offset int64) (int64, int64, error) { +func (alloc *allocator) alloc4Unsigned(ctx context.Context, n uint64, increment, offset int64) (min int64, max int64, err error) { // Check offset rebase if necessary. if uint64(offset-1) > uint64(alloc.base) { if err := alloc.rebase4Unsigned(ctx, uint64(offset-1), true); err != nil { @@ -903,7 +903,7 @@ func (alloc *allocator) alloc4Unsigned(ctx context.Context, n uint64, increment, zap.Uint64("to ID", uint64(alloc.base+n1)), zap.Int64("table ID", alloc.tbID), zap.Int64("database ID", alloc.dbID)) - min := alloc.base + min = alloc.base // Use uint64 n directly. alloc.base = int64(uint64(alloc.base) + uint64(n1)) return min, alloc.base, nil @@ -1083,7 +1083,7 @@ func NewShardIDLayout(fieldType *types.FieldType, shardBits uint64) *ShardIDLayo incrementalBits := typeBitsLength - shardBits hasSignBit := !mysql.HasUnsignedFlag(fieldType.GetFlag()) if hasSignBit { - incrementalBits -= 1 + incrementalBits-- } return &ShardIDLayout{ FieldType: fieldType, diff --git a/meta/autoid/memid.go b/meta/autoid/memid.go index 8abfee10677f4..f3a3b50bf5275 100644 --- a/meta/autoid/memid.go +++ b/meta/autoid/memid.go @@ -25,14 +25,22 @@ import ( func NewAllocatorFromTempTblInfo(tblInfo *model.TableInfo) Allocator { hasRowID := !tblInfo.PKIsHandle && !tblInfo.IsCommonHandle hasAutoIncID := tblInfo.GetAutoIncrementColInfo() != nil + var alloc Allocator // Temporary tables don't support auto_random and sequence. if hasRowID || hasAutoIncID { - return &inMemoryAllocator{ + alloc = &inMemoryAllocator{ isUnsigned: tblInfo.IsAutoIncColUnsigned(), allocType: RowIDAllocType, } } - return nil + // Rebase the allocator if the base is specified. + if alloc != nil && tblInfo.AutoIncID > 1 { + // Actually, `inMemoryAllocator.Rebase` always returns nil. + if err := alloc.Rebase(context.Background(), tblInfo.AutoIncID-1, false); err != nil { + return nil + } + } + return alloc } // inMemoryAllocator is typically used for temporary tables. @@ -53,7 +61,7 @@ func (alloc *inMemoryAllocator) Base() int64 { } // End implements autoid.Allocator End interface. -func (alloc *inMemoryAllocator) End() int64 { +func (*inMemoryAllocator) End() int64 { // It doesn't matter. return 0 } @@ -65,10 +73,13 @@ func (alloc *inMemoryAllocator) GetType() AllocatorType { // NextGlobalAutoID implements autoid.Allocator NextGlobalAutoID interface. func (alloc *inMemoryAllocator) NextGlobalAutoID() (int64, error) { - return alloc.base, nil + if alloc.isUnsigned { + return int64(uint64(alloc.base) + 1), nil + } + return alloc.base + 1, nil } -func (alloc *inMemoryAllocator) Alloc(ctx context.Context, n uint64, increment, offset int64) (int64, int64, error) { +func (alloc *inMemoryAllocator) Alloc(_ context.Context, n uint64, increment, offset int64) (min int64, max int64, err error) { if n == 0 { return 0, 0, nil } @@ -86,7 +97,7 @@ func (alloc *inMemoryAllocator) Alloc(ctx context.Context, n uint64, increment, // Rebase implements autoid.Allocator Rebase interface. // The requiredBase is the minimum base value after Rebase. // The real base may be greater than the required base. -func (alloc *inMemoryAllocator) Rebase(ctx context.Context, requiredBase int64, allocIDs bool) error { +func (alloc *inMemoryAllocator) Rebase(_ context.Context, requiredBase int64, _ bool) error { if alloc.isUnsigned { if uint64(requiredBase) > uint64(alloc.base) { alloc.base = requiredBase @@ -105,7 +116,7 @@ func (alloc *inMemoryAllocator) ForceRebase(requiredBase int64) error { return nil } -func (alloc *inMemoryAllocator) alloc4Signed(n uint64, increment, offset int64) (int64, int64, error) { +func (alloc *inMemoryAllocator) alloc4Signed(n uint64, increment, offset int64) (min int64, max int64, err error) { // Check offset rebase if necessary. if offset-1 > alloc.base { alloc.base = offset - 1 @@ -118,12 +129,12 @@ func (alloc *inMemoryAllocator) alloc4Signed(n uint64, increment, offset int64) return 0, 0, ErrAutoincReadFailed } - min := alloc.base + min = alloc.base alloc.base += n1 return min, alloc.base, nil } -func (alloc *inMemoryAllocator) alloc4Unsigned(n uint64, increment, offset int64) (int64, int64, error) { +func (alloc *inMemoryAllocator) alloc4Unsigned(n uint64, increment, offset int64) (min int64, max int64, err error) { // Check offset rebase if necessary. if uint64(offset)-1 > uint64(alloc.base) { alloc.base = int64(uint64(offset) - 1) @@ -137,16 +148,16 @@ func (alloc *inMemoryAllocator) alloc4Unsigned(n uint64, increment, offset int64 return 0, 0, ErrAutoincReadFailed } - min := alloc.base + min = alloc.base // Use uint64 n directly. alloc.base = int64(uint64(alloc.base) + uint64(n1)) return min, alloc.base, nil } -func (alloc *inMemoryAllocator) AllocSeqCache() (int64, int64, int64, error) { +func (*inMemoryAllocator) AllocSeqCache() (base int64, end int64, round int64, err error) { return 0, 0, 0, errNotImplemented.GenWithStackByArgs() } -func (alloc *inMemoryAllocator) RebaseSeq(requiredBase int64) (int64, bool, error) { +func (*inMemoryAllocator) RebaseSeq(_ int64) (res int64, alreadySatisfied bool, err error) { return 0, false, errNotImplemented.GenWithStackByArgs() } diff --git a/meta/autoid/memid_test.go b/meta/autoid/memid_test.go index 665d3022acddb..1f6efa1fefd49 100644 --- a/meta/autoid/memid_test.go +++ b/meta/autoid/memid_test.go @@ -47,11 +47,17 @@ func TestInMemoryAlloc(t *testing.T) { // alloc 1 ctx := context.Background() - _, id, err := alloc.Alloc(ctx, 1, 1, 1) + id, err := alloc.NextGlobalAutoID() require.NoError(t, err) require.Equal(t, int64(1), id) _, id, err = alloc.Alloc(ctx, 1, 1, 1) require.NoError(t, err) + require.Equal(t, int64(1), id) + id, err = alloc.NextGlobalAutoID() + require.NoError(t, err) + require.Equal(t, int64(2), id) + _, id, err = alloc.Alloc(ctx, 1, 1, 1) + require.NoError(t, err) require.Equal(t, int64(2), id) // alloc N @@ -75,6 +81,9 @@ func TestInMemoryAlloc(t *testing.T) { _, id, err = alloc.Alloc(ctx, 1, 1, 1) require.NoError(t, err) require.Equal(t, int64(41), id) + id, err = alloc.NextGlobalAutoID() + require.NoError(t, err) + require.Equal(t, int64(42), id) err = alloc.Rebase(context.Background(), int64(10), true) require.NoError(t, err) _, id, err = alloc.Alloc(ctx, 1, 1, 1) @@ -98,9 +107,23 @@ func TestInMemoryAlloc(t *testing.T) { var n uint64 = math.MaxUint64 - 2 err = alloc.Rebase(context.Background(), int64(n), true) require.NoError(t, err) + id, err = alloc.NextGlobalAutoID() + require.NoError(t, err) + require.Equal(t, int64(n+1), id) _, id, err = alloc.Alloc(ctx, 1, 1, 1) require.NoError(t, err) require.Equal(t, int64(n+1), id) _, _, err = alloc.Alloc(ctx, 1, 1, 1) require.True(t, terror.ErrorEqual(err, autoid.ErrAutoincReadFailed)) + + // test initial base + tblInfo.AutoIncID = 100 + alloc = autoid.NewAllocatorFromTempTblInfo(tblInfo) + require.NotNil(t, alloc) + id, err = alloc.NextGlobalAutoID() + require.NoError(t, err) + require.Equal(t, int64(100), id) + _, id, err = alloc.Alloc(ctx, 1, 1, 1) + require.NoError(t, err) + require.Equal(t, int64(100), id) } diff --git a/meta/meta.go b/meta/meta.go index aef346c47b59e..b4d9a56287e61 100644 --- a/meta/meta.go +++ b/meta/meta.go @@ -15,6 +15,7 @@ package meta import ( + "bytes" "encoding/binary" "encoding/json" "fmt" @@ -75,6 +76,8 @@ var ( mPolicyPrefix = "Policy" mPolicyGlobalID = []byte("PolicyGlobalID") mPolicyMagicByte = CurrentMagicByteVer + mDDLTableVersion = []byte("DDLTableVersion") + mConcurrentDDL = []byte("concurrentDDL") ) const ( @@ -90,6 +93,11 @@ const ( typeUnknown int = 0 typeJSON int = 1 // todo: customized handler. + + // MaxInt48 is the max value of int48. + MaxInt48 = 0x0000FFFFFFFFFFFF + // MaxGlobalID reserves 1000 IDs. Use MaxInt48 to reserves the high 2 bytes to compatible with Multi-tenancy. + MaxGlobalID = MaxInt48 - 1000 ) var ( @@ -147,7 +155,14 @@ func (m *Meta) GenGlobalID() (int64, error) { globalIDMutex.Lock() defer globalIDMutex.Unlock() - return m.txn.Inc(mNextGlobalIDKey, 1) + newID, err := m.txn.Inc(mNextGlobalIDKey, 1) + if err != nil { + return 0, errors.Trace(err) + } + if newID > MaxGlobalID { + return 0, errors.Errorf("global id:%d exceeds the limit:%d", newID, MaxGlobalID) + } + return newID, err } // GenGlobalIDs generates the next n global IDs. @@ -159,6 +174,9 @@ func (m *Meta) GenGlobalIDs(n int) ([]int64, error) { if err != nil { return nil, err } + if newID > MaxGlobalID { + return nil, errors.Errorf("global id:%d exceeds the limit:%d", newID, MaxGlobalID) + } origID := newID - int64(n) ids := make([]int64, 0, n) for i := origID + 1; i <= newID; i++ { @@ -185,11 +203,11 @@ func (m *Meta) GetPolicyID() (int64, error) { return m.txn.GetInt64(mPolicyGlobalID) } -func (m *Meta) policyKey(policyID int64) []byte { +func (*Meta) policyKey(policyID int64) []byte { return []byte(fmt.Sprintf("%s:%d", mPolicyPrefix, policyID)) } -func (m *Meta) dbKey(dbID int64) []byte { +func (*Meta) dbKey(dbID int64) []byte { return DBkey(dbID) } @@ -214,7 +232,7 @@ func IsDBkey(dbKey []byte) bool { return strings.HasPrefix(string(dbKey), mDBPrefix+":") } -func (m *Meta) autoTableIDKey(tableID int64) []byte { +func (*Meta) autoTableIDKey(tableID int64) []byte { return AutoTableIDKey(tableID) } @@ -239,11 +257,11 @@ func ParseAutoTableIDKey(key []byte) (int64, error) { return int64(id), err } -func (m *Meta) autoIncrementIDKey(tableID int64) []byte { +func (*Meta) autoIncrementIDKey(tableID int64) []byte { return []byte(fmt.Sprintf("%s:%d", mIncIDPrefix, tableID)) } -func (m *Meta) autoRandomTableIDKey(tableID int64) []byte { +func (*Meta) autoRandomTableIDKey(tableID int64) []byte { return AutoRandomTableIDKey(tableID) } @@ -268,7 +286,7 @@ func ParseAutoRandomTableIDKey(key []byte) (int64, error) { return int64(id), err } -func (m *Meta) tableKey(tableID int64) []byte { +func (*Meta) tableKey(tableID int64) []byte { return TableKey(tableID) } @@ -293,7 +311,7 @@ func ParseTableKey(tableKey []byte) (int64, error) { return int64(id), errors.Trace(err) } -func (m *Meta) sequenceKey(sequenceID int64) []byte { +func (*Meta) sequenceKey(sequenceID int64) []byte { return SequenceKey(sequenceID) } @@ -318,7 +336,7 @@ func ParseSequenceKey(key []byte) (int64, error) { return int64(id), errors.Trace(err) } -func (m *Meta) sequenceCycleKey(sequenceID int64) []byte { +func (*Meta) sequenceCycleKey(sequenceID int64) []byte { return []byte(fmt.Sprintf("%s:%d", mSeqCyclePrefix, sequenceID)) } @@ -339,6 +357,35 @@ func (m *Meta) GetAutoIDAccessors(dbID, tableID int64) AutoIDAccessors { return NewAutoIDAccessors(m, dbID, tableID) } +// GetSchemaVersionWithNonEmptyDiff gets current global schema version, if diff is nil, we should return version - 1. +// Consider the following scenario: +// t1 t2 t3 t4 +// | | | +// update schema version | set diff +// stale read ts +// At the first time, t2 reads the schema version v10, but the v10's diff is not set yet, so it loads v9 infoSchema. +// But at t4 moment, v10's diff has been set and been cached in the memory, so stale read on t2 will get v10 schema from cache, +// and inconsistency happen. +// To solve this problem, we always check the schema diff at first, if the diff is empty, we know at t2 moment we can only see the v9 schema, +// so make neededSchemaVersion = neededSchemaVersion - 1. +// For `Reload`, we can also do this: if the newest version's diff is not set yet, it is ok to load the previous version's infoSchema, and wait for the next reload. +func (m *Meta) GetSchemaVersionWithNonEmptyDiff() (int64, error) { + v, err := m.txn.GetInt64(mSchemaVersionKey) + if err != nil { + return 0, err + } + diff, err := m.GetSchemaDiff(v) + if err != nil { + return 0, err + } + + if diff == nil && v > 0 { + // Although the diff of v is undetermined, the last version's diff is deterministic(this is guaranteed by schemaVersionManager). + v-- + } + return v, err +} + // GetSchemaVersion gets current global schema version. func (m *Meta) GetSchemaVersion() (int64, error) { return m.txn.GetInt64(mSchemaVersionKey) @@ -489,6 +536,69 @@ func (m *Meta) CreateTableOrView(dbID int64, tableInfo *model.TableInfo) error { return m.txn.HSet(dbKey, tableKey, data) } +// SetDDLTables write a key into storage. +func (m *Meta) SetDDLTables() error { + err := m.txn.Set(mDDLTableVersion, []byte("1")) + return errors.Trace(err) +} + +// CreateMySQLDatabaseIfNotExists creates mysql schema and return its DB ID. +func (m *Meta) CreateMySQLDatabaseIfNotExists() (int64, error) { + dbs, err := m.ListDatabases() + if err != nil { + return 0, err + } + for _, db := range dbs { + if db.Name.L == mysql.SystemDB { + return db.ID, nil + } + } + + id, err := m.GenGlobalID() + if err != nil { + return 0, errors.Trace(err) + } + db := model.DBInfo{ + ID: id, + Name: model.NewCIStr(mysql.SystemDB), + Charset: mysql.UTF8MB4Charset, + Collate: mysql.UTF8MB4DefaultCollation, + State: model.StatePublic, + } + err = m.CreateDatabase(&db) + return db.ID, err +} + +// CheckDDLTableExists check if the tables related to concurrent DDL exists. +func (m *Meta) CheckDDLTableExists() (bool, error) { + v, err := m.txn.Get(mDDLTableVersion) + if err != nil { + return false, errors.Trace(err) + } + return len(v) != 0, nil +} + +// SetConcurrentDDL set the concurrent DDL flag. +func (m *Meta) SetConcurrentDDL(b bool) error { + var data []byte + if b { + data = []byte("1") + } else { + data = []byte("0") + } + return errors.Trace(m.txn.Set(mConcurrentDDL, data)) +} + +// IsConcurrentDDL returns true if the concurrent DDL flag is set. +func (m *Meta) IsConcurrentDDL() (bool, error) { + val, err := m.txn.Get(mConcurrentDDL) + if err != nil { + return false, errors.Trace(err) + } + + return len(val) == 0 || bytes.Equal(val, []byte("1")), nil +} + // CreateTableAndSetAutoID creates a table with tableInfo in database, // and rebases the table autoID. func (m *Meta) CreateTableAndSetAutoID(dbID int64, tableInfo *model.TableInfo, autoIncID, autoRandID int64) error { @@ -802,8 +912,8 @@ var ( AddIndexJobListKey JobListKeyType = mDDLJobAddIdxList ) -func (m *Meta) enQueueDDLJob(key []byte, job *model.Job) error { - b, err := job.Encode(true) +func (m *Meta) enQueueDDLJob(key []byte, job *model.Job, updateRawArgs bool) error { + b, err := job.Encode(updateRawArgs) if err == nil { err = m.txn.RPush(key, b) } @@ -817,7 +927,17 @@ func (m *Meta) EnQueueDDLJob(job *model.Job, jobListKeys ...JobListKeyType) erro listKey = jobListKeys[0] } - return m.enQueueDDLJob(listKey, job) + return m.enQueueDDLJob(listKey, job, true) +} + +// EnQueueDDLJobNoUpdate adds a DDL job to the list without update raw args. +func (m *Meta) EnQueueDDLJobNoUpdate(job *model.Job, jobListKeys ...JobListKeyType) error { + listKey := m.jobListKey + if len(jobListKeys) != 0 { + listKey = jobListKeys[0] + } + + return m.enQueueDDLJob(listKey, job, false) } func (m *Meta) deQueueDDLJob(key []byte) (*model.Job, error) { @@ -938,7 +1058,7 @@ func (m *Meta) GetAllDDLJobsInQueue(jobListKeys ...JobListKeyType) ([]*model.Job return jobs, nil } -func (m *Meta) jobIDKey(id int64) []byte { +func (*Meta) jobIDKey(id int64) []byte { b := make([]byte, 8) binary.BigEndian.PutUint64(b, uint64(id)) return b @@ -961,7 +1081,7 @@ func (m *Meta) reorgJobStartHandle(id int64, element *Element) []byte { return b } -func (m *Meta) reorgJobEndHandle(id int64, element *Element) []byte { +func (*Meta) reorgJobEndHandle(id int64, element *Element) []byte { b := make([]byte, 8, 25) binary.BigEndian.PutUint64(b, uint64(id)) b = append(b, element.TypeKey...) @@ -972,7 +1092,7 @@ func (m *Meta) reorgJobEndHandle(id int64, element *Element) []byte { return b } -func (m *Meta) reorgJobPhysicalTableID(id int64, element *Element) []byte { +func (*Meta) reorgJobPhysicalTableID(id int64, element *Element) []byte { b := make([]byte, 8, 25) binary.BigEndian.PutUint64(b, uint64(id)) b = append(b, element.TypeKey...) @@ -1148,27 +1268,43 @@ func (m *Meta) UpdateDDLReorgStartHandle(job *model.Job, element *Element, start } // UpdateDDLReorgHandle saves the job reorganization latest processed information for later resuming. -func (m *Meta) UpdateDDLReorgHandle(job *model.Job, startKey, endKey kv.Key, physicalTableID int64, element *Element) error { - err := m.txn.HSet(mDDLJobReorgKey, m.reorgJobCurrentElement(job.ID), element.EncodeElement()) +func (m *Meta) UpdateDDLReorgHandle(jobID int64, startKey, endKey kv.Key, physicalTableID int64, element *Element) error { + err := m.txn.HSet(mDDLJobReorgKey, m.reorgJobCurrentElement(jobID), element.EncodeElement()) if err != nil { return errors.Trace(err) } if startKey != nil { - err = m.txn.HSet(mDDLJobReorgKey, m.reorgJobStartHandle(job.ID, element), startKey) + err = m.txn.HSet(mDDLJobReorgKey, m.reorgJobStartHandle(jobID, element), startKey) if err != nil { return errors.Trace(err) } } if endKey != nil { - err = m.txn.HSet(mDDLJobReorgKey, m.reorgJobEndHandle(job.ID, element), endKey) + err = m.txn.HSet(mDDLJobReorgKey, m.reorgJobEndHandle(jobID, element), endKey) if err != nil { return errors.Trace(err) } } - err = m.txn.HSet(mDDLJobReorgKey, m.reorgJobPhysicalTableID(job.ID, element), []byte(strconv.FormatInt(physicalTableID, 10))) + err = m.txn.HSet(mDDLJobReorgKey, m.reorgJobPhysicalTableID(jobID, element), []byte(strconv.FormatInt(physicalTableID, 10))) return errors.Trace(err) } +// ClearAllDDLReorgHandle clears all reorganization related handles. +func (m *Meta) ClearAllDDLReorgHandle() error { + return m.txn.HClear(mDDLJobReorgKey) +} + +// ClearALLDDLJob clears all DDL jobs. +func (m *Meta) ClearALLDDLJob() error { + if err := m.txn.LClear(mDDLJobAddIdxList); err != nil { + return errors.Trace(err) + } + if err := m.txn.LClear(mDDLJobListKey); err != nil { + return errors.Trace(err) + } + return nil +} + // ClearAllHistoryJob clears all history jobs. **IT IS VERY DANGEROUS** func (m *Meta) ClearAllHistoryJob() error { if err := m.txn.HClear(mDDLJobHistoryKey); err != nil { @@ -1270,7 +1406,7 @@ func getReorgJobFieldHandle(t *structure.TxStructure, reorgJobField []byte) (kv. return bs, nil } -func (m *Meta) schemaDiffKey(schemaVersion int64) []byte { +func (*Meta) schemaDiffKey(schemaVersion int64) []byte { return []byte(fmt.Sprintf("%s:%d", mSchemaDiffPrefix, schemaVersion)) } diff --git a/meta/meta_test.go b/meta/meta_test.go index 7174eae38c66c..0529fdbcc5eda 100644 --- a/meta/meta_test.go +++ b/meta/meta_test.go @@ -511,10 +511,10 @@ func TestDDL(t *testing.T) { require.Equal(t, int64(0), k) element = &meta.Element{ID: 222, TypeKey: meta.ColumnElementKey} - err = m.UpdateDDLReorgHandle(job, tc.startHandle.Encoded(), tc.endHandle.Encoded(), 3, element) + err = m.UpdateDDLReorgHandle(job.ID, tc.startHandle.Encoded(), tc.endHandle.Encoded(), 3, element) require.NoError(t, err) element1 := &meta.Element{ID: 223, TypeKey: meta.IndexElementKey} - err = m.UpdateDDLReorgHandle(job, tc.startHandle.Encoded(), tc.endHandle.Encoded(), 3, element1) + err = m.UpdateDDLReorgHandle(job.ID, tc.startHandle.Encoded(), tc.endHandle.Encoded(), 3, element1) require.NoError(t, err) e, i, j, k, err = m.GetDDLReorgHandle(job) @@ -766,3 +766,104 @@ func TestSequenceKey(b *testing.T) { require.NoError(b, err) require.Equal(b, tableID, id) } + +func TestClearJob(t *testing.T) { + store, err := mockstore.NewMockStore() + require.NoError(t, err) + defer func() { + require.NoError(t, store.Close()) + }() + + txn, err := store.Begin() + require.NoError(t, err) + + job1 := &model.Job{ID: 1, TableID: 1, Type: model.ActionAddColumn} + job2 := &model.Job{ID: 2, TableID: 1, Type: model.ActionCreateTable} + job3 := &model.Job{ID: 3, TableID: 2, Type: model.ActionDropColumn} + + m := meta.NewMeta(txn) + + require.NoError(t, m.EnQueueDDLJob(job1)) + require.NoError(t, m.EnQueueDDLJob(job2)) + require.NoError(t, m.EnQueueDDLJob(job3)) + + require.NoError(t, m.AddHistoryDDLJob(job1, false)) + require.NoError(t, m.AddHistoryDDLJob(job2, false)) + + jobs, err := m.GetAllDDLJobsInQueue() + require.NoError(t, err) + require.Len(t, jobs, 3) + require.NoError(t, m.ClearALLDDLJob()) + jobs, err = m.GetAllDDLJobsInQueue() + require.NoError(t, err) + require.Len(t, jobs, 0) + + count, err := m.GetHistoryDDLCount() + require.NoError(t, err) + require.Equal(t, count, uint64(2)) + + err = txn.Rollback() + require.NoError(t, err) +} + +func TestCreateMySQLDatabase(t *testing.T) { + store, err := mockstore.NewMockStore() + require.NoError(t, err) + defer func() { + require.NoError(t, store.Close()) + }() + + txn, err := store.Begin() + require.NoError(t, err) + + m := meta.NewMeta(txn) + + dbID, err := m.CreateMySQLDatabaseIfNotExists() + require.NoError(t, err) + require.Greater(t, dbID, int64(0)) + + anotherDBID, err := m.CreateMySQLDatabaseIfNotExists() + require.NoError(t, err) + require.Equal(t, dbID, anotherDBID) + + err = txn.Rollback() + require.NoError(t, err) +} + +func TestDDLTable(t *testing.T) { + store, err := mockstore.NewMockStore() + require.NoError(t, err) + defer func() { + require.NoError(t, store.Close()) + }() + + txn, err := store.Begin() + require.NoError(t, err) + + m := meta.NewMeta(txn) + + exists, err := m.CheckDDLTableExists() + require.NoError(t, err) + require.False(t, exists) + + err = m.SetDDLTables() + require.NoError(t, err) + + exists, err = m.CheckDDLTableExists() + require.NoError(t, err) + require.True(t, exists) + + err = m.SetConcurrentDDL(true) + require.NoError(t, err) + b, err := m.IsConcurrentDDL() + require.NoError(t, err) + require.True(t, b) + err = m.SetConcurrentDDL(false) + require.NoError(t, err) + b, err = m.IsConcurrentDDL() + require.NoError(t, err) + require.False(t, b) + + err = txn.Rollback() + require.NoError(t, err) +} diff --git a/metrics/BUILD.bazel b/metrics/BUILD.bazel index ad34ac544fa0e..6335f2058eaf5 100644 --- a/metrics/BUILD.bazel +++ b/metrics/BUILD.bazel @@ -25,6 +25,7 @@ go_library( deps = [ "//parser/terror", "//util/logutil", + "//util/mathutil", "@com_github_pingcap_errors//:errors", "@com_github_prometheus_client_golang//prometheus", "@com_github_prometheus_client_golang//prometheus/collectors", @@ -41,6 +42,7 @@ go_test( "metrics_test.go", ], embed = [":metrics"], + flaky = True, deps = [ "//parser/terror", "//testkit/testsetup", diff --git a/metrics/ddl.go b/metrics/ddl.go index 47e043519c9c5..5c3595231d143 100644 --- a/metrics/ddl.go +++ b/metrics/ddl.go @@ -14,7 +14,11 @@ package metrics -import "github.com/prometheus/client_golang/prometheus" +import ( + "strings" + + "github.com/prometheus/client_golang/prometheus" +) // Metrics for the DDL package. var ( @@ -123,6 +127,22 @@ var ( Name: "backfill_percentage_progress", Help: "Percentage progress of backfill", }, []string{LblType}) + + DDLJobTableDuration = prometheus.NewHistogramVec(prometheus.HistogramOpts{ + Namespace: "tidb", + Subsystem: "ddl", + Name: "job_table_duration_seconds", + Help: "Bucketed histogram of processing time (s) of the 3 DDL job tables", + Buckets: prometheus.ExponentialBuckets(0.001, 2, 20), // 1ms ~ 524s + }, []string{LblType}) + + DDLRunningJobCount = prometheus.NewGaugeVec( + prometheus.GaugeOpts{ + Namespace: "tidb", + Subsystem: "ddl", + Name: "running_job_count", + Help: "Running DDL jobs count", + }, []string{LblType}) ) // Label constants. @@ -133,7 +153,19 @@ const ( LblModifyColumn = "modify_column" ) +// GenerateReorgLabel returns the label with schema name and table name. +func GenerateReorgLabel(label string, schemaName string, tableName string) string { + var stringBuilder strings.Builder + stringBuilder.Grow(len(label) + len(schemaName) + len(tableName) + 2) + stringBuilder.WriteString(label) + stringBuilder.WriteString("_") + stringBuilder.WriteString(schemaName) + stringBuilder.WriteString("_") + stringBuilder.WriteString(tableName) + return stringBuilder.String() +} + // GetBackfillProgressByLabel returns the Gauge showing the percentage progress for the given type label. -func GetBackfillProgressByLabel(lbl string) prometheus.Gauge { - return BackfillProgressGauge.WithLabelValues(lbl) +func GetBackfillProgressByLabel(label string, schemaName string, tableName string) prometheus.Gauge { + return BackfillProgressGauge.WithLabelValues(GenerateReorgLabel(label, schemaName, tableName)) } diff --git a/metrics/distsql.go b/metrics/distsql.go index 0452f54ee9913..aecc70791b483 100644 --- a/metrics/distsql.go +++ b/metrics/distsql.go @@ -60,4 +60,19 @@ var ( Name: "copr_cache", Help: "coprocessor cache hit, evict and miss number", }, []string{LblType}) + DistSQLCoprClosestReadCounter = prometheus.NewCounterVec( + prometheus.CounterOpts{ + Namespace: "tidb", + Subsystem: "distsql", + Name: "copr_closest_read", + Help: "counter of total copr read local read hit.", + }, []string{LblType}) + DistSQLCoprRespBodySize = prometheus.NewHistogramVec( + prometheus.HistogramOpts{ + Namespace: "tidb", + Subsystem: "distsql", + Name: "copr_resp_size", + Help: "copr task response data size in bytes.", + Buckets: prometheus.ExponentialBuckets(1024, 2, 20), + }, []string{LblStore}) ) diff --git a/metrics/executor.go b/metrics/executor.go index 6702832ebe9ac..7a8aa294075e9 100644 --- a/metrics/executor.go +++ b/metrics/executor.go @@ -46,4 +46,13 @@ var ( Name: "statement_db_total", Help: "Counter of StmtNode by Database.", }, []string{LblDb, LblType}) + + // ExecPhaseDuration records the duration of each execution phase. + ExecPhaseDuration = prometheus.NewSummaryVec( + prometheus.SummaryOpts{ + Namespace: "tidb", + Subsystem: "executor", + Name: "phase_duration_seconds", + Help: "Summary of each execution phase duration.", + }, []string{LblPhase, LblInternal}) ) diff --git a/metrics/grafana/tidb.json b/metrics/grafana/tidb.json index 7b15d3d6bbf64..628f7c2ed2ecc 100644 --- a/metrics/grafana/tidb.json +++ b/metrics/grafana/tidb.json @@ -2073,10 +2073,18 @@ }, { "expr": "tidb_server_memory_usage{k8s_cluster=\"$k8s_cluster\", tidb_cluster=\"$tidb_cluster\", job=\"tidb\"}", + "hide": true, "format": "time_series", "intervalFactor": 1, - "legendFormat": "{{type}}-{{instance}}", + "legendFormat": "{{module}}-{{type}}-{{instance}}", "refId": "H" + }, + { + "expr": "sum(tidb_server_memory_usage{k8s_cluster=\"$k8s_cluster\", tidb_cluster=\"$tidb_cluster\", job=\"tidb\"}) by (module, instance)", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "{{module}}-{{instance}}", + "refId": "I" } ], "thresholds": [], @@ -8346,109 +8354,6 @@ "alignLevel": null } }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "${DS_TEST-CLUSTER}", - "description": "lock cleanup failed times and safe point update times", - "editable": true, - "error": false, - "fill": 1, - "grid": {}, - "gridPos": { - "h": 7, - "w": 12, - "x": 0, - "y": 21 - }, - "id": 84, - "legend": { - "alignAsTable": true, - "avg": false, - "current": false, - "hideEmpty": true, - "hideZero": true, - "max": true, - "min": false, - "rightSide": true, - "show": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 2, - "links": [], - "nullPointMode": "null as zero", - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "sum(rate(tidb_tikvclient_lock_cleanup_task_total{k8s_cluster=\"$k8s_cluster\", tidb_cluster=\"$tidb_cluster\", instance=~\"$instance\"}[1m])) by (type)", - "format": "time_series", - "intervalFactor": 2, - "legendFormat": "cleanup_secondary_failure_{{type}}", - "metric": "tidb_tikvclient_lock_resolver_actions_total{}", - "refId": "A", - "step": 40 - }, - { - "expr": "sum(rate(tidb_tikvclient_load_safepoint_total{k8s_cluster=\"$k8s_cluster\", tidb_cluster=\"$tidb_cluster\", instance=~\"$instance\", type=\"fail\"}[1m]))", - "format": "time_series", - "intervalFactor": 2, - "legendFormat": "load_safepoint_failure", - "refId": "B" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Other Errors OPS", - "tooltip": { - "msResolution": false, - "shared": true, - "sort": 0, - "value_type": "cumulative" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, { "aliasColors": {}, "bars": false, @@ -9311,6 +9216,117 @@ "align": false, "alignLevel": null } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "${DS_TEST-CLUSTER}", + "description": "Time spent on the RPC layer between TiDB and TiKV, including the part used in the TiDB batch client", + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 7, + "w": 8, + "x": 16, + "y": 22 + }, + "hiddenSeries": false, + "id": 263, + "legend": { + "alignAsTable": true, + "avg": false, + "current": true, + "max": false, + "min": false, + "rightSide": true, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.5.11", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "exemplar": true, + "expr": "histogram_quantile(0.99, sum(rate(tidb_tikvclient_rpc_net_latency_seconds_bucket{k8s_cluster=\"$k8s_cluster\", tidb_cluster=\"$tidb_cluster\", instance=~\"$instance\"}[1m])) by (le, store))", + "format": "time_series", + "interval": "", + "intervalFactor": 2, + "legendFormat": "99-store{{store}}", + "refId": "A" + }, + { + "exemplar": true, + "expr": "sum(rate(tidb_tikvclient_rpc_net_latency_seconds_sum{k8s_cluster=\"$k8s_cluster\", tidb_cluster=\"$tidb_cluster\", instance=~\"$instance\"}[1m])) by (le, store) / sum(rate(tidb_tikvclient_rpc_net_latency_seconds_count{k8s_cluster=\"$k8s_cluster\", tidb_cluster=\"$tidb_cluster\", instance=~\"$instance\"}[1m])) by (le, store)", + "format": "time_series", + "interval": "", + "intervalFactor": 2, + "legendFormat": "avg-store{{store}}", + "refId": "B" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "RPC Layer Latency", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:132", + "format": "s", + "label": null, + "logBase": 1, + "max": null, + "min": "0", + "show": true + }, + { + "$$hashKey": "object:133", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } } ], "repeat": null, @@ -11938,7 +11954,7 @@ "steppedLine": false, "targets": [ { - "expr": "tidb_ddl_backfill_percentage_progress{k8s_cluster=\"$k8s_cluster\", tidb_cluster=\"$tidb_cluster\", instance=~\"$instance\", type=\"add_index\"}", + "expr": "tidb_ddl_backfill_percentage_progress{k8s_cluster=\"$k8s_cluster\", tidb_cluster=\"$tidb_cluster\", instance=~\"$instance\"}", "format": "time_series", "intervalFactor": 1, "legendFormat": "{{instance}}-{{type}}", @@ -11992,6 +12008,309 @@ "align": false, "alignLevel": null } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "${DS_TEST-CLUSTER}", + "description": "DDL job table duration", + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 8, + "w": 12, + "x": 0, + "y": 40 + }, + "hiddenSeries": false, + "id": 264, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.5.11", + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "exemplar": true, + "expr": "histogram_quantile(0.95, sum(rate(tidb_ddl_job_table_duration_seconds_bucket{k8s_cluster=\"$k8s_cluster\", tidb_cluster=\"$tidb_cluster\", instance=~\"$instance\", }[1m])) by (le, type))", + "format": "time_series", + "hide": false, + "interval": "", + "legendFormat": "{{type}}-95", + "queryType": "randomWalk", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "DDL job table duration", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:629", + "format": "s", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "$$hashKey": "object:630", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "${DS_TEST-CLUSTER}", + "description": "current count of the running DDL jobs", + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 8, + "w": 12, + "x": 12, + "y": 40 + }, + "hiddenSeries": false, + "id": 265, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.5.10", + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "exemplar": true, + "expr": "tidb_ddl_running_job_count{k8s_cluster=\"$k8s_cluster\", tidb_cluster=\"$tidb_cluster\"}", + "format": "time_series", + "interval": "", + "intervalFactor": 1, + "legendFormat": "{{ type }}", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "DDL Running Job Cnt", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "tidb-cluster", + "description": "Speed of add index", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": {}, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 7, + "w": 12, + "x": 0, + "y": 48 + }, + "hiddenSeries": false, + "id": 266, + "legend": { + "alignAsTable": true, + "avg": false, + "current": false, + "hideEmpty": true, + "hideZero": true, + "max": true, + "min": false, + "rightSide": true, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 2, + "links": [], + "nullPointMode": "null as zero", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.5.11", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "sum(rate(tidb_ddl_add_index_total{k8s_cluster=\"$k8s_cluster\", tidb_cluster=\"$tidb_cluster\", instance=~\"$instance\"}[1m])) by (type)", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "{{type}}", + "refId": "A", + "step": 40 + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Add Index Speed", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": "0", + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } } ], "repeat": null, diff --git a/metrics/log_backup.go b/metrics/log_backup.go index b477f447c2dbb..6c706b8027a79 100644 --- a/metrics/log_backup.go +++ b/metrics/log_backup.go @@ -48,4 +48,16 @@ var ( Help: "The batch size of scanning region or get region checkpoint.", Buckets: prometheus.ExponentialBuckets(1, 2.0, 12), }, []string{"type"}) + RegionCheckpointRequest = prometheus.NewCounterVec(prometheus.CounterOpts{ + Namespace: "tidb", + Subsystem: "log_backup", + Name: "region_request", + Help: "The failure / success stat requesting region checkpoints.", + }, []string{"result"}) + RegionCheckpointFailure = prometheus.NewCounterVec(prometheus.CounterOpts{ + Namespace: "tidb", + Subsystem: "log_backup", + Name: "region_request_failure", + Help: "The failure reasons of requesting region checkpoints.", + }, []string{"reason"}) ) diff --git a/metrics/metrics.go b/metrics/metrics.go index 4011e587cec71..37e63fa41f281 100644 --- a/metrics/metrics.go +++ b/metrics/metrics.go @@ -41,7 +41,7 @@ var ( Subsystem: "server", Name: "memory_usage", Help: "Memory Usage", - }, []string{LblType}) + }, []string{LblModule, LblType}) ) // metrics labels. @@ -100,9 +100,13 @@ func RegisterMetrics() { prometheus.MustRegister(BackfillTotalCounter) prometheus.MustRegister(BackfillProgressGauge) prometheus.MustRegister(DDLWorkerHistogram) + prometheus.MustRegister(DDLJobTableDuration) + prometheus.MustRegister(DDLRunningJobCount) prometheus.MustRegister(DeploySyncerHistogram) prometheus.MustRegister(DistSQLPartialCountHistogram) prometheus.MustRegister(DistSQLCoprCacheCounter) + prometheus.MustRegister(DistSQLCoprClosestReadCounter) + prometheus.MustRegister(DistSQLCoprRespBodySize) prometheus.MustRegister(DistSQLQueryHistogram) prometheus.MustRegister(DistSQLScanKeysHistogram) prometheus.MustRegister(DistSQLScanKeysPartialHistogram) @@ -146,6 +150,7 @@ func RegisterMetrics() { prometheus.MustRegister(StatsInaccuracyRate) prometheus.MustRegister(StmtNodeCounter) prometheus.MustRegister(DbStmtNodeCounter) + prometheus.MustRegister(ExecPhaseDuration) prometheus.MustRegister(StoreQueryFeedbackCounter) prometheus.MustRegister(TimeJumpBackCounter) prometheus.MustRegister(TransactionDuration) @@ -195,6 +200,8 @@ func RegisterMetrics() { prometheus.MustRegister(AdvancerOwner) prometheus.MustRegister(AdvancerTickDuration) prometheus.MustRegister(GetCheckpointBatchSize) + prometheus.MustRegister(RegionCheckpointRequest) + prometheus.MustRegister(RegionCheckpointFailure) tikvmetrics.InitMetrics(TiDB, TiKVClient) tikvmetrics.RegisterMetrics() diff --git a/metrics/metrics_test.go b/metrics/metrics_test.go index 6c4536c8dc1e3..d2cc82a34f4b2 100644 --- a/metrics/metrics_test.go +++ b/metrics/metrics_test.go @@ -22,12 +22,12 @@ import ( "github.com/stretchr/testify/require" ) -func TestMetrics(t *testing.T) { +func TestMetrics(_ *testing.T) { // Make sure it doesn't panic. PanicCounter.WithLabelValues(LabelDomain).Inc() } -func TestRegisterMetrics(t *testing.T) { +func TestRegisterMetrics(_ *testing.T) { // Make sure it doesn't panic. RegisterMetrics() } diff --git a/metrics/session.go b/metrics/session.go index 4065d57baf992..bd949edd51d45 100644 --- a/metrics/session.go +++ b/metrics/session.go @@ -81,7 +81,7 @@ var ( Name: "transaction_statement_num", Help: "Bucketed histogram of statements count in each transaction.", Buckets: prometheus.ExponentialBuckets(1, 2, 16), // 1 ~ 32768 - }, []string{LbTxnMode, LblType}) + }, []string{LblTxnMode, LblType}) TransactionDuration = prometheus.NewHistogramVec( prometheus.HistogramOpts{ @@ -90,7 +90,7 @@ var ( Name: "transaction_duration_seconds", Help: "Bucketed histogram of a transaction execution duration, including retry.", Buckets: prometheus.ExponentialBuckets(0.001, 2, 28), // 1ms ~ 1.5days - }, []string{LbTxnMode, LblType}) + }, []string{LblTxnMode, LblType}) StatementDeadlockDetectDuration = prometheus.NewHistogram( prometheus.HistogramOpts{ @@ -169,7 +169,7 @@ const ( LblCoprType = "copr_type" LblGeneral = "general" LblInternal = "internal" - LbTxnMode = "txn_mode" + LblTxnMode = "txn_mode" LblPessimistic = "pessimistic" LblOptimistic = "optimistic" LblStore = "store" @@ -187,4 +187,6 @@ const ( LblCommitting = "committing" LblRollingBack = "rolling_back" LblHasLock = "has_lock" + LblPhase = "phase" + LblModule = "module" ) diff --git a/metrics/telemetry.go b/metrics/telemetry.go index 79bcbf7c9f9a1..f44f2f793c835 100644 --- a/metrics/telemetry.go +++ b/metrics/telemetry.go @@ -15,6 +15,7 @@ package metrics import ( + "github.com/pingcap/tidb/util/mathutil" "github.com/prometheus/client_golang/prometheus" dto "github.com/prometheus/client_model/go" ) @@ -35,6 +36,55 @@ var ( Name: "multi_schema_change_usage", Help: "Counter of usage of multi-schema change", }) + TelemetryTablePartitionCnt = prometheus.NewCounter( + prometheus.CounterOpts{ + Namespace: "tidb", + Subsystem: "telemetry", + Name: "table_partition_usage", + Help: "Counter of CREATE TABLE which includes of table partitioning", + }) + TelemetryTablePartitionListCnt = prometheus.NewCounter( + prometheus.CounterOpts{ + Namespace: "tidb", + Subsystem: "telemetry", + Name: "table_partition_list_usage", + Help: "Counter of CREATE TABLE which includes LIST partitioning", + }) + TelemetryTablePartitionRangeCnt = prometheus.NewCounter( + prometheus.CounterOpts{ + Namespace: "tidb", + Subsystem: "telemetry", + Name: "table_partition_range_usage", + Help: "Counter of CREATE TABLE which includes RANGE partitioning", + }) + TelemetryTablePartitionHashCnt = prometheus.NewCounter( + prometheus.CounterOpts{ + Namespace: "tidb", + Subsystem: "telemetry", + Name: "table_partition_hash_usage", + Help: "Counter of CREATE TABLE which includes HASH partitioning", + }) + TelemetryTablePartitionRangeColumnsCnt = prometheus.NewCounter( + prometheus.CounterOpts{ + Namespace: "tidb", + Subsystem: "telemetry", + Name: "table_partition_range_columns_usage", + Help: "Counter of CREATE TABLE which includes RANGE COLUMNS partitioning", + }) + TelemetryTablePartitionListColumnsCnt = prometheus.NewCounter( + prometheus.CounterOpts{ + Namespace: "tidb", + Subsystem: "telemetry", + Name: "table_partition_list_columns_usage", + Help: "Counter of CREATE TABLE which includes LIST COLUMNS partitioning", + }) + TelemetryTablePartitionMaxPartitionsCnt = prometheus.NewCounter( + prometheus.CounterOpts{ + Namespace: "tidb", + Subsystem: "telemetry", + Name: "table_partition_max_partition_usage", + Help: "Counter of partitions created by CREATE TABLE statements", + }) ) // readCounter reads the value of a prometheus.Counter. @@ -94,6 +144,56 @@ func GetMultiSchemaCounter() MultiSchemaChangeUsageCounter { } } +// TablePartitionUsageCounter records the usages of table partition. +type TablePartitionUsageCounter struct { + TablePartitionCnt int64 `json:"table_partition_cnt"` + TablePartitionListCnt int64 `json:"table_partition_list_cnt"` + TablePartitionRangeCnt int64 `json:"table_partition_range_cnt"` + TablePartitionHashCnt int64 `json:"table_partition_hash_cnt"` + TablePartitionRangeColumnsCnt int64 `json:"table_partition_range_columns_cnt"` + TablePartitionListColumnsCnt int64 `json:"table_partition_list_columns_cnt"` + TablePartitionMaxPartitionsCnt int64 `json:"table_partition_max_partitions_cnt"` +} + +// Cal returns the difference of two counters. +func (c TablePartitionUsageCounter) Cal(rhs TablePartitionUsageCounter) TablePartitionUsageCounter { + return TablePartitionUsageCounter{ + TablePartitionCnt: c.TablePartitionCnt - rhs.TablePartitionCnt, + TablePartitionListCnt: c.TablePartitionListCnt - rhs.TablePartitionListCnt, + TablePartitionRangeCnt: c.TablePartitionRangeCnt - rhs.TablePartitionRangeCnt, + TablePartitionHashCnt: c.TablePartitionHashCnt - rhs.TablePartitionHashCnt, + TablePartitionRangeColumnsCnt: c.TablePartitionRangeColumnsCnt - rhs.TablePartitionRangeColumnsCnt, + TablePartitionListColumnsCnt: c.TablePartitionListColumnsCnt - rhs.TablePartitionListColumnsCnt, + TablePartitionMaxPartitionsCnt: mathutil.Max(c.TablePartitionMaxPartitionsCnt-rhs.TablePartitionMaxPartitionsCnt, rhs.TablePartitionMaxPartitionsCnt), + } +} + +// ResetTablePartitionCounter gets the TxnCommitCounter. +func ResetTablePartitionCounter(pre TablePartitionUsageCounter) TablePartitionUsageCounter { + return TablePartitionUsageCounter{ + TablePartitionCnt: readCounter(TelemetryTablePartitionCnt), + TablePartitionListCnt: readCounter(TelemetryTablePartitionListCnt), + TablePartitionRangeCnt: readCounter(TelemetryTablePartitionRangeCnt), + TablePartitionHashCnt: readCounter(TelemetryTablePartitionHashCnt), + TablePartitionRangeColumnsCnt: readCounter(TelemetryTablePartitionRangeColumnsCnt), + TablePartitionListColumnsCnt: readCounter(TelemetryTablePartitionListColumnsCnt), + TablePartitionMaxPartitionsCnt: mathutil.Max(readCounter(TelemetryTablePartitionMaxPartitionsCnt)-pre.TablePartitionMaxPartitionsCnt, pre.TablePartitionMaxPartitionsCnt), + } +} + +// GetTablePartitionCounter gets the TxnCommitCounter. +func GetTablePartitionCounter() TablePartitionUsageCounter { + return TablePartitionUsageCounter{ + TablePartitionCnt: readCounter(TelemetryTablePartitionCnt), + TablePartitionListCnt: readCounter(TelemetryTablePartitionListCnt), + TablePartitionRangeCnt: readCounter(TelemetryTablePartitionRangeCnt), + TablePartitionHashCnt: readCounter(TelemetryTablePartitionHashCnt), + TablePartitionRangeColumnsCnt: readCounter(TelemetryTablePartitionRangeColumnsCnt), + TablePartitionListColumnsCnt: readCounter(TelemetryTablePartitionListColumnsCnt), + TablePartitionMaxPartitionsCnt: readCounter(TelemetryTablePartitionMaxPartitionsCnt), + } +} + // NonTransactionalStmtCounter records the usages of non-transactional statements. type NonTransactionalStmtCounter struct { DeleteCount int64 `json:"delete"` @@ -112,3 +212,8 @@ func GetNonTransactionalStmtCounter() NonTransactionalStmtCounter { DeleteCount: readCounter(NonTransactionalDeleteCount), } } + +// GetSavepointStmtCounter gets the savepoint statement executed counter. +func GetSavepointStmtCounter() int64 { + return readCounter(StmtNodeCounter.With(prometheus.Labels{LblType: "Savepoint"})) +} diff --git a/owner/main_test.go b/owner/main_test.go index 501cae73e4c5b..57bc7021c5ca9 100644 --- a/owner/main_test.go +++ b/owner/main_test.go @@ -25,6 +25,7 @@ func TestMain(m *testing.M) { testsetup.SetupForCommonTest() opts := []goleak.Option{ goleak.IgnoreTopFunction("github.com/golang/glog.(*loggingT).flushDaemon"), + goleak.IgnoreTopFunction("go.opencensus.io/stats/view.(*worker).start"), goleak.IgnoreTopFunction("go.etcd.io/etcd/client/pkg/v3/logutil.(*MergeLogger).outputLoop"), } goleak.VerifyTestMain(m, opts...) diff --git a/owner/manager.go b/owner/manager.go index 1f4eae6c11786..756b44b7688cf 100644 --- a/owner/manager.go +++ b/owner/manager.go @@ -117,7 +117,7 @@ func (m *ownerManager) Cancel() { } // RequireOwner implements Manager.RequireOwner interface. -func (m *ownerManager) RequireOwner(ctx context.Context) error { +func (*ownerManager) RequireOwner(_ context.Context) error { return nil } @@ -253,7 +253,7 @@ func (m *ownerManager) campaignLoop(etcdSession *concurrency.Session) { } } -func (m *ownerManager) revokeSession(logPrefix string, leaseID clientv3.LeaseID) { +func (m *ownerManager) revokeSession(_ string, leaseID clientv3.LeaseID) { // Revoke the session lease. // If revoke takes longer than the ttl, lease is expired anyway. cancelCtx, cancel := context.WithTimeout(context.Background(), diff --git a/owner/mock.go b/owner/mock.go index 559c46650d080..29552bfd3d14c 100644 --- a/owner/mock.go +++ b/owner/mock.go @@ -70,7 +70,7 @@ func (m *mockManager) Cancel() { } // GetOwnerID implements Manager.GetOwnerID interface. -func (m *mockManager) GetOwnerID(ctx context.Context) (string, error) { +func (m *mockManager) GetOwnerID(_ context.Context) (string, error) { if m.IsOwner() { return m.ID(), nil } @@ -84,7 +84,7 @@ func (m *mockManager) CampaignOwner() error { } // ResignOwner lets the owner start a new election. -func (m *mockManager) ResignOwner(ctx context.Context) error { +func (m *mockManager) ResignOwner(_ context.Context) error { if m.IsOwner() { m.RetireOwner() } @@ -92,7 +92,7 @@ func (m *mockManager) ResignOwner(ctx context.Context) error { } // RequireOwner implements Manager.RequireOwner interface. -func (m *mockManager) RequireOwner(context.Context) error { +func (*mockManager) RequireOwner(context.Context) error { return nil } diff --git a/parser/BUILD.bazel b/parser/BUILD.bazel index a8f3569b97f30..59a4b3de5eac9 100644 --- a/parser/BUILD.bazel +++ b/parser/BUILD.bazel @@ -40,6 +40,7 @@ go_test( ], data = glob(["**"]), embed = [":parser"], + flaky = True, deps = [ "//parser/ast", "//parser/charset", diff --git a/parser/ast/BUILD.bazel b/parser/ast/BUILD.bazel index ba1c18eac879b..1fc939c5636a0 100644 --- a/parser/ast/BUILD.bazel +++ b/parser/ast/BUILD.bazel @@ -45,6 +45,7 @@ go_test( "util_test.go", ], embed = [":ast"], + flaky = True, deps = [ "//parser", "//parser/auth", diff --git a/parser/ast/ddl.go b/parser/ast/ddl.go index 19083d6e83abe..52d489a89cf85 100644 --- a/parser/ast/ddl.go +++ b/parser/ast/ddl.go @@ -2020,7 +2020,7 @@ const ( TableOptionEngine TableOptionCharset TableOptionCollate - TableOptionAutoIdCache + TableOptionAutoIdCache //nolint:revive TableOptionAutoIncrement TableOptionAutoRandomBase TableOptionComment @@ -2529,7 +2529,7 @@ const ( AlterTableAddPartitions // A tombstone for `AlterTableAlterPartition`. It will never be used anymore. // Just left a tombstone here to keep the enum number unchanged. - __DEPRECATED_AlterTableAlterPartition + __DEPRECATED_AlterTableAlterPartition //nolint:revive AlterTablePartitionAttributes AlterTablePartitionOptions AlterTableCoalescePartitions @@ -2562,7 +2562,7 @@ const ( AlterTableSetTiFlashReplica // A tombstone for `AlterTablePlacement`. It will never be used anymore. // Just left a tombstone here to keep the enum number unchanged. - __DEPRECATED_AlterTablePlacement + __DEPRECATED_AlterTablePlacement //nolint:revive AlterTableAddStatistics AlterTableDropStatistics AlterTableAttributes @@ -3309,14 +3309,13 @@ type AlterTableStmt struct { func (n *AlterTableStmt) HaveOnlyPlacementOptions() bool { for _, n := range n.Specs { - if n.Tp == AlterTablePartitionOptions { - if !n.IsAllPlacementRule() { - return false - } - } else { + if n.Tp != AlterTablePartitionOptions { return false - } + } + if !n.IsAllPlacementRule() { + return false + } } return true } @@ -3447,15 +3446,15 @@ type PartitionDefinitionClause interface { type PartitionDefinitionClauseNone struct{} -func (n *PartitionDefinitionClauseNone) restore(ctx *format.RestoreCtx) error { +func (*PartitionDefinitionClauseNone) restore(_ *format.RestoreCtx) error { return nil } -func (n *PartitionDefinitionClauseNone) acceptInPlace(v Visitor) bool { +func (*PartitionDefinitionClauseNone) acceptInPlace(_ Visitor) bool { return true } -func (n *PartitionDefinitionClauseNone) Validate(pt model.PartitionType, columns int) error { +func (*PartitionDefinitionClauseNone) Validate(pt model.PartitionType, _ int) error { switch pt { case 0: case model.PartitionTypeRange: @@ -3605,11 +3604,11 @@ func (n *PartitionDefinitionClauseHistory) restore(ctx *format.RestoreCtx) error return nil } -func (n *PartitionDefinitionClauseHistory) acceptInPlace(v Visitor) bool { +func (*PartitionDefinitionClauseHistory) acceptInPlace(_ Visitor) bool { return true } -func (n *PartitionDefinitionClauseHistory) Validate(pt model.PartitionType, columns int) error { +func (*PartitionDefinitionClauseHistory) Validate(pt model.PartitionType, _ int) error { switch pt { case 0, model.PartitionTypeSystemTime: default: diff --git a/parser/ast/functions.go b/parser/ast/functions.go index ae61e06682656..b911734a993e7 100644 --- a/parser/ast/functions.go +++ b/parser/ast/functions.go @@ -257,6 +257,7 @@ const ( TiDBVersion = "tidb_version" TiDBIsDDLOwner = "tidb_is_ddl_owner" TiDBDecodePlan = "tidb_decode_plan" + TiDBDecodeBinaryPlan = "tidb_decode_binary_plan" TiDBDecodeSQLDigests = "tidb_decode_sql_digests" FormatBytes = "format_bytes" FormatNanoTime = "format_nano_time" diff --git a/parser/ast/misc.go b/parser/ast/misc.go index 08e14575c53eb..b5e05e99f2bed 100644 --- a/parser/ast/misc.go +++ b/parser/ast/misc.go @@ -364,6 +364,9 @@ func (n *PlanReplayerStmt) Accept(v Visitor) (Node, bool) { type CompactReplicaKind string const ( + // CompactReplicaKindAll means compacting both TiKV and TiFlash replicas. + CompactReplicaKindAll = "ALL" + // CompactReplicaKindTiFlash means compacting TiFlash replicas. CompactReplicaKindTiFlash = "TIFLASH" @@ -386,10 +389,15 @@ func (n *CompactTableStmt) Restore(ctx *format.RestoreCtx) error { return errors.Annotate(err, "An error occurred while add table") } - // Note: There is only TiFlash replica available now. TiKV will be added later. - ctx.WriteKeyWord(" COMPACT ") - ctx.WriteKeyWord(string(n.ReplicaKind)) - ctx.WriteKeyWord(" REPLICA") + if n.ReplicaKind == CompactReplicaKindAll { + ctx.WriteKeyWord(" COMPACT") + } else { + // Note: There is only TiFlash replica available now. TiKV will be added later. + ctx.WriteKeyWord(" COMPACT ") + ctx.WriteKeyWord(string(n.ReplicaKind)) + ctx.WriteKeyWord(" REPLICA") + } + return nil } @@ -2023,6 +2031,7 @@ const ( AdminCleanupIndex AdminCheckIndexRange AdminShowDDLJobQueries + AdminShowDDLJobQueriesWithRange AdminChecksumTable AdminShowSlow AdminShowNextRowID @@ -2110,6 +2119,12 @@ func (n *ShowSlow) Restore(ctx *format.RestoreCtx) error { return nil } +// LimitSimple is the struct for Admin statement limit option. +type LimitSimple struct { + Count uint64 + Offset uint64 +} + // AdminStmt is the struct for Admin statement. type AdminStmt struct { stmtNode @@ -2125,6 +2140,7 @@ type AdminStmt struct { Plugins []string Where ExprNode StatementScope StatementScope + LimitSimple LimitSimple } // Restore implements Node interface. @@ -2219,6 +2235,9 @@ func (n *AdminStmt) Restore(ctx *format.RestoreCtx) error { case AdminShowDDLJobQueries: ctx.WriteKeyWord("SHOW DDL JOB QUERIES ") restoreJobIDs() + case AdminShowDDLJobQueriesWithRange: + ctx.WriteKeyWord("SHOW DDL JOB QUERIES LIMIT ") + ctx.WritePlainf("%d, %d", n.LimitSimple.Offset, n.LimitSimple.Count) case AdminShowSlow: ctx.WriteKeyWord("SHOW SLOW ") if err := n.ShowSlow.Restore(ctx); err != nil { @@ -2349,11 +2368,10 @@ func (n *PrivElem) Restore(ctx *format.RestoreCtx) error { ctx.WriteKeyWord(n.Name) } else { str, ok := mysql.Priv2Str[n.Priv] - if ok { - ctx.WriteKeyWord(str) - } else { + if !ok { return errors.New("Undefined privilege type") } + ctx.WriteKeyWord(str) } if n.Cols != nil { ctx.WritePlain(" (") @@ -3535,7 +3553,7 @@ func (n *TableOptimizerHint) Restore(ctx *format.RestoreCtx) error { } // Hints without args except query block. switch n.HintName.L { - case "hash_agg", "stream_agg", "agg_to_cop", "read_consistent_replica", "no_index_merge", "qb_name", "ignore_plan_cache", "limit_to_cop", "straight_join": + case "hash_agg", "stream_agg", "agg_to_cop", "read_consistent_replica", "no_index_merge", "qb_name", "ignore_plan_cache", "limit_to_cop", "straight_join", "merge": ctx.WritePlain(")") return nil } diff --git a/parser/ast/misc_test.go b/parser/ast/misc_test.go index b87f45c99af11..b7a5cac8bee02 100644 --- a/parser/ast/misc_test.go +++ b/parser/ast/misc_test.go @@ -276,6 +276,7 @@ func TestTableOptimizerHintRestore(t *testing.T) { {"AGG_TO_COP()", "AGG_TO_COP()"}, {"AGG_TO_COP(@sel_1)", "AGG_TO_COP(@`sel_1`)"}, {"LIMIT_TO_COP()", "LIMIT_TO_COP()"}, + {"MERGE()", "MERGE()"}, {"STRAIGHT_JOIN()", "STRAIGHT_JOIN()"}, {"NO_INDEX_MERGE()", "NO_INDEX_MERGE()"}, {"NO_INDEX_MERGE(@sel1)", "NO_INDEX_MERGE(@`sel1`)"}, @@ -344,6 +345,8 @@ func TestBRIESecureText(t *testing.T) { func TestCompactTableStmtRestore(t *testing.T) { testCases := []NodeRestoreTestCase{ {"alter table abc compact tiflash replica", "ALTER TABLE `abc` COMPACT TIFLASH REPLICA"}, + {"alter table abc compact", "ALTER TABLE `abc` COMPACT"}, + {"alter table test.abc compact", "ALTER TABLE `test`.`abc` COMPACT"}, } extractNodeFunc := func(node ast.Node) ast.Node { return node.(*ast.CompactTableStmt) diff --git a/parser/auth/BUILD.bazel b/parser/auth/BUILD.bazel index 93ad9d22d2d29..afc29e075c111 100644 --- a/parser/auth/BUILD.bazel +++ b/parser/auth/BUILD.bazel @@ -23,5 +23,6 @@ go_test( "mysql_native_password_test.go", ], embed = [":auth"], + flaky = True, deps = ["@com_github_stretchr_testify//require"], ) diff --git a/parser/auth/auth.go b/parser/auth/auth.go index e086ebfeb517a..109fdda04b644 100644 --- a/parser/auth/auth.go +++ b/parser/auth/auth.go @@ -20,7 +20,9 @@ import ( ) const ( + // UserNameMaxLength is the max length of username. UserNameMaxLength = 32 + // HostNameMaxLength is the max length of host name. HostNameMaxLength = 255 ) @@ -69,11 +71,13 @@ func (user *UserIdentity) LoginString() string { return fmt.Sprintf("%s@%s", user.Username, user.Hostname) } +// RoleIdentity represents a role name. type RoleIdentity struct { Username string Hostname string } +// Restore implements Node interface. func (role *RoleIdentity) Restore(ctx *format.RestoreCtx) error { ctx.WriteName(role.Username) if role.Hostname != "" { diff --git a/parser/auth/caching_sha2.go b/parser/auth/caching_sha2.go index 125a7f615c495..ff405b5dde14a 100644 --- a/parser/auth/caching_sha2.go +++ b/parser/auth/caching_sha2.go @@ -41,9 +41,12 @@ import ( ) const ( - MIXCHARS = 32 - SALT_LENGTH = 20 - ITERATION_MULTIPLIER = 1000 + // MIXCHARS is the number of characters to use in the mix + MIXCHARS = 32 + // SALT_LENGTH is the length of the salt + SALT_LENGTH = 20 //nolint: revive + // ITERATION_MULTIPLIER is the number of iterations to use + ITERATION_MULTIPLIER = 1000 //nolint: revive ) func b64From24bit(b []byte, n int, buf *bytes.Buffer) { @@ -177,30 +180,31 @@ func sha256crypt(plaintext string, salt []byte, iterations int) string { return buf.String() } -// Checks if a MySQL style caching_sha2 authentication string matches a password +// CheckShaPassword is to checks if a MySQL style caching_sha2 authentication string matches a password func CheckShaPassword(pwhash []byte, password string) (bool, error) { - pwhash_parts := bytes.Split(pwhash, []byte("$")) - if len(pwhash_parts) != 4 { + pwhashParts := bytes.Split(pwhash, []byte("$")) + if len(pwhashParts) != 4 { return false, errors.New("failed to decode hash parts") } - hash_type := string(pwhash_parts[1]) - if hash_type != "A" { + hashType := string(pwhashParts[1]) + if hashType != "A" { return false, errors.New("digest type is incompatible") } - iterations, err := strconv.Atoi(string(pwhash_parts[2])) + iterations, err := strconv.Atoi(string(pwhashParts[2])) if err != nil { return false, errors.New("failed to decode iterations") } iterations = iterations * ITERATION_MULTIPLIER - salt := pwhash_parts[3][:SALT_LENGTH] + salt := pwhashParts[3][:SALT_LENGTH] newHash := sha256crypt(password, salt, iterations) return bytes.Equal(pwhash, []byte(newHash)), nil } +// NewSha2Password creates a new MySQL style caching_sha2 password hash func NewSha2Password(pwd string) string { salt := make([]byte, SALT_LENGTH) rand.Read(salt) diff --git a/parser/charset/BUILD.bazel b/parser/charset/BUILD.bazel index d201d51157ed6..c32d470f4518a 100644 --- a/parser/charset/BUILD.bazel +++ b/parser/charset/BUILD.bazel @@ -40,6 +40,7 @@ go_test( "encoding_test.go", ], embed = [":charset"], + flaky = True, deps = [ "@com_github_stretchr_testify//require", "@org_golang_x_text//transform", diff --git a/parser/charset/charset.go b/parser/charset/charset.go index 6c02f1bcd1f43..6067e4f623424 100644 --- a/parser/charset/charset.go +++ b/parser/charset/charset.go @@ -25,7 +25,9 @@ import ( ) var ( - ErrUnknownCollation = terror.ClassDDL.NewStd(mysql.ErrUnknownCollation) + // ErrUnknownCollation is unknown collation. + ErrUnknownCollation = terror.ClassDDL.NewStd(mysql.ErrUnknownCollation) + // ErrCollationCharsetMismatch is collation charset mismatch. ErrCollationCharsetMismatch = terror.ClassDDL.NewStd(mysql.ErrCollationCharsetMismatch) ) @@ -52,7 +54,7 @@ var collationsIDMap = make(map[int]*Collation) var collationsNameMap = make(map[string]*Collation) var supportedCollations = make([]*Collation, 0, len(supportedCollationNames)) -// CharacterSetInfos: All the supported charsets should be in the following table. +// CharacterSetInfos contains all the supported charsets. var CharacterSetInfos = map[string]*Charset{ CharsetUTF8: {CharsetUTF8, CollationUTF8, make(map[string]*Collation), "UTF-8 Unicode", 3}, CharsetUTF8MB4: {CharsetUTF8MB4, CollationUTF8MB4, make(map[string]*Collation), "UTF-8 Unicode", 4}, @@ -140,7 +142,7 @@ func GetDefaultCollation(charset string) (string, error) { } // GetDefaultCharsetAndCollate returns the default charset and collation. -func GetDefaultCharsetAndCollate() (string, string) { +func GetDefaultCharsetAndCollate() (defaultCharset string, defaultCollationName string) { return mysql.DefaultCharset, mysql.DefaultCollationName } @@ -158,7 +160,7 @@ func GetCharsetInfo(cs string) (*Charset, error) { } // GetCharsetInfoByID returns charset and collation for id as cs_number. -func GetCharsetInfoByID(coID int) (string, string, error) { +func GetCharsetInfoByID(coID int) (charsetStr string, collateStr string, err error) { if coID == mysql.DefaultCollationID { return mysql.DefaultCharset, mysql.DefaultCollationName, nil } @@ -178,6 +180,7 @@ func GetCollations() []*Collation { return collations } +// GetCollationByName returns the collation by name. func GetCollationByName(name string) (*Collation, error) { collation, ok := collationsNameMap[strings.ToLower(name)] if !ok { @@ -207,8 +210,9 @@ const ( CollationASCII = "ascii_bin" // CollationLatin1 is the default collation for CharsetLatin1. CollationLatin1 = "latin1_bin" - - CollationGBKBin = "gbk_bin" + // CollationGBKBin is the default collation for CharsetGBK when new collation is disabled. + CollationGBKBin = "gbk_bin" + // CollationGBKChineseCI is the default collation for CharsetGBK when new collation is enabled. CollationGBKChineseCI = "gbk_chinese_ci" ) @@ -223,7 +227,7 @@ const ( CharsetUTF8 = "utf8" // CharsetUTF8MB4 represents 4 bytes utf8, which works the same way as utf8 in Go. CharsetUTF8MB4 = "utf8mb4" - + //revive:disable:exported CharsetARMSCII8 = "armscii8" CharsetBig5 = "big5" CharsetCP1250 = "cp1250" @@ -260,6 +264,7 @@ const ( CharsetUTF16 = "utf16" CharsetUTF16LE = "utf16le" CharsetUTF32 = "utf32" + //revive:enable:exported ) var charsets = map[string]*Charset{ diff --git a/parser/charset/encoding.go b/parser/charset/encoding.go index cc40c36100571..3f5debdf08e4a 100644 --- a/parser/charset/encoding.go +++ b/parser/charset/encoding.go @@ -86,8 +86,10 @@ type Encoding interface { ToLower(src string) string } +// EncodingTp is the type of the encoding. type EncodingTp int8 +//revive:disable const ( EncodingTpNone EncodingTp = iota EncodingTpUTF8 @@ -98,6 +100,8 @@ const ( EncodingTpGBK ) +//revive:enable + // Op is used by Encoding.Transform. type Op int16 @@ -111,7 +115,9 @@ const ( opSkipError ) +//revive:disable const ( + // OpReplaceNoErr is used to replace invalid bytes with '?'. OpReplaceNoErr = opFromUTF8 | opTruncateReplace | opCollectFrom | opSkipError OpReplace = opFromUTF8 | opTruncateReplace | opCollectFrom OpEncode = opFromUTF8 | opTruncateTrim | opCollectTo @@ -122,6 +128,8 @@ const ( OpDecodeReplace = opToUTF8 | opTruncateReplace | opCollectTo ) +//revive:enable + // CountValidBytes counts the first valid bytes in src that // can be encoded to the current encoding. func CountValidBytes(e Encoding, src []byte) int { diff --git a/parser/charset/encoding_ascii.go b/parser/charset/encoding_ascii.go index cf9100f699111..db34f8952e00a 100644 --- a/parser/charset/encoding_ascii.go +++ b/parser/charset/encoding_ascii.go @@ -33,17 +33,17 @@ type encodingASCII struct { } // Name implements Encoding interface. -func (e *encodingASCII) Name() string { +func (*encodingASCII) Name() string { return CharsetASCII } // Tp implements Encoding interface. -func (e *encodingASCII) Tp() EncodingTp { +func (*encodingASCII) Tp() EncodingTp { return EncodingTpASCII } // Peek implements Encoding interface. -func (e *encodingASCII) Peek(src []byte) []byte { +func (*encodingASCII) Peek(src []byte) []byte { if len(src) == 0 { return src } @@ -51,7 +51,7 @@ func (e *encodingASCII) Peek(src []byte) []byte { } // IsValid implements Encoding interface. -func (e *encodingASCII) IsValid(src []byte) bool { +func (*encodingASCII) IsValid(src []byte) bool { srcLen := len(src) for i := 0; i < srcLen; i++ { if src[i] > go_unicode.MaxASCII { @@ -61,6 +61,7 @@ func (e *encodingASCII) IsValid(src []byte) bool { return true } +// Transform implements Encoding interface. func (e *encodingASCII) Transform(dest *bytes.Buffer, src []byte, op Op) ([]byte, error) { if e.IsValid(src) { return src, nil @@ -68,7 +69,8 @@ func (e *encodingASCII) Transform(dest *bytes.Buffer, src []byte, op Op) ([]byte return e.encodingBase.Transform(dest, src, op) } -func (e *encodingASCII) Foreach(src []byte, op Op, fn func(from, to []byte, ok bool) bool) { +// Foreach implements Encoding interface. +func (*encodingASCII) Foreach(src []byte, _ Op, fn func(from, to []byte, ok bool) bool) { for i, w := 0, 0; i < len(src); i += w { w = 1 ok := true diff --git a/parser/charset/encoding_base.go b/parser/charset/encoding_base.go index 58abc601318f3..529734fb8a0cf 100644 --- a/parser/charset/encoding_base.go +++ b/parser/charset/encoding_base.go @@ -35,15 +35,15 @@ type encodingBase struct { self Encoding } -func (b encodingBase) MbLen(_ string) int { +func (encodingBase) MbLen(_ string) int { return 0 } -func (b encodingBase) ToUpper(src string) string { +func (encodingBase) ToUpper(src string) string { return strings.ToUpper(src) } -func (b encodingBase) ToLower(src string) string { +func (encodingBase) ToLower(src string) string { return strings.ToLower(src) } diff --git a/parser/charset/encoding_bin.go b/parser/charset/encoding_bin.go index 3a9bf2e4f8968..8b904315458ac 100644 --- a/parser/charset/encoding_bin.go +++ b/parser/charset/encoding_bin.go @@ -32,17 +32,17 @@ type encodingBin struct { } // Name implements Encoding interface. -func (e *encodingBin) Name() string { +func (*encodingBin) Name() string { return CharsetBin } // Tp implements Encoding interface. -func (e *encodingBin) Tp() EncodingTp { +func (*encodingBin) Tp() EncodingTp { return EncodingTpBin } // Peek implements Encoding interface. -func (e *encodingBin) Peek(src []byte) []byte { +func (*encodingBin) Peek(src []byte) []byte { if len(src) == 0 { return src } @@ -50,12 +50,12 @@ func (e *encodingBin) Peek(src []byte) []byte { } // IsValid implements Encoding interface. -func (e *encodingBin) IsValid(src []byte) bool { +func (*encodingBin) IsValid(_ []byte) bool { return true } // Foreach implements Encoding interface. -func (e *encodingBin) Foreach(src []byte, op Op, fn func(from, to []byte, ok bool) bool) { +func (*encodingBin) Foreach(src []byte, _ Op, fn func(from, to []byte, ok bool) bool) { for i := 0; i < len(src); i++ { if !fn(src[i:i+1], src[i:i+1], true) { return @@ -63,6 +63,6 @@ func (e *encodingBin) Foreach(src []byte, op Op, fn func(from, to []byte, ok boo } } -func (e *encodingBin) Transform(dest *bytes.Buffer, src []byte, op Op) ([]byte, error) { +func (*encodingBin) Transform(_ *bytes.Buffer, src []byte, _ Op) ([]byte, error) { return src, nil } diff --git a/parser/charset/encoding_gbk.go b/parser/charset/encoding_gbk.go index df8458b7a74d3..8b4589a4d176b 100644 --- a/parser/charset/encoding_gbk.go +++ b/parser/charset/encoding_gbk.go @@ -36,17 +36,17 @@ type encodingGBK struct { } // Name implements Encoding interface. -func (e *encodingGBK) Name() string { +func (*encodingGBK) Name() string { return CharsetGBK } // Tp implements Encoding interface. -func (e *encodingGBK) Tp() EncodingTp { +func (*encodingGBK) Tp() EncodingTp { return EncodingTpGBK } // Peek implements Encoding interface. -func (e *encodingGBK) Peek(src []byte) []byte { +func (*encodingGBK) Peek(src []byte) []byte { charLen := 2 if len(src) == 0 || src[0] < 0x80 { // A byte in the range 00–7F is a single byte that means the same thing as it does in ASCII. @@ -58,7 +58,7 @@ func (e *encodingGBK) Peek(src []byte) []byte { return src } -func (e *encodingGBK) MbLen(bs string) int { +func (*encodingGBK) MbLen(bs string) int { if len(bs) < 2 { return 0 } @@ -73,12 +73,12 @@ func (e *encodingGBK) MbLen(bs string) int { } // ToUpper implements Encoding interface. -func (e *encodingGBK) ToUpper(d string) string { +func (*encodingGBK) ToUpper(d string) string { return strings.ToUpperSpecial(GBKCase, d) } // ToLower implements Encoding interface. -func (e *encodingGBK) ToLower(d string) string { +func (*encodingGBK) ToLower(d string) string { return strings.ToLowerSpecial(GBKCase, d) } @@ -118,7 +118,7 @@ func NewCustomGBKEncoder() *encoding.Encoder { } // NewDecoder returns simplifiedchinese.GBK.NewDecoder(). -func (c customGBK) NewDecoder() *encoding.Decoder { +func (customGBK) NewDecoder() *encoding.Decoder { return &encoding.Decoder{ Transformer: customGBKDecoder{ gbkDecoder: simplifiedchinese.GBK.NewDecoder(), @@ -152,7 +152,7 @@ type customGBKEncoder struct { } // NewEncoder returns simplifiedchinese.gbk. -func (c customGBK) NewEncoder() *encoding.Encoder { +func (customGBK) NewEncoder() *encoding.Encoder { return &encoding.Encoder{ Transformer: customGBKEncoder{ gbkEncoder: simplifiedchinese.GBK.NewEncoder(), diff --git a/parser/charset/encoding_latin1.go b/parser/charset/encoding_latin1.go index 38f9bb601ac4e..613dd7e0b177b 100644 --- a/parser/charset/encoding_latin1.go +++ b/parser/charset/encoding_latin1.go @@ -33,12 +33,12 @@ type encodingLatin1 struct { } // Name implements Encoding interface. -func (e *encodingLatin1) Name() string { +func (*encodingLatin1) Name() string { return CharsetLatin1 } // Peek implements Encoding interface. -func (e *encodingLatin1) Peek(src []byte) []byte { +func (*encodingLatin1) Peek(src []byte) []byte { if len(src) == 0 { return src } @@ -46,15 +46,15 @@ func (e *encodingLatin1) Peek(src []byte) []byte { } // IsValid implements Encoding interface. -func (e *encodingLatin1) IsValid(src []byte) bool { +func (*encodingLatin1) IsValid(_ []byte) bool { return true } // Tp implements Encoding interface. -func (e *encodingLatin1) Tp() EncodingTp { +func (*encodingLatin1) Tp() EncodingTp { return EncodingTpLatin1 } -func (e *encodingLatin1) Transform(dest *bytes.Buffer, src []byte, op Op) ([]byte, error) { +func (*encodingLatin1) Transform(_ *bytes.Buffer, src []byte, _ Op) ([]byte, error) { return src, nil } diff --git a/parser/charset/encoding_utf8.go b/parser/charset/encoding_utf8.go index 730c2bfc3d8ad..34e891d1eaf27 100644 --- a/parser/charset/encoding_utf8.go +++ b/parser/charset/encoding_utf8.go @@ -43,17 +43,17 @@ type encodingUTF8 struct { } // Name implements Encoding interface. -func (e *encodingUTF8) Name() string { +func (*encodingUTF8) Name() string { return CharsetUTF8MB4 } // Tp implements Encoding interface. -func (e *encodingUTF8) Tp() EncodingTp { +func (*encodingUTF8) Tp() EncodingTp { return EncodingTpUTF8 } // Peek implements Encoding interface. -func (e *encodingUTF8) Peek(src []byte) []byte { +func (*encodingUTF8) Peek(src []byte) []byte { nextLen := 4 if len(src) == 0 || src[0] < 0x80 { nextLen = 1 @@ -68,7 +68,7 @@ func (e *encodingUTF8) Peek(src []byte) []byte { return src[:nextLen] } -func (e *encodingUTF8) MbLen(bs string) int { +func (*encodingUTF8) MbLen(bs string) int { _, size := utf8.DecodeRuneInString(bs) if size <= 1 { return 0 @@ -93,7 +93,7 @@ func (e *encodingUTF8) Transform(dest *bytes.Buffer, src []byte, op Op) ([]byte, } // Foreach implements Encoding interface. -func (e *encodingUTF8) Foreach(src []byte, op Op, fn func(from, to []byte, ok bool) bool) { +func (*encodingUTF8) Foreach(src []byte, _ Op, fn func(from, to []byte, ok bool) bool) { var rv rune for i, w := 0, 0; i < len(src); i += w { rv, w = utf8.DecodeRune(src[i:]) @@ -116,7 +116,7 @@ func (e *encodingUTF8MB3Strict) IsValid(src []byte) bool { } // Foreach implements Encoding interface. -func (e *encodingUTF8MB3Strict) Foreach(src []byte, op Op, fn func(srcCh, dstCh []byte, ok bool) bool) { +func (*encodingUTF8MB3Strict) Foreach(src []byte, _ Op, fn func(srcCh, dstCh []byte, ok bool) bool) { for i, w := 0, 0; i < len(src); i += w { var rv rune rv, w = utf8.DecodeRune(src[i:]) diff --git a/parser/digester.go b/parser/digester.go index 9cf997beacb94..5f8b0a94a0032 100644 --- a/parser/digester.go +++ b/parser/digester.go @@ -26,6 +26,7 @@ import ( "github.com/pingcap/tidb/parser/charset" ) +// Digest stores the fixed length hash value. type Digest struct { b []byte str string @@ -386,7 +387,7 @@ func (d *sqlDigester) isLit(t token) (beLit bool) { return } -func (d *sqlDigester) isNumLit(tok int) (beNum bool) { +func (*sqlDigester) isNumLit(tok int) (beNum bool) { switch tok { case intLit, decLit, floatLit, hexLit: beNum = true @@ -395,7 +396,7 @@ func (d *sqlDigester) isNumLit(tok int) (beNum bool) { return } -func (d *sqlDigester) isComma(tok token) (isComma bool) { +func (*sqlDigester) isComma(tok token) (isComma bool) { isComma = tok.lit == "," return } diff --git a/parser/format/BUILD.bazel b/parser/format/BUILD.bazel index 9ad24b5ca0bf6..74238844df045 100644 --- a/parser/format/BUILD.bazel +++ b/parser/format/BUILD.bazel @@ -11,6 +11,7 @@ go_test( name = "format_test", srcs = ["format_test.go"], embed = [":format"], + flaky = True, deps = [ "@com_github_pingcap_errors//:errors", "@com_github_stretchr_testify//require", diff --git a/parser/format/format.go b/parser/format/format.go index 0e904c98a998a..5c9c137c8fa27 100644 --- a/parser/format/format.go +++ b/parser/format/format.go @@ -195,7 +195,7 @@ func OutputFormat(s string) string { return buf.String() } -//RestoreFlag mark the Restore format +// RestoreFlags mark the Restore format type RestoreFlags uint64 // Mutually exclusive group of `RestoreFlags`: @@ -228,6 +228,7 @@ const ( ) const ( + // DefaultRestoreFlags is the default value of RestoreFlags. DefaultRestoreFlags = RestoreStringSingleQuotes | RestoreKeyWordUppercase | RestoreNameBackQuotes ) @@ -285,22 +286,27 @@ func (rf RestoreFlags) HasSpacesAroundBinaryOperationFlag() bool { return rf.has(RestoreSpacesAroundBinaryOperation) } +// HasRestoreBracketAroundBinaryOperation returns a boolean indicating whether `rf` has `RestoreBracketAroundBinaryOperation` flag. func (rf RestoreFlags) HasRestoreBracketAroundBinaryOperation() bool { return rf.has(RestoreBracketAroundBinaryOperation) } +// HasStringWithoutDefaultCharset returns a boolean indicating whether `rf` has `RestoreStringWithoutDefaultCharset` flag. func (rf RestoreFlags) HasStringWithoutDefaultCharset() bool { return rf.has(RestoreStringWithoutDefaultCharset) } +// HasStringWithoutCharset returns a boolean indicating whether `rf` has `RestoreStringWithoutCharset` flag. func (rf RestoreFlags) HasStringWithoutCharset() bool { return rf.has(RestoreStringWithoutCharset) } +// HasTiDBSpecialCommentFlag returns a boolean indicating whether `rf` has `RestoreTiDBSpecialComment` flag. func (rf RestoreFlags) HasTiDBSpecialCommentFlag() bool { return rf.has(RestoreTiDBSpecialComment) } +// HasSkipPlacementRuleForRestoreFlag returns a boolean indicating whether `rf` has `SkipPlacementRuleForRestore` flag. func (rf RestoreFlags) HasSkipPlacementRuleForRestoreFlag() bool { return rf.has(SkipPlacementRuleForRestore) } @@ -330,6 +336,7 @@ func (ctx *RestoreCtx) WriteKeyWord(keyWord string) { fmt.Fprint(ctx.In, keyWord) } +// WriteWithSpecialComments writes a string with a special comment wrapped. func (ctx *RestoreCtx) WriteWithSpecialComments(featureID string, fn func() error) error { if !ctx.Flags.HasTiDBSpecialCommentFlag() { return fn() @@ -410,10 +417,12 @@ func (c *CTERestorer) IsCTETableName(nameL string) bool { return false } +// RecordCTEName records the CTE name. func (c *CTERestorer) RecordCTEName(nameL string) { c.CTENames = append(c.CTENames, nameL) } +// RestoreCTEFunc is used to restore CTE. func (c *CTERestorer) RestoreCTEFunc() func() { l := len(c.CTENames) return func() { diff --git a/parser/goyacc/format_yacc.go b/parser/goyacc/format_yacc.go index 209c7acafc699..7ccff8da30900 100644 --- a/parser/goyacc/format_yacc.go +++ b/parser/goyacc/format_yacc.go @@ -50,10 +50,7 @@ func Format(inputFilename string, goldenFilename string) (err error) { return err } - if err = printRules(yFmt, spec.Rules); err != nil { - return err - } - return nil + return printRules(yFmt, spec.Rules) } func parseFileToSpec(inputFilename string) (*parser.Specification, error) { @@ -369,7 +366,7 @@ func printRuleBody(f format.Formatter, rule *parser.Rule) error { return err } } - counter += 1 + counter++ } if err := checkInconsistencyInYaccParser(f, rule, counter); err != nil { return err diff --git a/parser/hintparser.go b/parser/hintparser.go index 906f1a0259978..548860fbec0bf 100644 --- a/parser/hintparser.go +++ b/parser/hintparser.go @@ -41,18 +41,18 @@ type yyhintXError struct { } const ( - yyhintDefault = 57418 + yyhintDefault = 57419 yyhintEOFCode = 57344 yyhintErrCode = 57345 hintAggToCop = 57378 hintBCJoin = 57391 hintBKA = 57355 hintBNL = 57357 - hintDupsWeedOut = 57414 - hintFalse = 57410 - hintFirstMatch = 57415 + hintDupsWeedOut = 57415 + hintFalse = 57411 + hintFirstMatch = 57416 hintForceIndex = 57402 - hintGB = 57413 + hintGB = 57414 hintHashAgg = 57380 hintHashJoin = 57359 hintIdentifier = 57347 @@ -70,10 +70,10 @@ const ( hintJoinSuffix = 57354 hintLeading = 57404 hintLimitToCop = 57401 - hintLooseScan = 57416 - hintMB = 57412 + hintLooseScan = 57417 + hintMB = 57413 hintMRR = 57366 - hintMaterialization = 57417 + hintMaterialization = 57418 hintMaxExecutionTime = 57374 hintMemoryQuota = 57385 hintMerge = 57362 @@ -89,16 +89,17 @@ const ( hintNoSkipScan = 57371 hintNoSwapJoinInputs = 57386 hintNthPlan = 57400 - hintOLAP = 57405 - hintOLTP = 57406 + hintOLAP = 57406 + hintOLTP = 57407 hintOrderedHashJoin = 57360 - hintPartition = 57407 + hintPartition = 57408 hintQBName = 57377 hintQueryType = 57387 hintReadConsistentReplica = 57388 hintReadFromStorage = 57389 hintResourceGroup = 57376 hintSMJoin = 57390 + hintSemiJoinRewrite = 57405 hintSemijoin = 57372 hintSetVar = 57375 hintSingleAtIdentifier = 57349 @@ -107,10 +108,10 @@ const ( hintStreamAgg = 57392 hintStringLit = 57350 hintSwapJoinInputs = 57393 - hintTiFlash = 57409 - hintTiKV = 57408 + hintTiFlash = 57410 + hintTiKV = 57409 hintTimeRange = 57398 - hintTrue = 57411 + hintTrue = 57412 hintUseCascades = 57399 hintUseIndex = 57395 hintUseIndexMerge = 57394 @@ -118,126 +119,127 @@ const ( hintUseToja = 57397 yyhintMaxDepth = 200 - yyhintTabOfs = -176 + yyhintTabOfs = -178 ) var ( yyhintXLAT = map[int]int{ - 41: 0, // ')' (132x) - 57378: 1, // hintAggToCop (124x) - 57391: 2, // hintBCJoin (124x) - 57355: 3, // hintBKA (124x) - 57357: 4, // hintBNL (124x) - 57402: 5, // hintForceIndex (124x) - 57380: 6, // hintHashAgg (124x) - 57359: 7, // hintHashJoin (124x) - 57381: 8, // hintIgnoreIndex (124x) - 57379: 9, // hintIgnorePlanCache (124x) - 57364: 10, // hintIndexMerge (124x) - 57382: 11, // hintInlHashJoin (124x) - 57383: 12, // hintInlJoin (124x) - 57384: 13, // hintInlMergeJoin (124x) - 57351: 14, // hintJoinFixedOrder (124x) - 57352: 15, // hintJoinOrder (124x) - 57353: 16, // hintJoinPrefix (124x) - 57354: 17, // hintJoinSuffix (124x) - 57404: 18, // hintLeading (124x) - 57401: 19, // hintLimitToCop (124x) - 57374: 20, // hintMaxExecutionTime (124x) - 57385: 21, // hintMemoryQuota (124x) - 57362: 22, // hintMerge (124x) - 57366: 23, // hintMRR (124x) - 57356: 24, // hintNoBKA (124x) - 57358: 25, // hintNoBNL (124x) - 57361: 26, // hintNoHashJoin (124x) - 57368: 27, // hintNoICP (124x) - 57365: 28, // hintNoIndexMerge (124x) - 57363: 29, // hintNoMerge (124x) - 57367: 30, // hintNoMRR (124x) - 57369: 31, // hintNoRangeOptimization (124x) - 57373: 32, // hintNoSemijoin (124x) - 57371: 33, // hintNoSkipScan (124x) - 57386: 34, // hintNoSwapJoinInputs (124x) - 57400: 35, // hintNthPlan (124x) - 57360: 36, // hintOrderedHashJoin (124x) - 57377: 37, // hintQBName (124x) - 57387: 38, // hintQueryType (124x) - 57388: 39, // hintReadConsistentReplica (124x) - 57389: 40, // hintReadFromStorage (124x) - 57376: 41, // hintResourceGroup (124x) - 57372: 42, // hintSemijoin (124x) - 57375: 43, // hintSetVar (124x) - 57370: 44, // hintSkipScan (124x) - 57390: 45, // hintSMJoin (124x) - 57403: 46, // hintStraightJoin (124x) - 57392: 47, // hintStreamAgg (124x) - 57393: 48, // hintSwapJoinInputs (124x) - 57398: 49, // hintTimeRange (124x) - 57399: 50, // hintUseCascades (124x) - 57395: 51, // hintUseIndex (124x) - 57394: 52, // hintUseIndexMerge (124x) - 57396: 53, // hintUsePlanCache (124x) - 57397: 54, // hintUseToja (124x) - 44: 55, // ',' (122x) - 57414: 56, // hintDupsWeedOut (102x) - 57415: 57, // hintFirstMatch (102x) - 57416: 58, // hintLooseScan (102x) - 57417: 59, // hintMaterialization (102x) - 57409: 60, // hintTiFlash (102x) - 57408: 61, // hintTiKV (102x) - 57410: 62, // hintFalse (101x) - 57405: 63, // hintOLAP (101x) - 57406: 64, // hintOLTP (101x) - 57411: 65, // hintTrue (101x) - 57413: 66, // hintGB (100x) - 57412: 67, // hintMB (100x) - 57347: 68, // hintIdentifier (99x) - 57349: 69, // hintSingleAtIdentifier (84x) - 93: 70, // ']' (78x) - 57407: 71, // hintPartition (72x) - 46: 72, // '.' (68x) - 61: 73, // '=' (68x) - 40: 74, // '(' (63x) - 57344: 75, // $end (24x) - 57438: 76, // QueryBlockOpt (17x) - 57430: 77, // Identifier (13x) - 57346: 78, // hintIntLit (8x) - 57350: 79, // hintStringLit (5x) - 57420: 80, // CommaOpt (4x) - 57426: 81, // HintTable (4x) - 57427: 82, // HintTableList (4x) - 91: 83, // '[' (3x) - 57419: 84, // BooleanHintName (2x) - 57421: 85, // HintIndexList (2x) - 57423: 86, // HintStorageType (2x) - 57424: 87, // HintStorageTypeAndTable (2x) - 57428: 88, // HintTableListOpt (2x) - 57433: 89, // JoinOrderOptimizerHintName (2x) - 57434: 90, // NullaryHintName (2x) - 57437: 91, // PartitionListOpt (2x) - 57440: 92, // StorageOptimizerHintOpt (2x) - 57441: 93, // SubqueryOptimizerHintName (2x) - 57444: 94, // SubqueryStrategy (2x) - 57445: 95, // SupportedIndexLevelOptimizerHintName (2x) - 57446: 96, // SupportedTableLevelOptimizerHintName (2x) - 57447: 97, // TableOptimizerHintOpt (2x) - 57449: 98, // UnsupportedIndexLevelOptimizerHintName (2x) - 57450: 99, // UnsupportedTableLevelOptimizerHintName (2x) - 57422: 100, // HintQueryType (1x) - 57425: 101, // HintStorageTypeAndTableList (1x) - 57429: 102, // HintTrueOrFalse (1x) - 57431: 103, // IndexNameList (1x) - 57432: 104, // IndexNameListOpt (1x) - 57435: 105, // OptimizerHintList (1x) - 57436: 106, // PartitionList (1x) - 57439: 107, // Start (1x) - 57442: 108, // SubqueryStrategies (1x) - 57443: 109, // SubqueryStrategiesOpt (1x) - 57448: 110, // UnitOfBytes (1x) - 57451: 111, // Value (1x) - 57418: 112, // $default (0x) - 57345: 113, // error (0x) - 57348: 114, // hintInvalid (0x) + 41: 0, // ')' (133x) + 57378: 1, // hintAggToCop (125x) + 57391: 2, // hintBCJoin (125x) + 57355: 3, // hintBKA (125x) + 57357: 4, // hintBNL (125x) + 57402: 5, // hintForceIndex (125x) + 57380: 6, // hintHashAgg (125x) + 57359: 7, // hintHashJoin (125x) + 57381: 8, // hintIgnoreIndex (125x) + 57379: 9, // hintIgnorePlanCache (125x) + 57364: 10, // hintIndexMerge (125x) + 57382: 11, // hintInlHashJoin (125x) + 57383: 12, // hintInlJoin (125x) + 57384: 13, // hintInlMergeJoin (125x) + 57351: 14, // hintJoinFixedOrder (125x) + 57352: 15, // hintJoinOrder (125x) + 57353: 16, // hintJoinPrefix (125x) + 57354: 17, // hintJoinSuffix (125x) + 57404: 18, // hintLeading (125x) + 57401: 19, // hintLimitToCop (125x) + 57374: 20, // hintMaxExecutionTime (125x) + 57385: 21, // hintMemoryQuota (125x) + 57362: 22, // hintMerge (125x) + 57366: 23, // hintMRR (125x) + 57356: 24, // hintNoBKA (125x) + 57358: 25, // hintNoBNL (125x) + 57361: 26, // hintNoHashJoin (125x) + 57368: 27, // hintNoICP (125x) + 57365: 28, // hintNoIndexMerge (125x) + 57363: 29, // hintNoMerge (125x) + 57367: 30, // hintNoMRR (125x) + 57369: 31, // hintNoRangeOptimization (125x) + 57373: 32, // hintNoSemijoin (125x) + 57371: 33, // hintNoSkipScan (125x) + 57386: 34, // hintNoSwapJoinInputs (125x) + 57400: 35, // hintNthPlan (125x) + 57360: 36, // hintOrderedHashJoin (125x) + 57377: 37, // hintQBName (125x) + 57387: 38, // hintQueryType (125x) + 57388: 39, // hintReadConsistentReplica (125x) + 57389: 40, // hintReadFromStorage (125x) + 57376: 41, // hintResourceGroup (125x) + 57372: 42, // hintSemijoin (125x) + 57405: 43, // hintSemiJoinRewrite (125x) + 57375: 44, // hintSetVar (125x) + 57370: 45, // hintSkipScan (125x) + 57390: 46, // hintSMJoin (125x) + 57403: 47, // hintStraightJoin (125x) + 57392: 48, // hintStreamAgg (125x) + 57393: 49, // hintSwapJoinInputs (125x) + 57398: 50, // hintTimeRange (125x) + 57399: 51, // hintUseCascades (125x) + 57395: 52, // hintUseIndex (125x) + 57394: 53, // hintUseIndexMerge (125x) + 57396: 54, // hintUsePlanCache (125x) + 57397: 55, // hintUseToja (125x) + 44: 56, // ',' (123x) + 57415: 57, // hintDupsWeedOut (103x) + 57416: 58, // hintFirstMatch (103x) + 57417: 59, // hintLooseScan (103x) + 57418: 60, // hintMaterialization (103x) + 57410: 61, // hintTiFlash (103x) + 57409: 62, // hintTiKV (103x) + 57411: 63, // hintFalse (102x) + 57406: 64, // hintOLAP (102x) + 57407: 65, // hintOLTP (102x) + 57412: 66, // hintTrue (102x) + 57414: 67, // hintGB (101x) + 57413: 68, // hintMB (101x) + 57347: 69, // hintIdentifier (100x) + 57349: 70, // hintSingleAtIdentifier (85x) + 93: 71, // ']' (79x) + 57408: 72, // hintPartition (73x) + 46: 73, // '.' (69x) + 61: 74, // '=' (69x) + 40: 75, // '(' (64x) + 57344: 76, // $end (24x) + 57439: 77, // QueryBlockOpt (17x) + 57431: 78, // Identifier (13x) + 57346: 79, // hintIntLit (8x) + 57350: 80, // hintStringLit (5x) + 57421: 81, // CommaOpt (4x) + 57427: 82, // HintTable (4x) + 57428: 83, // HintTableList (4x) + 91: 84, // '[' (3x) + 57420: 85, // BooleanHintName (2x) + 57422: 86, // HintIndexList (2x) + 57424: 87, // HintStorageType (2x) + 57425: 88, // HintStorageTypeAndTable (2x) + 57429: 89, // HintTableListOpt (2x) + 57434: 90, // JoinOrderOptimizerHintName (2x) + 57435: 91, // NullaryHintName (2x) + 57438: 92, // PartitionListOpt (2x) + 57441: 93, // StorageOptimizerHintOpt (2x) + 57442: 94, // SubqueryOptimizerHintName (2x) + 57445: 95, // SubqueryStrategy (2x) + 57446: 96, // SupportedIndexLevelOptimizerHintName (2x) + 57447: 97, // SupportedTableLevelOptimizerHintName (2x) + 57448: 98, // TableOptimizerHintOpt (2x) + 57450: 99, // UnsupportedIndexLevelOptimizerHintName (2x) + 57451: 100, // UnsupportedTableLevelOptimizerHintName (2x) + 57423: 101, // HintQueryType (1x) + 57426: 102, // HintStorageTypeAndTableList (1x) + 57430: 103, // HintTrueOrFalse (1x) + 57432: 104, // IndexNameList (1x) + 57433: 105, // IndexNameListOpt (1x) + 57436: 106, // OptimizerHintList (1x) + 57437: 107, // PartitionList (1x) + 57440: 108, // Start (1x) + 57443: 109, // SubqueryStrategies (1x) + 57444: 110, // SubqueryStrategiesOpt (1x) + 57449: 111, // UnitOfBytes (1x) + 57452: 112, // Value (1x) + 57419: 113, // $default (0x) + 57345: 114, // error (0x) + 57348: 115, // hintInvalid (0x) } yyhintSymNames = []string{ @@ -284,6 +286,7 @@ var ( "hintReadFromStorage", "hintResourceGroup", "hintSemijoin", + "hintSemiJoinRewrite", "hintSetVar", "hintSkipScan", "hintSMJoin", @@ -360,65 +363,82 @@ var ( yyhintReductions = []struct{ xsym, components int }{ {0, 1}, - {107, 1}, - {105, 1}, - {105, 3}, - {105, 1}, - {105, 3}, - {97, 4}, - {97, 4}, - {97, 4}, - {97, 4}, - {97, 4}, - {97, 4}, - {97, 5}, - {97, 5}, - {97, 5}, - {97, 6}, - {97, 4}, - {97, 4}, - {97, 6}, - {97, 6}, - {97, 5}, - {97, 4}, - {97, 5}, - {92, 5}, - {101, 1}, - {101, 3}, - {87, 4}, - {76, 0}, - {76, 1}, - {80, 0}, - {80, 1}, - {91, 0}, - {91, 4}, + {108, 1}, {106, 1}, {106, 3}, - {88, 1}, - {88, 1}, - {82, 2}, + {106, 1}, + {106, 3}, + {98, 4}, + {98, 4}, + {98, 4}, + {98, 4}, + {98, 4}, + {98, 4}, + {98, 5}, + {98, 5}, + {98, 5}, + {98, 6}, + {98, 4}, + {98, 4}, + {98, 6}, + {98, 6}, + {98, 5}, + {98, 4}, + {98, 5}, + {93, 5}, + {102, 1}, + {102, 3}, + {88, 4}, + {77, 0}, + {77, 1}, + {81, 0}, + {81, 1}, + {92, 0}, + {92, 4}, + {107, 1}, + {107, 3}, + {89, 1}, + {89, 1}, + {83, 2}, + {83, 3}, {82, 3}, - {81, 3}, - {81, 5}, - {85, 4}, - {104, 0}, + {82, 5}, + {86, 4}, + {105, 0}, + {105, 1}, {104, 1}, - {103, 1}, - {103, 3}, - {109, 0}, + {104, 3}, + {110, 0}, + {110, 1}, {109, 1}, - {108, 1}, - {108, 3}, - {111, 1}, + {109, 3}, + {112, 1}, + {112, 1}, + {112, 1}, {111, 1}, {111, 1}, - {110, 1}, - {110, 1}, - {102, 1}, - {102, 1}, - {89, 1}, - {89, 1}, - {89, 1}, + {103, 1}, + {103, 1}, + {90, 1}, + {90, 1}, + {90, 1}, + {100, 1}, + {100, 1}, + {100, 1}, + {100, 1}, + {100, 1}, + {100, 1}, + {97, 1}, + {97, 1}, + {97, 1}, + {97, 1}, + {97, 1}, + {97, 1}, + {97, 1}, + {97, 1}, + {97, 1}, + {97, 1}, + {97, 1}, {99, 1}, {99, 1}, {99, 1}, @@ -430,427 +450,415 @@ var ( {96, 1}, {96, 1}, {96, 1}, - {96, 1}, - {96, 1}, - {96, 1}, - {96, 1}, - {96, 1}, - {96, 1}, - {98, 1}, - {98, 1}, - {98, 1}, - {98, 1}, - {98, 1}, - {98, 1}, - {98, 1}, + {94, 1}, + {94, 1}, {95, 1}, {95, 1}, {95, 1}, {95, 1}, - {93, 1}, - {93, 1}, - {94, 1}, - {94, 1}, - {94, 1}, - {94, 1}, - {84, 1}, - {84, 1}, - {90, 1}, - {90, 1}, - {90, 1}, - {90, 1}, - {90, 1}, - {90, 1}, - {90, 1}, - {90, 1}, - {90, 1}, - {100, 1}, - {100, 1}, - {86, 1}, - {86, 1}, - {77, 1}, - {77, 1}, - {77, 1}, - {77, 1}, - {77, 1}, - {77, 1}, - {77, 1}, - {77, 1}, - {77, 1}, - {77, 1}, - {77, 1}, - {77, 1}, - {77, 1}, - {77, 1}, - {77, 1}, - {77, 1}, - {77, 1}, - {77, 1}, - {77, 1}, - {77, 1}, - {77, 1}, - {77, 1}, - {77, 1}, - {77, 1}, - {77, 1}, - {77, 1}, - {77, 1}, - {77, 1}, - {77, 1}, - {77, 1}, - {77, 1}, - {77, 1}, - {77, 1}, - {77, 1}, - {77, 1}, - {77, 1}, - {77, 1}, - {77, 1}, - {77, 1}, - {77, 1}, - {77, 1}, - {77, 1}, - {77, 1}, - {77, 1}, - {77, 1}, - {77, 1}, - {77, 1}, - {77, 1}, - {77, 1}, - {77, 1}, - {77, 1}, - {77, 1}, - {77, 1}, - {77, 1}, - {77, 1}, - {77, 1}, - {77, 1}, - {77, 1}, - {77, 1}, - {77, 1}, - {77, 1}, - {77, 1}, - {77, 1}, - {77, 1}, - {77, 1}, - {77, 1}, - {77, 1}, + {85, 1}, + {85, 1}, + {91, 1}, + {91, 1}, + {91, 1}, + {91, 1}, + {91, 1}, + {91, 1}, + {91, 1}, + {91, 1}, + {91, 1}, + {91, 1}, + {101, 1}, + {101, 1}, + {87, 1}, + {87, 1}, + {78, 1}, + {78, 1}, + {78, 1}, + {78, 1}, + {78, 1}, + {78, 1}, + {78, 1}, + {78, 1}, + {78, 1}, + {78, 1}, + {78, 1}, + {78, 1}, + {78, 1}, + {78, 1}, + {78, 1}, + {78, 1}, + {78, 1}, + {78, 1}, + {78, 1}, + {78, 1}, + {78, 1}, + {78, 1}, + {78, 1}, + {78, 1}, + {78, 1}, + {78, 1}, + {78, 1}, + {78, 1}, + {78, 1}, + {78, 1}, + {78, 1}, + {78, 1}, + {78, 1}, + {78, 1}, + {78, 1}, + {78, 1}, + {78, 1}, + {78, 1}, + {78, 1}, + {78, 1}, + {78, 1}, + {78, 1}, + {78, 1}, + {78, 1}, + {78, 1}, + {78, 1}, + {78, 1}, + {78, 1}, + {78, 1}, + {78, 1}, + {78, 1}, + {78, 1}, + {78, 1}, + {78, 1}, + {78, 1}, + {78, 1}, + {78, 1}, + {78, 1}, + {78, 1}, + {78, 1}, + {78, 1}, + {78, 1}, + {78, 1}, + {78, 1}, + {78, 1}, + {78, 1}, + {78, 1}, + {78, 1}, } yyhintXErrors = map[yyhintXError]string{} - yyhintParseTab = [259][]uint16{ + yyhintParseTab = [261][]uint16{ // 0 - {1: 237, 210, 202, 204, 229, 235, 216, 227, 241, 219, 212, 211, 215, 181, 199, 200, 201, 218, 238, 188, 193, 207, 220, 203, 205, 206, 222, 239, 208, 221, 223, 231, 225, 214, 189, 217, 192, 197, 240, 198, 191, 230, 190, 224, 209, 242, 236, 213, 194, 233, 226, 228, 234, 232, 84: 195, 89: 182, 196, 92: 180, 187, 95: 186, 184, 179, 185, 183, 105: 178, 107: 177}, - {75: 176}, - {1: 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 332, 75: 175, 80: 432}, - {1: 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 75: 174}, - {1: 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 75: 172}, + {1: 239, 211, 204, 206, 231, 237, 218, 229, 243, 221, 214, 212, 217, 183, 201, 202, 203, 220, 240, 190, 195, 213, 222, 205, 207, 208, 224, 241, 209, 223, 225, 233, 227, 216, 191, 219, 194, 199, 242, 200, 193, 232, 245, 192, 226, 210, 244, 238, 215, 196, 235, 228, 230, 236, 234, 85: 197, 90: 184, 198, 93: 182, 189, 96: 188, 186, 181, 187, 185, 106: 180, 108: 179}, + {76: 178}, + {1: 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 336, 76: 177, 81: 436}, + {1: 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 76: 176}, + {1: 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 76: 174}, // 5 - {74: 429}, - {74: 426}, - {74: 423}, - {74: 418}, - {74: 415}, + {75: 433}, + {75: 430}, + {75: 427}, + {75: 422}, + {75: 419}, // 10 - {74: 404}, - {74: 392}, - {74: 388}, - {74: 384}, - {74: 376}, + {75: 408}, + {75: 396}, + {75: 392}, + {75: 388}, + {75: 380}, // 15 - {74: 373}, - {74: 370}, - {74: 363}, - {74: 358}, - {74: 352}, + {75: 377}, + {75: 374}, + {75: 367}, + {75: 362}, + {75: 356}, // 20 - {74: 349}, - {74: 343}, - {74: 243}, - {74: 119}, - {74: 118}, + {75: 353}, + {75: 347}, + {75: 246}, + {75: 121}, + {75: 120}, // 25 - {74: 117}, - {74: 116}, - {74: 115}, - {74: 114}, - {74: 113}, + {75: 119}, + {75: 118}, + {75: 117}, + {75: 116}, + {75: 115}, // 30 - {74: 112}, - {74: 111}, - {74: 110}, - {74: 109}, - {74: 108}, + {75: 114}, + {75: 113}, + {75: 112}, + {75: 111}, + {75: 110}, // 35 - {74: 107}, - {74: 106}, - {74: 105}, - {74: 104}, - {74: 103}, + {75: 109}, + {75: 108}, + {75: 107}, + {75: 106}, + {75: 105}, // 40 - {74: 102}, - {74: 101}, - {74: 100}, - {74: 99}, - {74: 98}, + {75: 104}, + {75: 103}, + {75: 102}, + {75: 101}, + {75: 100}, // 45 - {74: 97}, - {74: 96}, - {74: 95}, - {74: 94}, - {74: 93}, + {75: 99}, + {75: 98}, + {75: 97}, + {75: 96}, + {75: 95}, // 50 - {74: 92}, - {74: 91}, - {74: 90}, - {74: 89}, - {74: 88}, + {75: 94}, + {75: 93}, + {75: 92}, + {75: 91}, + {75: 90}, // 55 - {74: 87}, - {74: 82}, - {74: 81}, - {74: 80}, - {74: 79}, + {75: 89}, + {75: 84}, + {75: 83}, + {75: 82}, + {75: 81}, // 60 - {74: 78}, - {74: 77}, - {74: 76}, - {74: 75}, - {74: 74}, + {75: 80}, + {75: 79}, + {75: 78}, + {75: 77}, + {75: 76}, // 65 - {74: 73}, - {74: 72}, - {60: 149, 149, 69: 245, 76: 244}, - {60: 250, 249, 86: 248, 247, 101: 246}, - {148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 70: 148, 148, 78: 148}, + {75: 75}, + {75: 74}, + {75: 73}, + {61: 151, 151, 70: 248, 77: 247}, + {61: 253, 252, 87: 251, 250, 102: 249}, // 70 - {340, 55: 341}, - {152, 55: 152}, - {83: 251}, - {83: 69}, - {83: 68}, + {150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 71: 150, 150, 79: 150}, + {344, 56: 345}, + {154, 56: 154}, + {84: 254}, + {84: 70}, // 75 - {1: 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 56: 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 245, 76: 253, 82: 252}, - {55: 338, 70: 337}, - {1: 284, 298, 261, 263, 308, 287, 265, 288, 286, 270, 289, 290, 291, 257, 258, 259, 260, 310, 285, 280, 292, 268, 272, 262, 264, 267, 274, 271, 269, 273, 275, 279, 277, 293, 307, 266, 283, 294, 295, 296, 282, 278, 281, 276, 297, 309, 299, 300, 305, 306, 302, 301, 303, 304, 56: 319, 320, 321, 322, 314, 313, 315, 311, 312, 316, 318, 317, 256, 77: 255, 81: 254}, - {139, 55: 139, 70: 139}, - {149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 245, 149, 149, 324, 76: 323}, + {84: 69}, + {1: 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 57: 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 248, 77: 256, 83: 255}, + {56: 342, 71: 341}, + {1: 287, 301, 264, 266, 311, 290, 268, 291, 289, 273, 292, 293, 294, 260, 261, 262, 263, 313, 288, 283, 295, 271, 275, 265, 267, 270, 277, 274, 272, 276, 278, 282, 280, 296, 310, 269, 286, 297, 298, 299, 285, 281, 314, 284, 279, 300, 312, 302, 303, 308, 309, 305, 304, 306, 307, 57: 323, 324, 325, 326, 318, 317, 319, 315, 316, 320, 322, 321, 259, 78: 258, 82: 257}, + {141, 56: 141, 71: 141}, // 80 - {67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67}, - {66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66}, - {65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65}, - {64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64}, - {63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63}, + {151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 248, 151, 151, 328, 77: 327}, + {68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68}, + {67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67}, + {66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66}, + {65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65}, // 85 - {62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62}, - {61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61}, - {60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60}, - {59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59}, - {58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58}, + {64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64}, + {63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63}, + {62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62}, + {61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61}, + {60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60}, // 90 - {57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57}, - {56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56}, - {55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55}, - {54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54}, - {53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53}, + {59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59}, + {58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58}, + {57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57}, + {56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56}, + {55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55}, // 95 - {52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52}, - {51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51}, - {50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50}, - {49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49}, - {48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48}, + {54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54}, + {53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53}, + {52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52}, + {51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51}, + {50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50}, // 100 - {47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47}, - {46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46}, - {45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45}, - {44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44}, - {43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43}, + {49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49}, + {48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48}, + {47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47}, + {46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46}, + {45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45}, // 105 - {42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42}, - {41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41}, - {40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40}, - {39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39}, - {38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38}, + {44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44}, + {43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43}, + {42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42}, + {41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41}, + {40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40}, // 110 - {37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37}, - {36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36}, - {35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35}, - {34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34}, - {33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33}, + {39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39}, + {38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38}, + {37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37}, + {36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36}, + {35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35}, // 115 - {32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32}, - {31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31}, - {30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30}, - {29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29}, - {28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28}, + {34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34}, + {33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33}, + {32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32}, + {31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31}, + {30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30}, // 120 - {27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27}, - {26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26}, - {25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25}, - {24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24}, - {23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23}, + {29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29}, + {28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28}, + {27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27}, + {26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26}, + {25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25}, // 125 - {22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22}, - {21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21}, - {20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20}, - {19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19}, - {18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18}, + {24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24}, + {23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23}, + {22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22}, + {21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21}, + {20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20}, // 130 - {17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17}, - {16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16}, - {15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15}, - {14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14}, - {13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13}, + {19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19}, + {18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18}, + {17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17}, + {16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16}, + {15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15}, // 135 - {12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12}, - {11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11}, - {10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10}, - {9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9}, - {8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8}, + {14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14}, + {13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13}, + {12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12}, + {11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11}, + {10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10}, // 140 - {7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7}, - {6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6}, - {5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5}, - {4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4}, - {3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3}, + {9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9}, + {8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8}, + {7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7}, + {6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6}, + {5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5}, // 145 - {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, 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, 2, 2, 2, 2, 2, 2, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, - {145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 70: 145, 327, 91: 336}, - {1: 284, 298, 261, 263, 308, 287, 265, 288, 286, 270, 289, 290, 291, 257, 258, 259, 260, 310, 285, 280, 292, 268, 272, 262, 264, 267, 274, 271, 269, 273, 275, 279, 277, 293, 307, 266, 283, 294, 295, 296, 282, 278, 281, 276, 297, 309, 299, 300, 305, 306, 302, 301, 303, 304, 56: 319, 320, 321, 322, 314, 313, 315, 311, 312, 316, 318, 317, 256, 77: 325}, - {149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 245, 149, 149, 76: 326}, + {4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4}, + {3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3}, + {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, 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, 2, 2, 2, 2, 2, 2, 2, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 71: 147, 331, 92: 340}, // 150 - {145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 70: 145, 327, 91: 328}, - {74: 329}, - {136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 70: 136}, - {1: 284, 298, 261, 263, 308, 287, 265, 288, 286, 270, 289, 290, 291, 257, 258, 259, 260, 310, 285, 280, 292, 268, 272, 262, 264, 267, 274, 271, 269, 273, 275, 279, 277, 293, 307, 266, 283, 294, 295, 296, 282, 278, 281, 276, 297, 309, 299, 300, 305, 306, 302, 301, 303, 304, 56: 319, 320, 321, 322, 314, 313, 315, 311, 312, 316, 318, 317, 256, 77: 331, 106: 330}, - {333, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 332, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 80: 334}, + {1: 287, 301, 264, 266, 311, 290, 268, 291, 289, 273, 292, 293, 294, 260, 261, 262, 263, 313, 288, 283, 295, 271, 275, 265, 267, 270, 277, 274, 272, 276, 278, 282, 280, 296, 310, 269, 286, 297, 298, 299, 285, 281, 314, 284, 279, 300, 312, 302, 303, 308, 309, 305, 304, 306, 307, 57: 323, 324, 325, 326, 318, 317, 319, 315, 316, 320, 322, 321, 259, 78: 329}, + {151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 248, 151, 151, 77: 330}, + {147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 71: 147, 331, 92: 332}, + {75: 333}, + {138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 71: 138}, // 155 - {143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143}, - {146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 56: 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 79: 146}, - {144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 70: 144}, - {1: 284, 298, 261, 263, 308, 287, 265, 288, 286, 270, 289, 290, 291, 257, 258, 259, 260, 310, 285, 280, 292, 268, 272, 262, 264, 267, 274, 271, 269, 273, 275, 279, 277, 293, 307, 266, 283, 294, 295, 296, 282, 278, 281, 276, 297, 309, 299, 300, 305, 306, 302, 301, 303, 304, 56: 319, 320, 321, 322, 314, 313, 315, 311, 312, 316, 318, 317, 256, 77: 335}, - {142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142}, + {1: 287, 301, 264, 266, 311, 290, 268, 291, 289, 273, 292, 293, 294, 260, 261, 262, 263, 313, 288, 283, 295, 271, 275, 265, 267, 270, 277, 274, 272, 276, 278, 282, 280, 296, 310, 269, 286, 297, 298, 299, 285, 281, 314, 284, 279, 300, 312, 302, 303, 308, 309, 305, 304, 306, 307, 57: 323, 324, 325, 326, 318, 317, 319, 315, 316, 320, 322, 321, 259, 78: 335, 107: 334}, + {337, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 336, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 81: 338}, + {145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145}, + {148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 57: 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 80: 148}, + {146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 71: 146}, // 160 - {137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 70: 137}, - {150, 55: 150}, - {1: 284, 298, 261, 263, 308, 287, 265, 288, 286, 270, 289, 290, 291, 257, 258, 259, 260, 310, 285, 280, 292, 268, 272, 262, 264, 267, 274, 271, 269, 273, 275, 279, 277, 293, 307, 266, 283, 294, 295, 296, 282, 278, 281, 276, 297, 309, 299, 300, 305, 306, 302, 301, 303, 304, 56: 319, 320, 321, 322, 314, 313, 315, 311, 312, 316, 318, 317, 256, 77: 255, 81: 339}, - {138, 55: 138, 70: 138}, - {1: 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 75: 153}, + {1: 287, 301, 264, 266, 311, 290, 268, 291, 289, 273, 292, 293, 294, 260, 261, 262, 263, 313, 288, 283, 295, 271, 275, 265, 267, 270, 277, 274, 272, 276, 278, 282, 280, 296, 310, 269, 286, 297, 298, 299, 285, 281, 314, 284, 279, 300, 312, 302, 303, 308, 309, 305, 304, 306, 307, 57: 323, 324, 325, 326, 318, 317, 319, 315, 316, 320, 322, 321, 259, 78: 339}, + {144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144}, + {139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 71: 139}, + {152, 56: 152}, + {1: 287, 301, 264, 266, 311, 290, 268, 291, 289, 273, 292, 293, 294, 260, 261, 262, 263, 313, 288, 283, 295, 271, 275, 265, 267, 270, 277, 274, 272, 276, 278, 282, 280, 296, 310, 269, 286, 297, 298, 299, 285, 281, 314, 284, 279, 300, 312, 302, 303, 308, 309, 305, 304, 306, 307, 57: 323, 324, 325, 326, 318, 317, 319, 315, 316, 320, 322, 321, 259, 78: 258, 82: 343}, // 165 - {60: 250, 249, 86: 248, 342}, - {151, 55: 151}, - {63: 149, 149, 69: 245, 76: 344}, - {63: 346, 347, 100: 345}, - {348}, + {140, 56: 140, 71: 140}, + {1: 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 76: 155}, + {61: 253, 252, 87: 251, 346}, + {153, 56: 153}, + {64: 151, 151, 70: 248, 77: 348}, // 170 + {64: 350, 351, 101: 349}, + {352}, + {72}, {71}, - {70}, - {1: 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 75: 154}, - {149, 69: 245, 76: 350}, - {351}, + {1: 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 76: 156}, // 175 - {1: 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 75: 155}, - {62: 149, 65: 149, 69: 245, 76: 353}, - {62: 356, 65: 355, 102: 354}, - {357}, - {121}, + {151, 70: 248, 77: 354}, + {355}, + {1: 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 76: 157}, + {63: 151, 66: 151, 70: 248, 77: 357}, + {63: 360, 66: 359, 103: 358}, // 180 - {120}, - {1: 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 75: 156}, - {79: 359}, - {55: 332, 79: 147, 360}, - {79: 361}, - // 185 - {362}, - {1: 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 75: 157}, - {69: 245, 76: 364, 78: 149}, - {78: 365}, - {66: 368, 367, 110: 366}, - // 190 - {369}, + {361}, {123}, {122}, - {1: 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 75: 158}, - {1: 284, 298, 261, 263, 308, 287, 265, 288, 286, 270, 289, 290, 291, 257, 258, 259, 260, 310, 285, 280, 292, 268, 272, 262, 264, 267, 274, 271, 269, 273, 275, 279, 277, 293, 307, 266, 283, 294, 295, 296, 282, 278, 281, 276, 297, 309, 299, 300, 305, 306, 302, 301, 303, 304, 56: 319, 320, 321, 322, 314, 313, 315, 311, 312, 316, 318, 317, 256, 77: 371}, + {1: 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 76: 158}, + {80: 363}, + // 185 + {56: 336, 80: 149, 364}, + {80: 365}, + {366}, + {1: 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 76: 159}, + {70: 248, 77: 368, 79: 151}, + // 190 + {79: 369}, + {67: 372, 371, 111: 370}, + {373}, + {125}, + {124}, // 195 - {372}, - {1: 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 75: 159}, - {1: 284, 298, 261, 263, 308, 287, 265, 288, 286, 270, 289, 290, 291, 257, 258, 259, 260, 310, 285, 280, 292, 268, 272, 262, 264, 267, 274, 271, 269, 273, 275, 279, 277, 293, 307, 266, 283, 294, 295, 296, 282, 278, 281, 276, 297, 309, 299, 300, 305, 306, 302, 301, 303, 304, 56: 319, 320, 321, 322, 314, 313, 315, 311, 312, 316, 318, 317, 256, 77: 374}, - {375}, - {1: 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 75: 160}, + {1: 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 76: 160}, + {1: 287, 301, 264, 266, 311, 290, 268, 291, 289, 273, 292, 293, 294, 260, 261, 262, 263, 313, 288, 283, 295, 271, 275, 265, 267, 270, 277, 274, 272, 276, 278, 282, 280, 296, 310, 269, 286, 297, 298, 299, 285, 281, 314, 284, 279, 300, 312, 302, 303, 308, 309, 305, 304, 306, 307, 57: 323, 324, 325, 326, 318, 317, 319, 315, 316, 320, 322, 321, 259, 78: 375}, + {376}, + {1: 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 76: 161}, + {1: 287, 301, 264, 266, 311, 290, 268, 291, 289, 273, 292, 293, 294, 260, 261, 262, 263, 313, 288, 283, 295, 271, 275, 265, 267, 270, 277, 274, 272, 276, 278, 282, 280, 296, 310, 269, 286, 297, 298, 299, 285, 281, 314, 284, 279, 300, 312, 302, 303, 308, 309, 305, 304, 306, 307, 57: 323, 324, 325, 326, 318, 317, 319, 315, 316, 320, 322, 321, 259, 78: 378}, // 200 - {1: 284, 298, 261, 263, 308, 287, 265, 288, 286, 270, 289, 290, 291, 257, 258, 259, 260, 310, 285, 280, 292, 268, 272, 262, 264, 267, 274, 271, 269, 273, 275, 279, 277, 293, 307, 266, 283, 294, 295, 296, 282, 278, 281, 276, 297, 309, 299, 300, 305, 306, 302, 301, 303, 304, 56: 319, 320, 321, 322, 314, 313, 315, 311, 312, 316, 318, 317, 256, 77: 377}, - {73: 378}, - {1: 284, 298, 261, 263, 308, 287, 265, 288, 286, 270, 289, 290, 291, 257, 258, 259, 260, 310, 285, 280, 292, 268, 272, 262, 264, 267, 274, 271, 269, 273, 275, 279, 277, 293, 307, 266, 283, 294, 295, 296, 282, 278, 281, 276, 297, 309, 299, 300, 305, 306, 302, 301, 303, 304, 56: 319, 320, 321, 322, 314, 313, 315, 311, 312, 316, 318, 317, 256, 77: 381, 382, 380, 111: 379}, - {383}, - {126}, + {379}, + {1: 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 76: 162}, + {1: 287, 301, 264, 266, 311, 290, 268, 291, 289, 273, 292, 293, 294, 260, 261, 262, 263, 313, 288, 283, 295, 271, 275, 265, 267, 270, 277, 274, 272, 276, 278, 282, 280, 296, 310, 269, 286, 297, 298, 299, 285, 281, 314, 284, 279, 300, 312, 302, 303, 308, 309, 305, 304, 306, 307, 57: 323, 324, 325, 326, 318, 317, 319, 315, 316, 320, 322, 321, 259, 78: 381}, + {74: 382}, + {1: 287, 301, 264, 266, 311, 290, 268, 291, 289, 273, 292, 293, 294, 260, 261, 262, 263, 313, 288, 283, 295, 271, 275, 265, 267, 270, 277, 274, 272, 276, 278, 282, 280, 296, 310, 269, 286, 297, 298, 299, 285, 281, 314, 284, 279, 300, 312, 302, 303, 308, 309, 305, 304, 306, 307, 57: 323, 324, 325, 326, 318, 317, 319, 315, 316, 320, 322, 321, 259, 78: 385, 386, 384, 112: 383}, // 205 - {125}, - {124}, - {1: 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 75: 161}, - {69: 245, 76: 385, 78: 149}, - {78: 386}, - // 210 {387}, - {1: 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 75: 162}, - {69: 245, 76: 389, 78: 149}, - {78: 390}, + {128}, + {127}, + {126}, + {1: 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 76: 163}, + // 210 + {70: 248, 77: 389, 79: 151}, + {79: 390}, {391}, + {1: 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 76: 164}, + {70: 248, 77: 393, 79: 151}, // 215 - {1: 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 75: 163}, - {149, 56: 149, 149, 149, 149, 69: 245, 76: 393}, - {130, 56: 397, 398, 399, 400, 94: 396, 108: 395, 394}, - {403}, - {129, 55: 401}, + {79: 394}, + {395}, + {1: 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 76: 165}, + {151, 57: 151, 151, 151, 151, 70: 248, 77: 397}, + {132, 57: 401, 402, 403, 404, 95: 400, 109: 399, 398}, // 220 - {128, 55: 128}, - {86, 55: 86}, - {85, 55: 85}, - {84, 55: 84}, - {83, 55: 83}, + {407}, + {131, 56: 405}, + {130, 56: 130}, + {88, 56: 88}, + {87, 56: 87}, // 225 - {56: 397, 398, 399, 400, 94: 402}, - {127, 55: 127}, - {1: 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 75: 164}, - {1: 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 56: 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 245, 76: 406, 85: 405}, - {414}, + {86, 56: 86}, + {85, 56: 85}, + {57: 401, 402, 403, 404, 95: 406}, + {129, 56: 129}, + {1: 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 76: 166}, // 230 - {1: 284, 298, 261, 263, 308, 287, 265, 288, 286, 270, 289, 290, 291, 257, 258, 259, 260, 310, 285, 280, 292, 268, 272, 262, 264, 267, 274, 271, 269, 273, 275, 279, 277, 293, 307, 266, 283, 294, 295, 296, 282, 278, 281, 276, 297, 309, 299, 300, 305, 306, 302, 301, 303, 304, 56: 319, 320, 321, 322, 314, 313, 315, 311, 312, 316, 318, 317, 256, 77: 255, 81: 407}, - {147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 332, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 80: 408}, - {134, 284, 298, 261, 263, 308, 287, 265, 288, 286, 270, 289, 290, 291, 257, 258, 259, 260, 310, 285, 280, 292, 268, 272, 262, 264, 267, 274, 271, 269, 273, 275, 279, 277, 293, 307, 266, 283, 294, 295, 296, 282, 278, 281, 276, 297, 309, 299, 300, 305, 306, 302, 301, 303, 304, 56: 319, 320, 321, 322, 314, 313, 315, 311, 312, 316, 318, 317, 256, 77: 411, 103: 410, 409}, - {135}, - {133, 55: 412}, + {1: 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 57: 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 248, 77: 410, 86: 409}, + {418}, + {1: 287, 301, 264, 266, 311, 290, 268, 291, 289, 273, 292, 293, 294, 260, 261, 262, 263, 313, 288, 283, 295, 271, 275, 265, 267, 270, 277, 274, 272, 276, 278, 282, 280, 296, 310, 269, 286, 297, 298, 299, 285, 281, 314, 284, 279, 300, 312, 302, 303, 308, 309, 305, 304, 306, 307, 57: 323, 324, 325, 326, 318, 317, 319, 315, 316, 320, 322, 321, 259, 78: 258, 82: 411}, + {149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 336, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 81: 412}, + {136, 287, 301, 264, 266, 311, 290, 268, 291, 289, 273, 292, 293, 294, 260, 261, 262, 263, 313, 288, 283, 295, 271, 275, 265, 267, 270, 277, 274, 272, 276, 278, 282, 280, 296, 310, 269, 286, 297, 298, 299, 285, 281, 314, 284, 279, 300, 312, 302, 303, 308, 309, 305, 304, 306, 307, 57: 323, 324, 325, 326, 318, 317, 319, 315, 316, 320, 322, 321, 259, 78: 415, 104: 414, 413}, // 235 - {132, 55: 132}, - {1: 284, 298, 261, 263, 308, 287, 265, 288, 286, 270, 289, 290, 291, 257, 258, 259, 260, 310, 285, 280, 292, 268, 272, 262, 264, 267, 274, 271, 269, 273, 275, 279, 277, 293, 307, 266, 283, 294, 295, 296, 282, 278, 281, 276, 297, 309, 299, 300, 305, 306, 302, 301, 303, 304, 56: 319, 320, 321, 322, 314, 313, 315, 311, 312, 316, 318, 317, 256, 77: 413}, - {131, 55: 131}, - {1: 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 75: 165}, - {1: 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 56: 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 245, 76: 406, 85: 416}, + {137}, + {135, 56: 416}, + {134, 56: 134}, + {1: 287, 301, 264, 266, 311, 290, 268, 291, 289, 273, 292, 293, 294, 260, 261, 262, 263, 313, 288, 283, 295, 271, 275, 265, 267, 270, 277, 274, 272, 276, 278, 282, 280, 296, 310, 269, 286, 297, 298, 299, 285, 281, 314, 284, 279, 300, 312, 302, 303, 308, 309, 305, 304, 306, 307, 57: 323, 324, 325, 326, 318, 317, 319, 315, 316, 320, 322, 321, 259, 78: 417}, + {133, 56: 133}, // 240 - {417}, - {1: 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 75: 166}, - {149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 56: 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 245, 76: 421, 82: 420, 88: 419}, - {422}, - {141, 55: 338}, + {1: 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 76: 167}, + {1: 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 57: 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 248, 77: 410, 86: 420}, + {421}, + {1: 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 76: 168}, + {151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 57: 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 248, 77: 425, 83: 424, 89: 423}, // 245 - {140, 284, 298, 261, 263, 308, 287, 265, 288, 286, 270, 289, 290, 291, 257, 258, 259, 260, 310, 285, 280, 292, 268, 272, 262, 264, 267, 274, 271, 269, 273, 275, 279, 277, 293, 307, 266, 283, 294, 295, 296, 282, 278, 281, 276, 297, 309, 299, 300, 305, 306, 302, 301, 303, 304, 56: 319, 320, 321, 322, 314, 313, 315, 311, 312, 316, 318, 317, 256, 77: 255, 81: 254}, - {1: 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 75: 167}, - {149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 56: 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 245, 76: 421, 82: 420, 88: 424}, - {425}, - {1: 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 75: 168}, + {426}, + {143, 56: 342}, + {142, 287, 301, 264, 266, 311, 290, 268, 291, 289, 273, 292, 293, 294, 260, 261, 262, 263, 313, 288, 283, 295, 271, 275, 265, 267, 270, 277, 274, 272, 276, 278, 282, 280, 296, 310, 269, 286, 297, 298, 299, 285, 281, 314, 284, 279, 300, 312, 302, 303, 308, 309, 305, 304, 306, 307, 57: 323, 324, 325, 326, 318, 317, 319, 315, 316, 320, 322, 321, 259, 78: 258, 82: 257}, + {1: 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 76: 169}, + {151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 57: 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 248, 77: 425, 83: 424, 89: 428}, // 250 - {1: 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 56: 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 245, 76: 253, 82: 427}, - {428, 55: 338}, - {1: 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 75: 169}, - {149, 69: 245, 76: 430}, - {431}, + {429}, + {1: 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 76: 170}, + {1: 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 57: 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 248, 77: 256, 83: 431}, + {432, 56: 342}, + {1: 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 76: 171}, // 255 - {1: 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 75: 170}, - {1: 237, 210, 202, 204, 229, 235, 216, 227, 241, 219, 212, 211, 215, 181, 199, 200, 201, 218, 238, 188, 193, 207, 220, 203, 205, 206, 222, 239, 208, 221, 223, 231, 225, 214, 189, 217, 192, 197, 240, 198, 191, 230, 190, 224, 209, 242, 236, 213, 194, 233, 226, 228, 234, 232, 84: 195, 89: 182, 196, 92: 434, 187, 95: 186, 184, 433, 185, 183}, - {1: 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 75: 173}, - {1: 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 75: 171}, + {151, 70: 248, 77: 434}, + {435}, + {1: 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 76: 172}, + {1: 239, 211, 204, 206, 231, 237, 218, 229, 243, 221, 214, 212, 217, 183, 201, 202, 203, 220, 240, 190, 195, 213, 222, 205, 207, 208, 224, 241, 209, 223, 225, 233, 227, 216, 191, 219, 194, 199, 242, 200, 193, 232, 245, 192, 226, 210, 244, 238, 215, 196, 235, 228, 230, 236, 234, 85: 197, 90: 184, 198, 93: 438, 189, 96: 188, 186, 437, 187, 185}, + {1: 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 76: 175}, + // 260 + {1: 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 76: 173}, } ) @@ -890,7 +898,7 @@ func yyhintlex1(yylex yyhintLexer, lval *yyhintSymType) (n int) { } func yyhintParse(yylex yyhintLexer, parser *hintParser) int { - const yyError = 113 + const yyError = 114 yyEx, _ := yylex.(yyhintLexerEx) var yyn int diff --git a/parser/hintparser.y b/parser/hintparser.y index 0938acff9df22..3808a1fc335ae 100644 --- a/parser/hintparser.y +++ b/parser/hintparser.y @@ -108,6 +108,7 @@ import ( hintForceIndex "FORCE_INDEX" hintStraightJoin "STRAIGHT_JOIN" hintLeading "LEADING" + hintSemiJoinRewrite "SEMI_JOIN_REWRITE" /* Other keywords */ hintOLAP "OLAP" @@ -530,13 +531,13 @@ UnsupportedTableLevelOptimizerHintName: | "NO_BNL" /* HASH_JOIN is supported by TiDB */ | "NO_HASH_JOIN" -| "MERGE" | "NO_MERGE" SupportedTableLevelOptimizerHintName: "MERGE_JOIN" | "BROADCAST_JOIN" | "INL_JOIN" +| "MERGE" | "INL_HASH_JOIN" | "SWAP_JOIN_INPUTS" | "NO_SWAP_JOIN_INPUTS" @@ -585,6 +586,7 @@ NullaryHintName: | "READ_CONSISTENT_REPLICA" | "IGNORE_PLAN_CACHE" | "STRAIGHT_JOIN" +| "SEMI_JOIN_REWRITE" HintQueryType: "OLAP" @@ -652,6 +654,7 @@ Identifier: | "FORCE_INDEX" | "STRAIGHT_JOIN" | "LEADING" +| "SEMI_JOIN_REWRITE" /* other keywords */ | "OLAP" | "OLTP" diff --git a/parser/hintparser_test.go b/parser/hintparser_test.go index 2c9156f579128..30d8d2c1ea803 100644 --- a/parser/hintparser_test.go +++ b/parser/hintparser_test.go @@ -261,7 +261,7 @@ func TestParseHint(t *testing.T) { }, }, { - input: "READ_FROM_STORAGE(@foo TIKV[a, b], TIFLASH[c, d]) HASH_AGG() READ_FROM_STORAGE(TIKV[e])", + input: "READ_FROM_STORAGE(@foo TIKV[a, b], TIFLASH[c, d]) HASH_AGG() SEMI_JOIN_REWRITE() READ_FROM_STORAGE(TIKV[e])", output: []*ast.TableOptimizerHint{ { HintName: model.NewCIStr("READ_FROM_STORAGE"), @@ -284,6 +284,9 @@ func TestParseHint(t *testing.T) { { HintName: model.NewCIStr("HASH_AGG"), }, + { + HintName: model.NewCIStr("SEMI_JOIN_REWRITE"), + }, { HintName: model.NewCIStr("READ_FROM_STORAGE"), HintData: model.NewCIStr("TIKV"), diff --git a/parser/hintparserimpl.go b/parser/hintparserimpl.go index dae3dedb75daa..a12489a6fbb2d 100644 --- a/parser/hintparserimpl.go +++ b/parser/hintparserimpl.go @@ -22,6 +22,7 @@ import ( "github.com/pingcap/tidb/parser/terror" ) +//revive:disable:exported var ( ErrWarnOptimizerHintUnsupportedHint = terror.ClassParser.NewStd(mysql.ErrWarnOptimizerHintUnsupportedHint) ErrWarnOptimizerHintInvalidToken = terror.ClassParser.NewStd(mysql.ErrWarnOptimizerHintInvalidToken) @@ -30,6 +31,8 @@ var ( ErrWarnOptimizerHintInvalidInteger = terror.ClassParser.NewStd(mysql.ErrWarnOptimizerHintInvalidInteger) ) +//revive:enable:exported + // hintScanner implements the yyhintLexer interface type hintScanner struct { Scanner diff --git a/parser/lexer.go b/parser/lexer.go index bcddc5f5bfcea..039dfe224e34a 100644 --- a/parser/lexer.go +++ b/parser/lexer.go @@ -306,7 +306,7 @@ func NewScanner(s string) *Scanner { return lexer } -func (s *Scanner) handleIdent(lval *yySymType) int { +func (*Scanner) handleIdent(lval *yySymType) int { str := lval.ident // A character string literal may have an optional character set introducer and COLLATE clause: // [_charset_name]'string' [COLLATE collation_name] @@ -512,9 +512,8 @@ func startWithSlash(s *Scanner) (tok int, pos Pos, lit string) { if isOptimizerHint { s.lastHintPos = pos return hintComment, pos, s.r.data(&pos) - } else { - return s.scan() } + return s.scan() case '*': currentCharIsStar = true continue @@ -712,7 +711,7 @@ func (s *Scanner) scanString() (tok int, pos Pos, lit string) { } // handleEscape handles the case in scanString when previous char is '\'. -func (s *Scanner) handleEscape(b byte, buf *bytes.Buffer) { +func (*Scanner) handleEscape(b byte, buf *bytes.Buffer) { var ch0 byte /* \" \' \\ \n \0 \b \Z \r \t ==> escape to one char @@ -977,7 +976,7 @@ func (r *reader) inc() { r.p.Line++ r.p.Col = 0 } - r.p.Offset += 1 + r.p.Offset++ r.p.Col++ } diff --git a/parser/misc.go b/parser/misc.go index 171eb81db3b8d..6c54150896578 100644 --- a/parser/misc.go +++ b/parser/misc.go @@ -942,6 +942,7 @@ var hintTokenMap = map[string]int{ "FORCE_INDEX": hintForceIndex, "STRAIGHT_JOIN": hintStraightJoin, "LEADING": hintLeading, + "SEMI_JOIN_REWRITE": hintSemiJoinRewrite, // TiDB hint aliases "TIDB_HJ": hintHashJoin, diff --git a/parser/model/BUILD.bazel b/parser/model/BUILD.bazel index b33cdd2e16bf1..e7401cee8242b 100644 --- a/parser/model/BUILD.bazel +++ b/parser/model/BUILD.bazel @@ -23,6 +23,7 @@ go_test( name = "model_test", srcs = ["model_test.go"], embed = [":model"], + flaky = True, deps = [ "//parser/charset", "//parser/mysql", diff --git a/parser/model/ddl.go b/parser/model/ddl.go index 6be7ad22c571f..612e9bb618d1e 100644 --- a/parser/model/ddl.go +++ b/parser/model/ddl.go @@ -69,7 +69,7 @@ const ( ActionDropSequence ActionType = 36 ActionAddColumns ActionType = 37 // Deprecated, we use ActionMultiSchemaChange instead. ActionDropColumns ActionType = 38 // Deprecated, we use ActionMultiSchemaChange instead. - ActionModifyTableAutoIdCache ActionType = 39 + ActionModifyTableAutoIdCache ActionType = 39 //nolint:revive ActionRebaseAutoRandomBase ActionType = 40 ActionAlterIndexVisibility ActionType = 41 ActionExchangeTablePartition ActionType = 42 @@ -79,7 +79,7 @@ const ( // `ActionAlterTableAlterPartition` is removed and will never be used. // Just left a tombstone here for compatibility. - __DEPRECATED_ActionAlterTableAlterPartition ActionType = 46 + __DEPRECATED_ActionAlterTableAlterPartition ActionType = 46 //nolint:revive ActionRenameTables ActionType = 47 ActionDropIndexes ActionType = 48 // Deprecated, we use ActionMultiSchemaChange instead. @@ -231,6 +231,7 @@ type TimeZoneLocation struct { location *time.Location } +// GetLocation gets the timezone location. func (tz *TimeZoneLocation) GetLocation() (*time.Location, error) { if tz.location != nil { return tz.location, nil @@ -254,11 +255,12 @@ func NewDDLReorgMeta() *DDLReorgMeta { // MultiSchemaInfo keeps some information for multi schema change. type MultiSchemaInfo struct { - Warnings []*errors.Error - SubJobs []*SubJob `json:"sub_jobs"` Revertible bool `json:"revertible"` + // SkipVersion is used to control whether generating a new schema version for a sub-job. + SkipVersion bool `json:"-"` + AddColumns []CIStr `json:"-"` DropColumns []CIStr `json:"-"` ModifyColumns []CIStr `json:"-"` @@ -270,6 +272,7 @@ type MultiSchemaInfo struct { PositionColumns []CIStr `json:"-"` } +// NewMultiSchemaInfo new a MultiSchemaInfo. func NewMultiSchemaInfo() *MultiSchemaInfo { return &MultiSchemaInfo{ SubJobs: nil, @@ -277,6 +280,7 @@ func NewMultiSchemaInfo() *MultiSchemaInfo { } } +// SubJob is a representation of one DDL schema change. A Job may contain zero(when multi-schema change is not applicable) or more SubJobs. type SubJob struct { Type ActionType `json:"type"` Args []interface{} `json:"-"` @@ -288,6 +292,7 @@ type SubJob struct { RowCount int64 `json:"row_count"` Warning *terror.Error `json:"warning"` CtxVars []interface{} `json:"-"` + SchemaVer int64 `json:"schema_version"` } // IsNormal returns true if the sub-job is normally running. @@ -340,7 +345,8 @@ func (sub *SubJob) ToProxyJob(parentJob *Job) Job { } } -func (sub *SubJob) FromProxyJob(proxyJob *Job) { +// FromProxyJob converts a proxy job to a sub-job. +func (sub *SubJob) FromProxyJob(proxyJob *Job, ver int64) { sub.Revertible = proxyJob.MultiSchemaInfo.Revertible sub.SchemaState = proxyJob.SchemaState sub.SnapshotVer = proxyJob.SnapshotVer @@ -348,6 +354,7 @@ func (sub *SubJob) FromProxyJob(proxyJob *Job) { sub.State = proxyJob.State sub.Warning = proxyJob.Warning sub.RowCount = proxyJob.RowCount + sub.SchemaVer = ver } // Job is for a DDL operation. @@ -554,8 +561,12 @@ func (job *Job) DecodeArgs(args ...interface{}) error { // String implements fmt.Stringer interface. func (job *Job) String() string { rowCount := job.GetRowCount() - return fmt.Sprintf("ID:%d, Type:%s, State:%s, SchemaState:%s, SchemaID:%d, TableID:%d, RowCount:%d, ArgLen:%d, start time: %v, Err:%v, ErrCount:%d, SnapshotVersion:%v", + ret := fmt.Sprintf("ID:%d, Type:%s, State:%s, SchemaState:%s, SchemaID:%d, TableID:%d, RowCount:%d, ArgLen:%d, start time: %v, Err:%v, ErrCount:%d, SnapshotVersion:%v", job.ID, job.Type, job.State, job.SchemaState, job.SchemaID, job.TableID, rowCount, len(job.Args), TSConvert2Time(job.StartTS), job.Error, job.ErrorCount, job.SnapshotVer) + if job.Type != ActionMultiSchemaChange && job.MultiSchemaInfo != nil { + ret += fmt.Sprintf(", Multi-Schema Change:true, Revertible:%v", job.MultiSchemaInfo.Revertible) + } + return ret } func (job *Job) hasDependentSchema(other *Job) (bool, error) { @@ -572,6 +583,63 @@ func (job *Job) hasDependentSchema(other *Job) (bool, error) { return true, nil } } + if job.Type == ActionExchangeTablePartition { + var ( + defID int64 + ptSchemaID int64 + ptID int64 + partName string + withValidation bool + ) + if err := job.DecodeArgs(&defID, &ptSchemaID, &ptID, &partName, &withValidation); err != nil { + return false, errors.Trace(err) + } + if other.SchemaID == ptSchemaID { + return true, nil + } + } + } + return false, nil +} + +func (job *Job) hasDependentTableForExchangePartition(other *Job) (bool, error) { + if job.Type == ActionExchangeTablePartition { + var ( + defID int64 + ptSchemaID int64 + ptID int64 + partName string + withValidation bool + ) + + if err := job.DecodeArgs(&defID, &ptSchemaID, &ptID, &partName, &withValidation); err != nil { + return false, errors.Trace(err) + } + if ptID == other.TableID || defID == other.TableID { + return true, nil + } + + if other.Type == ActionExchangeTablePartition { + var ( + otherDefID int64 + otherPtSchemaID int64 + otherPtID int64 + otherPartName string + otherWithValidation bool + ) + if err := other.DecodeArgs(&otherDefID, &otherPtSchemaID, &otherPtID, &otherPartName, &otherWithValidation); err != nil { + return false, errors.Trace(err) + } + if job.TableID == other.TableID || job.TableID == otherPtID || job.TableID == otherDefID { + return true, nil + } + if ptID == other.TableID || ptID == otherPtID || ptID == otherDefID { + return true, nil + } + if defID == other.TableID || defID == otherPtID || defID == otherDefID { + return true, nil + } + } } return false, nil } @@ -594,6 +662,14 @@ func (job *Job) IsDependentOn(other *Job) (bool, error) { if other.TableID == job.TableID { return true, nil } + isDependent, err = job.hasDependentTableForExchangePartition(other) + if err != nil || isDependent { + return isDependent, errors.Trace(err) + } + isDependent, err = other.hasDependentTableForExchangePartition(job) + if err != nil || isDependent { + return isDependent, errors.Trace(err) + } return false, nil } @@ -638,10 +714,12 @@ func (job *Job) IsRunning() bool { return job.State == JobStateRunning } +// IsQueueing returns whether job is queuing or not. func (job *Job) IsQueueing() bool { return job.State == JobStateQueueing } +// NotStarted returns true if the job is never run by a worker. func (job *Job) NotStarted() bool { return job.State == JobStateNone || job.State == JobStateQueueing } @@ -657,6 +735,14 @@ func (job *Job) MayNeedReorg() bool { return ok && needReorg } return false + case ActionMultiSchemaChange: + for _, sub := range job.MultiSchemaInfo.SubJobs { + proxyJob := Job{Type: sub.Type, CtxVars: sub.CtxVars} + if proxyJob.MayNeedReorg() { + return true + } + } + return false default: return false } diff --git a/parser/model/model.go b/parser/model/model.go index 193239dc39321..a5b61033e6716 100644 --- a/parser/model/model.go +++ b/parser/model/model.go @@ -131,74 +131,92 @@ func (c *ColumnInfo) Clone() *ColumnInfo { return &nc } +// GetType returns the type of ColumnInfo. func (c *ColumnInfo) GetType() byte { return c.FieldType.GetType() } +// GetFlag returns the flag of ColumnInfo. func (c *ColumnInfo) GetFlag() uint { return c.FieldType.GetFlag() } +// GetFlen returns the flen of ColumnInfo. func (c *ColumnInfo) GetFlen() int { return c.FieldType.GetFlen() } +// GetDecimal returns the decimal of ColumnInfo. func (c *ColumnInfo) GetDecimal() int { return c.FieldType.GetDecimal() } +// GetCharset returns the charset of ColumnInfo. func (c *ColumnInfo) GetCharset() string { return c.FieldType.GetCharset() } +// GetCollate returns the collation of ColumnInfo. func (c *ColumnInfo) GetCollate() string { return c.FieldType.GetCollate() } +// GetElems returns the elems of ColumnInfo. func (c *ColumnInfo) GetElems() []string { return c.FieldType.GetElems() } +// SetType set the type of ColumnInfo. func (c *ColumnInfo) SetType(tp byte) { c.FieldType.SetType(tp) } +// SetFlag set the flag of ColumnInfo. func (c *ColumnInfo) SetFlag(flag uint) { c.FieldType.SetFlag(flag) } +// AddFlag adds the flag of ColumnInfo. func (c *ColumnInfo) AddFlag(flag uint) { c.FieldType.AddFlag(flag) } +// AndFlag adds a flag to the column. func (c *ColumnInfo) AndFlag(flag uint) { c.FieldType.AndFlag(flag) } +// ToggleFlag flips the flag according to the value. func (c *ColumnInfo) ToggleFlag(flag uint) { c.FieldType.ToggleFlag(flag) } +// DelFlag removes the flag from the column's flag. func (c *ColumnInfo) DelFlag(flag uint) { c.FieldType.DelFlag(flag) } +// SetFlen sets the flen of ColumnInfo. func (c *ColumnInfo) SetFlen(flen int) { c.FieldType.SetFlen(flen) } +// SetDecimal sets the decimal of ColumnInfo. func (c *ColumnInfo) SetDecimal(decimal int) { c.FieldType.SetDecimal(decimal) } +// SetCharset sets charset of the ColumnInfo func (c *ColumnInfo) SetCharset(charset string) { c.FieldType.SetCharset(charset) } +// SetCollate sets the collation of the column. func (c *ColumnInfo) SetCollate(collate string) { c.FieldType.SetCollate(collate) } +// SetElems set the elements of enum column. func (c *ColumnInfo) SetElems(elems []string) { c.FieldType.SetElems(elems) } @@ -361,10 +379,10 @@ const ( var ExtraHandleName = NewCIStr("_tidb_rowid") // ExtraPartitionIdName is the name of ExtraPartitionId Column. -var ExtraPartitionIdName = NewCIStr("_tidb_pid") +var ExtraPartitionIdName = NewCIStr("_tidb_pid") //nolint:revive // ExtraPhysTblIdName is the name of ExtraPhysTblID Column. -var ExtraPhysTblIdName = NewCIStr("_tidb_tid") +var ExtraPhysTblIdName = NewCIStr("_tidb_tid") //nolint:revive // TableInfo provides meta data describing a DB table. type TableInfo struct { @@ -390,7 +408,7 @@ type TableInfo struct { Comment string `json:"comment"` AutoIncID int64 `json:"auto_inc_id"` - AutoIdCache int64 `json:"auto_id_cache"` + AutoIdCache int64 `json:"auto_id_cache"` //nolint:revive AutoRandID int64 `json:"auto_rand_id"` MaxColumnID int64 `json:"max_col_id"` MaxIndexID int64 `json:"max_idx_id"` @@ -448,15 +466,22 @@ type TableInfo struct { // StatsOptions is used when do analyze/auto-analyze for each table StatsOptions *StatsOptions `json:"stats_options"` + + ExchangePartitionInfo *ExchangePartitionInfo `json:"exchange_partition_info"` } + +// TableCacheStatusType is the type of the table cache status type TableCacheStatusType int +//revive:disable:exported const ( TableCacheStatusDisable TableCacheStatusType = iota TableCacheStatusEnable TableCacheStatusSwitching ) +//revive:enable:exported + func (t TableCacheStatusType) String() string { switch t { case TableCacheStatusDisable: @@ -470,14 +495,18 @@ func (t TableCacheStatusType) String() string { } } +// TempTableType is the type of the temp table type TempTableType byte +//revive:disable:exported const ( TempTableNone TempTableType = iota TempTableGlobal TempTableLocal ) +//revive:enable:exported + func (t TempTableType) String() string { switch t { case TempTableGlobal: @@ -544,6 +573,7 @@ func (t TableLockState) String() string { type TableLockType byte const ( + // TableLockNone means this table lock is absent. TableLockNone TableLockType = iota // TableLockRead means the session with this lock can read the table (but not write it). // Multiple sessions can acquire a READ lock for the table at the same time. @@ -579,8 +609,10 @@ func (t TableLockType) String() string { return "" } +// TiFlashMode is the type of the table's mode in TiFlash. type TiFlashMode string +//revive:disable:exported const ( // In order to be compatible with the old version without tiflash mode // we set the normal mode(default mode) as empty @@ -588,6 +620,8 @@ const ( TiFlashModeFast TiFlashMode = "fast" ) +//revive:enable:exported + func (t TiFlashMode) String() string { switch t { case TiFlashModeNormal: @@ -681,6 +715,7 @@ func (t *TableInfo) GetPkColInfo() *ColumnInfo { return nil } +// GetAutoIncrementColInfo gets the ColumnInfo of auto_increment column if exists. func (t *TableInfo) GetAutoIncrementColInfo() *ColumnInfo { for _, colInfo := range t.Columns { if mysql.HasAutoIncrementFlag(colInfo.GetFlag()) { @@ -690,6 +725,7 @@ func (t *TableInfo) GetAutoIncrementColInfo() *ColumnInfo { return nil } +// IsAutoIncColUnsigned checks whether the auto increment column is unsigned. func (t *TableInfo) IsAutoIncColUnsigned() bool { col := t.GetAutoIncrementColInfo() if col == nil { @@ -915,12 +951,15 @@ func (t *TableInfo) IsBaseTable() bool { // See https://dev.mysql.com/doc/refman/5.7/en/view-algorithms.html type ViewAlgorithm int +//revive:disable:exported const ( AlgorithmUndefined ViewAlgorithm = iota AlgorithmMerge AlgorithmTemptable ) +//revive:enable:exported + func (v *ViewAlgorithm) String() string { switch *v { case AlgorithmMerge: @@ -938,11 +977,14 @@ func (v *ViewAlgorithm) String() string { // See https://dev.mysql.com/doc/refman/5.7/en/create-view.html type ViewSecurity int +//revive:disable:exported const ( SecurityDefiner ViewSecurity = iota SecurityInvoker ) +//revive:enable:exported + func (v *ViewSecurity) String() string { switch *v { case SecurityInvoker: @@ -958,11 +1000,14 @@ func (v *ViewSecurity) String() string { // See https://dev.mysql.com/doc/refman/5.7/en/view-check-option.html type ViewCheckOption int +//revive:disable:exported const ( CheckOptionLocal ViewCheckOption = iota CheckOptionCascaded ) +//revive:enable:exported + func (v *ViewCheckOption) String() string { switch *v { case CheckOptionLocal: @@ -974,6 +1019,7 @@ func (v *ViewCheckOption) String() string { } } +//revive:disable:exported // ViewInfo provides meta data describing a DB view. type ViewInfo struct { Algorithm ViewAlgorithm `json:"view_algorithm"` @@ -1010,6 +1056,8 @@ type SequenceInfo struct { Comment string `json:"sequence_comment"` } +//revive:enable:exported + // PartitionType is the type for PartitionInfo type PartitionType int @@ -1037,7 +1085,13 @@ func (p PartitionType) String() string { default: return "" } +} +// ExchangePartitionInfo provides exchange partition info. +type ExchangePartitionInfo struct { + ExchangePartitionFlag bool `json:"exchange_partition_flag"` + ExchangePartitionID int64 `json:"exchange_partition_id"` + ExchangePartitionDefID int64 `json:"exchange_partition_def_id"` } // PartitionInfo provides table partition info. @@ -1060,6 +1114,7 @@ type PartitionInfo struct { Num uint64 `json:"num"` } +// Clone clones itself. func (pi *PartitionInfo) Clone() *PartitionInfo { newPi := *pi newPi.Columns = make([]CIStr, len(pi.Columns)) @@ -1096,6 +1151,7 @@ func (pi *PartitionInfo) GetNameByID(id int64) string { return "" } +// GetStateByID gets the partition state by ID. func (pi *PartitionInfo) GetStateByID(id int64) SchemaState { for _, pstate := range pi.States { if pstate.ID == id { @@ -1105,6 +1161,7 @@ func (pi *PartitionInfo) GetStateByID(id int64) SchemaState { return StatePublic } +// SetStateByID sets the state of the partition by ID. func (pi *PartitionInfo) SetStateByID(id int64, state SchemaState) { newState := PartitionState{ID: id, State: state} for i, pstate := range pi.States { @@ -1119,6 +1176,7 @@ func (pi *PartitionInfo) SetStateByID(id int64, state SchemaState) { pi.States = append(pi.States, newState) } +// GCPartitionStates cleans up the partition state. func (pi *PartitionInfo) GCPartitionStates() { if len(pi.States) < 1 { return @@ -1139,6 +1197,7 @@ func (pi *PartitionInfo) GCPartitionStates() { pi.States = newStates } +// PartitionState is the state of the partition. type PartitionState struct { ID int64 `json:"id"` State SchemaState `json:"state"` @@ -1205,12 +1264,15 @@ func (p PrimaryKeyType) String() string { } } +//revive:disable:exported const ( PrimaryKeyTypeDefault PrimaryKeyType = iota PrimaryKeyTypeClustered PrimaryKeyTypeNonClustered ) +//revive:enable:exported + // IndexType is the type of index type IndexType int @@ -1273,6 +1335,16 @@ func (index *IndexInfo) HasPrefixIndex() bool { return false } +// HasColumnInIndexColumns checks whether the index contains the column with the specified ID. +func (index *IndexInfo) HasColumnInIndexColumns(tblInfo *TableInfo, colID int64) bool { + for _, ic := range index.Columns { + if tblInfo.Columns[ic.Offset].ID == colID { + return true + } + } + return false +} + // ConstraintInfo provides meta data describing check-expression constraint. type ConstraintInfo struct { ID int64 `json:"id"` @@ -1376,6 +1448,7 @@ func (db *DBInfo) Copy() *DBInfo { return &newInfo } +// LessDBInfo is used for sorting DBInfo by DBInfo.Name. func LessDBInfo(a *DBInfo, b *DBInfo) bool { return a.Name.L < b.Name.L } @@ -1453,6 +1526,7 @@ type PolicyInfo struct { State SchemaState `json:"state"` } +// Clone clones PolicyInfo. func (p *PolicyInfo) Clone() *PolicyInfo { cloned := *p cloned.PlacementSettings = p.PlacementSettings.Clone() @@ -1515,11 +1589,13 @@ func (p *PlacementSettings) String() string { return sb.String() } +// Clone clones the placement settings. func (p *PlacementSettings) Clone() *PlacementSettings { cloned := *p return &cloned } +// StatsOptions is the struct to store the stats options. type StatsOptions struct { *StatsWindowSettings AutoRecalc bool `json:"auto_recalc"` @@ -1532,6 +1608,7 @@ type StatsOptions struct { Concurrency uint `json:"concurrency"` } +// NewStatsOptions creates a new StatsOptions. func NewStatsOptions() *StatsOptions { return &StatsOptions{ AutoRecalc: true, @@ -1545,8 +1622,10 @@ func NewStatsOptions() *StatsOptions { } } +// ColumnChoice is the type of the column choice. type ColumnChoice byte +//revive:disable:exported const ( DefaultChoice ColumnChoice = iota AllColumns @@ -1554,6 +1633,8 @@ const ( ColumnList ) +//revive:enable:exported + func (s ColumnChoice) String() string { switch s { case AllColumns: @@ -1567,6 +1648,7 @@ func (s ColumnChoice) String() string { } } +// StatsWindowSettings is the settings of the stats window. type StatsWindowSettings struct { WindowStart time.Time `json:"window_start"` WindowEnd time.Time `json:"window_end"` @@ -1574,8 +1656,10 @@ type StatsWindowSettings struct { RepeatInterval uint `json:"repeat_interval"` } +// WindowRepeatType is the type of the window repeat. type WindowRepeatType byte +//revive:disable:exported const ( Never WindowRepeatType = iota Day @@ -1583,6 +1667,8 @@ const ( Month ) +//revive:enable:exported + func (s WindowRepeatType) String() string { switch s { case Never: diff --git a/parser/model/model_test.go b/parser/model/model_test.go index 480786ec14050..3e15ae6b1c380 100644 --- a/parser/model/model_test.go +++ b/parser/model/model_test.go @@ -274,6 +274,175 @@ func TestJobCodec(t *testing.T) { require.NoError(t, err) require.True(t, isDependent) + // Test IsDependentOn for exchange partition with table. + // test ActionCreateSchema and ActionExchangeTablePartition is dependent. + job3 := &Job{ + ID: 4, + TableID: 4, + SchemaID: 4, + Type: ActionExchangeTablePartition, + BinlogInfo: &HistoryInfo{}, + Args: []interface{}{int64(6), int64(3), int64(5), "pt", true}, + } + job3.RawArgs, err = json.Marshal(job3.Args) + require.NoError(t, err) + isDependent, err = job3.IsDependentOn(job2) + require.NoError(t, err) + require.True(t, isDependent) + + // test random and ActionExchangeTablePartition is dependent because TableID is same. + job4 := &Job{ + ID: 5, + TableID: 5, + SchemaID: 3, + Type: ActionExchangeTablePartition, + BinlogInfo: &HistoryInfo{}, + Args: []interface{}{6, 4, 2, "pt", true}, + } + job4.RawArgs, err = json.Marshal(job4.Args) + require.NoError(t, err) + isDependent, err = job4.IsDependentOn(job) + require.NoError(t, err) + require.True(t, isDependent) + + // test ActionExchangeTablePartition and ActionExchangeTablePartition is dependent. + job5 := &Job{ + ID: 6, + TableID: 6, + SchemaID: 6, + Type: ActionExchangeTablePartition, + BinlogInfo: &HistoryInfo{}, + Args: []interface{}{2, 6, 5, "pt", true}, + } + job5.RawArgs, err = json.Marshal(job5.Args) + require.NoError(t, err) + isDependent, err = job5.IsDependentOn(job4) + require.NoError(t, err) + require.True(t, isDependent) + + job6 := &Job{ + ID: 7, + TableID: 7, + SchemaID: 7, + Type: ActionExchangeTablePartition, + BinlogInfo: &HistoryInfo{}, + Args: []interface{}{6, 4, 2, "pt", true}, + } + job6.RawArgs, err = json.Marshal(job6.Args) + require.NoError(t, err) + isDependent, err = job6.IsDependentOn(job5) + require.NoError(t, err) + require.True(t, isDependent) + + job7 := &Job{ + ID: 8, + TableID: 8, + SchemaID: 8, + Type: ActionExchangeTablePartition, + BinlogInfo: &HistoryInfo{}, + Args: []interface{}{8, 4, 6, "pt", true}, + } + job7.RawArgs, err = json.Marshal(job7.Args) + require.NoError(t, err) + isDependent, err = job7.IsDependentOn(job6) + require.NoError(t, err) + require.True(t, isDependent) + + job8 := &Job{ + ID: 9, + TableID: 9, + SchemaID: 9, + Type: ActionExchangeTablePartition, + BinlogInfo: &HistoryInfo{}, + Args: []interface{}{8, 9, 9, "pt", true}, + } + job8.RawArgs, err = json.Marshal(job8.Args) + require.NoError(t, err) + isDependent, err = job8.IsDependentOn(job7) + require.NoError(t, err) + require.True(t, isDependent) + + job9 := &Job{ + ID: 10, + TableID: 10, + SchemaID: 10, + Type: ActionExchangeTablePartition, + BinlogInfo: &HistoryInfo{}, + Args: []interface{}{10, 10, 8, "pt", true}, + } + job9.RawArgs, err = json.Marshal(job9.Args) + require.NoError(t, err) + isDependent, err = job9.IsDependentOn(job8) + require.NoError(t, err) + require.True(t, isDependent) + + // test ActionDropSchema and ActionExchangeTablePartition is dependent. + job10 := &Job{ + ID: 11, + TableID: 11, + SchemaID: 11, + Type: ActionDropSchema, + BinlogInfo: &HistoryInfo{}, + } + job10.RawArgs, err = json.Marshal(job10.Args) + require.NoError(t, err) + + job11 := &Job{ + ID: 12, + TableID: 12, + SchemaID: 11, + Type: ActionExchangeTablePartition, + BinlogInfo: &HistoryInfo{}, + Args: []interface{}{10, 10, 8, "pt", true}, + } + job11.RawArgs, err = json.Marshal(job11.Args) + require.NoError(t, err) + isDependent, err = job11.IsDependentOn(job10) + require.NoError(t, err) + require.True(t, isDependent) + + // test ActionDropTable and ActionExchangeTablePartition is dependent. + job12 := &Job{ + ID: 13, + TableID: 13, + SchemaID: 11, + Type: ActionDropTable, + BinlogInfo: &HistoryInfo{}, + } + job12.RawArgs, err = json.Marshal(job12.Args) + require.NoError(t, err) + isDependent, err = job11.IsDependentOn(job12) + require.NoError(t, err) + require.False(t, isDependent) + + job13 := &Job{ + ID: 14, + TableID: 12, + SchemaID: 14, + Type: ActionDropTable, + BinlogInfo: &HistoryInfo{}, + } + job13.RawArgs, err = json.Marshal(job13.Args) + require.NoError(t, err) + isDependent, err = job11.IsDependentOn(job13) + require.NoError(t, err) + require.True(t, isDependent) + + // test ActionDropTable and ActionExchangeTablePartition is dependent. + job14 := &Job{ + ID: 15, + TableID: 15, + SchemaID: 15, + Type: ActionExchangeTablePartition, + BinlogInfo: &HistoryInfo{}, + Args: []interface{}{16, 17, 12, "pt", true}, + } + job14.RawArgs, err = json.Marshal(job14.Args) + require.NoError(t, err) + isDependent, err = job13.IsDependentOn(job14) + require.NoError(t, err) + require.True(t, isDependent) + require.Equal(t, false, job.IsCancelled()) b, err := job.Encode(false) require.NoError(t, err) diff --git a/parser/mysql/BUILD.bazel b/parser/mysql/BUILD.bazel index da3f279a5c264..e44bf23c71dc7 100644 --- a/parser/mysql/BUILD.bazel +++ b/parser/mysql/BUILD.bazel @@ -31,5 +31,6 @@ go_test( "type_test.go", ], embed = [":mysql"], + flaky = True, deps = ["@com_github_stretchr_testify//require"], ) diff --git a/parser/mysql/const.go b/parser/mysql/const.go index 81e551a125e01..8d9396d26e8c8 100644 --- a/parser/mysql/const.go +++ b/parser/mysql/const.go @@ -42,7 +42,7 @@ const ( LocalInFileHeader byte = 0xfb ) -// Protocol Features +// AuthSwitchRequest is a protocol feature. const AuthSwitchRequest byte = 0xfe // Server information. @@ -167,6 +167,7 @@ const ( AuthNativePassword = "mysql_native_password" // #nosec G101 AuthCachingSha2Password = "caching_sha2_password" // #nosec G101 AuthSocket = "auth_socket" + AuthTiDBSessionToken = "tidb_session_token" ) // MySQL database and tables. @@ -230,6 +231,7 @@ const MaxTypeSetMembers = 64 // PWDHashLen is the length of mysql_native_password's hash. const PWDHashLen = 40 // excluding the '*' +// SHAPWDHashLen is the length of sha256_password's hash. const SHAPWDHashLen = 70 // Command2Str is the command information to command name. diff --git a/parser/mysql/errcode.go b/parser/mysql/errcode.go index d9e3fe5a6e351..d75b3fc42db31 100644 --- a/parser/mysql/errcode.go +++ b/parser/mysql/errcode.go @@ -926,11 +926,11 @@ const ( ErrWindowNestedWindowFuncUseInWindowSpec = 3595 ErrWindowRowsIntervalUse = 3596 ErrWindowNoGroupOrderUnused = 3597 - ErrWindowExplainJson = 3598 + ErrWindowExplainJson = 3598 //nolint: revive ErrWindowFunctionIgnoresFrame = 3599 ErrDataTruncatedFunctionalIndex = 3751 ErrDataOutOfRangeFunctionalIndex = 3752 - ErrFunctionalIndexOnJsonOrGeometryFunction = 3753 + ErrFunctionalIndexOnJsonOrGeometryFunction = 3753 //nolint: revive ErrFunctionalIndexRefAutoIncrement = 3754 ErrCannotDropColumnFunctionalIndex = 3755 ErrFunctionalIndexPrimaryKey = 3756 @@ -943,8 +943,8 @@ const ( ErrFKIncompatibleColumns = 3780 ErrFunctionalIndexRowValueIsNotAllowed = 3800 ErrDependentByFunctionalIndex = 3837 - ErrInvalidJsonValueForFuncIndex = 3903 - ErrJsonValueOutOfRangeForFuncIndex = 3904 + ErrInvalidJsonValueForFuncIndex = 3903 //nolint: revive + ErrJsonValueOutOfRangeForFuncIndex = 3904 //nolint: revive ErrFunctionalIndexDataIsTooLong = 3907 ErrFunctionalIndexNotApplicable = 3909 diff --git a/parser/mysql/errname.go b/parser/mysql/errname.go index 0cf4783a2c35d..c3a98697900fe 100644 --- a/parser/mysql/errname.go +++ b/parser/mysql/errname.go @@ -13,6 +13,7 @@ package mysql +// ErrMessage is a error message with the format specifier. type ErrMessage struct { Raw string RedactArgPos []int diff --git a/parser/mysql/locale_format.go b/parser/mysql/locale_format.go index b483f94fc189f..30f13841b3bc9 100644 --- a/parser/mysql/locale_format.go +++ b/parser/mysql/locale_format.go @@ -89,10 +89,10 @@ func formatENUS(number string, precision string) (string, error) { return buffer.String(), nil } -func formatZHCN(number string, precision string) (string, error) { +func formatZHCN(_ string, _ string) (string, error) { return "", errors.New("not implemented") } -func formatNotSupport(number string, precision string) (string, error) { +func formatNotSupport(_ string, _ string) (string, error) { return "", errors.New("not support for the specific locale") } diff --git a/parser/mysql/privs.go b/parser/mysql/privs.go index af1c453487a0e..060dcc2d0815a 100644 --- a/parser/mysql/privs.go +++ b/parser/mysql/privs.go @@ -259,9 +259,13 @@ const ( DropRolePriv // CreateTMPTablePriv is the privilege to create a temporary table. CreateTMPTablePriv + // LockTablesPriv is the privilege to lock tables. LockTablesPriv + // CreateRoutinePriv is the privilege to create a stored routine. CreateRoutinePriv + // AlterRoutinePriv is the privilege to alter a stored routine. AlterRoutinePriv + // EventPriv is the privilege to event. EventPriv // ShutdownPriv the privilege to shutdown a server. @@ -296,8 +300,10 @@ const ( // If it's passed to RequestVerification, it means any privilege would be OK. const AllPrivMask = AllPriv - 1 +// Privileges is the list of all privileges. type Privileges []PrivilegeType +// Has checks whether PrivilegeType has the privilege. func (privs Privileges) Has(p PrivilegeType) bool { for _, cp := range privs { if cp == p { diff --git a/parser/opcode/BUILD.bazel b/parser/opcode/BUILD.bazel index 25d2447e484f3..9d3c86767d664 100644 --- a/parser/opcode/BUILD.bazel +++ b/parser/opcode/BUILD.bazel @@ -12,4 +12,5 @@ go_test( name = "opcode_test", srcs = ["opcode_test.go"], embed = [":opcode"], + flaky = True, ) diff --git a/parser/parser.go b/parser/parser.go index 416ac3799825f..1be1733a0c268 100644 --- a/parser/parser.go +++ b/parser/parser.go @@ -825,19 +825,19 @@ const ( zerofill = 57571 yyMaxDepth = 200 - yyTabOfs = -2508 + yyTabOfs = -2513 ) var ( yyXLAT = map[int]int{ - 57344: 0, // $end (2213x) - 59: 1, // ';' (2212x) + 57344: 0, // $end (2218x) + 59: 1, // ';' (2217x) 57805: 2, // remove (1856x) 57806: 3, // reorganize (1856x) 57626: 4, // comment (1790x) 57868: 5, // storage (1766x) 57589: 6, // autoIncrement (1755x) - 44: 7, // ',' (1669x) + 44: 7, // ',' (1670x) 57685: 8, // first (1654x) 57576: 9, // after (1652x) 57835: 10, // serial (1648x) @@ -990,13 +990,13 @@ var ( 57666: 157, // end (1454x) 57693: 158, // global (1454x) 57937: 159, // next_row_id (1454x) - 57784: 160, // policy (1454x) - 57956: 161, // predicate (1454x) - 57881: 162, // temporary (1454x) - 57894: 163, // unbounded (1454x) - 57899: 164, // user (1454x) - 57716: 165, // jsonType (1453x) - 57766: 166, // offset (1453x) + 57766: 160, // offset (1454x) + 57784: 161, // policy (1454x) + 57956: 162, // predicate (1454x) + 57881: 163, // temporary (1454x) + 57894: 164, // unbounded (1454x) + 57899: 165, // user (1454x) + 57716: 166, // jsonType (1453x) 57954: 167, // planCache (1453x) 57787: 168, // prepare (1453x) 57819: 169, // role (1453x) @@ -1323,7 +1323,7 @@ var ( 57496: 490, // partition (947x) 57435: 491, // ignore (946x) 57485: 492, // null (935x) - 57463: 493, // limit (928x) + 57463: 493, // limit (929x) 57420: 494, // forKwd (926x) 57443: 495, // into (919x) 57469: 496, // lock (915x) @@ -1338,7 +1338,7 @@ var ( 57363: 505, // and (886x) 57377: 506, // charType (886x) 57511: 507, // replace (878x) - 58070: 508, // intLit (872x) + 58070: 508, // intLit (875x) 57492: 509, // or (863x) 57354: 510, // andand (862x) 57782: 511, // pipesAsOr (862x) @@ -1493,10 +1493,10 @@ var ( 57361: 660, // alter (498x) 57512: 661, // require (496x) 64: 662, // '@' (491x) - 58334: 663, // Identifier (491x) - 58410: 664, // NotKeywordToken (491x) - 58636: 665, // TiDBKeyword (491x) - 58646: 666, // UnReservedKeyword (491x) + 58335: 663, // Identifier (491x) + 58411: 664, // NotKeywordToken (491x) + 58637: 665, // TiDBKeyword (491x) + 58647: 666, // UnReservedKeyword (491x) 57526: 667, // sql (488x) 57408: 668, // drop (485x) 57373: 669, // cascade (484x) @@ -1538,680 +1538,681 @@ var ( 57539: 705, // tinyblobType (475x) 57540: 706, // tinyIntType (475x) 57541: 707, // tinytextType (475x) - 58601: 708, // SubSelect (216x) - 58655: 709, // UserVariable (174x) - 58576: 710, // SimpleIdent (173x) - 58386: 711, // Literal (171x) - 58591: 712, // StringLiteral (171x) - 58407: 713, // NextValueForSequence (170x) - 58311: 714, // FunctionCallGeneric (169x) - 58312: 715, // FunctionCallKeyword (169x) - 58313: 716, // FunctionCallNonKeyword (169x) - 58314: 717, // FunctionNameConflict (169x) - 58315: 718, // FunctionNameDateArith (169x) - 58316: 719, // FunctionNameDateArithMultiForms (169x) - 58317: 720, // FunctionNameDatetimePrecision (169x) - 58318: 721, // FunctionNameOptionalBraces (169x) - 58319: 722, // FunctionNameSequence (169x) - 58575: 723, // SimpleExpr (169x) - 58602: 724, // SumExpr (169x) - 58604: 725, // SystemVariable (169x) - 58666: 726, // Variable (169x) - 58689: 727, // WindowFuncCall (169x) - 58161: 728, // BitExpr (156x) - 58482: 729, // PredicateExpr (132x) - 58164: 730, // BoolPri (129x) - 58278: 731, // Expression (129x) - 58405: 732, // NUM (98x) - 58704: 733, // logAnd (97x) - 58705: 734, // logOr (97x) - 58268: 735, // EqOpt (75x) - 58614: 736, // TableName (75x) - 58592: 737, // StringName (56x) + 58602: 708, // SubSelect (216x) + 58656: 709, // UserVariable (174x) + 58577: 710, // SimpleIdent (173x) + 58387: 711, // Literal (171x) + 58592: 712, // StringLiteral (171x) + 58408: 713, // NextValueForSequence (170x) + 58312: 714, // FunctionCallGeneric (169x) + 58313: 715, // FunctionCallKeyword (169x) + 58314: 716, // FunctionCallNonKeyword (169x) + 58315: 717, // FunctionNameConflict (169x) + 58316: 718, // FunctionNameDateArith (169x) + 58317: 719, // FunctionNameDateArithMultiForms (169x) + 58318: 720, // FunctionNameDatetimePrecision (169x) + 58319: 721, // FunctionNameOptionalBraces (169x) + 58320: 722, // FunctionNameSequence (169x) + 58576: 723, // SimpleExpr (169x) + 58603: 724, // SumExpr (169x) + 58605: 725, // SystemVariable (169x) + 58667: 726, // Variable (169x) + 58690: 727, // WindowFuncCall (169x) + 58162: 728, // BitExpr (156x) + 58483: 729, // PredicateExpr (132x) + 58165: 730, // BoolPri (129x) + 58279: 731, // Expression (129x) + 58406: 732, // NUM (101x) + 58705: 733, // logAnd (97x) + 58706: 734, // logOr (97x) + 58269: 735, // EqOpt (75x) + 58615: 736, // TableName (75x) + 58593: 737, // StringName (56x) 57400: 738, // deleteKwd (52x) 57549: 739, // unsigned (47x) 57495: 740, // over (45x) 57571: 741, // zerofill (45x) - 58187: 742, // ColumnName (41x) - 58377: 743, // LengthNum (41x) + 58378: 742, // LengthNum (44x) + 58188: 743, // ColumnName (41x) 57404: 744, // distinct (36x) 57405: 745, // distinctRow (36x) - 58694: 746, // WindowingClause (35x) - 58530: 747, // SelectStmt (34x) - 58531: 748, // SelectStmtBasic (34x) - 58533: 749, // SelectStmtFromDualTable (34x) - 58534: 750, // SelectStmtFromTable (34x) - 58551: 751, // SetOprClause (34x) + 58695: 746, // WindowingClause (35x) + 58531: 747, // SelectStmt (34x) + 58532: 748, // SelectStmtBasic (34x) + 58534: 749, // SelectStmtFromDualTable (34x) + 58535: 750, // SelectStmtFromTable (34x) + 58552: 751, // SetOprClause (34x) 57399: 752, // delayed (33x) 57430: 753, // highPriority (33x) 57472: 754, // lowPriority (33x) - 58552: 755, // SetOprClauseList (33x) - 58555: 756, // SetOprStmtWithLimitOrderBy (33x) - 58556: 757, // SetOprStmtWoutLimitOrderBy (33x) - 58695: 758, // WithClause (31x) - 58543: 759, // SelectStmtWithClause (30x) - 58554: 760, // SetOprStmt (30x) + 58553: 755, // SetOprClauseList (33x) + 58556: 756, // SetOprStmtWithLimitOrderBy (33x) + 58557: 757, // SetOprStmtWoutLimitOrderBy (33x) + 58696: 758, // WithClause (31x) + 58544: 759, // SelectStmtWithClause (30x) + 58555: 760, // SetOprStmt (30x) 57353: 761, // hintComment (27x) - 58289: 762, // FieldLen (26x) - 58366: 763, // Int64Num (26x) - 58448: 764, // OptWindowingClause (24x) - 58243: 765, // DeleteWithoutUsingStmt (23x) - 58454: 766, // OrderBy (23x) - 58537: 767, // SelectStmtLimit (23x) + 58290: 762, // FieldLen (26x) + 58367: 763, // Int64Num (26x) + 58449: 764, // OptWindowingClause (24x) + 58244: 765, // DeleteWithoutUsingStmt (23x) + 58455: 766, // OrderBy (23x) + 58538: 767, // SelectStmtLimit (23x) 57527: 768, // sqlBigResult (23x) 57528: 769, // sqlCalcFoundRows (23x) 57529: 770, // sqlSmallResult (23x) - 58649: 771, // UpdateStmtNoWith (22x) - 58175: 772, // CharsetKw (20x) - 58363: 773, // InsertIntoStmt (20x) - 58504: 774, // ReplaceIntoStmt (20x) - 58648: 775, // UpdateStmt (20x) - 58657: 776, // Username (20x) - 58279: 777, // ExpressionList (18x) - 58242: 778, // DeleteWithUsingStmt (17x) - 58477: 779, // PlacementPolicyOption (17x) - 58335: 780, // IfExists (16x) + 58650: 771, // UpdateStmtNoWith (22x) + 58176: 772, // CharsetKw (20x) + 58364: 773, // InsertIntoStmt (20x) + 58505: 774, // ReplaceIntoStmt (20x) + 58649: 775, // UpdateStmt (20x) + 58658: 776, // Username (20x) + 58280: 777, // ExpressionList (18x) + 58243: 778, // DeleteWithUsingStmt (17x) + 58478: 779, // PlacementPolicyOption (17x) + 58336: 780, // IfExists (16x) 57537: 781, // terminated (16x) - 58241: 782, // DeleteFromStmt (15x) - 58245: 783, // DistinctKwd (15x) - 58336: 784, // IfNotExists (15x) - 58433: 785, // OptFieldLen (15x) - 58246: 786, // DistinctOpt (14x) + 58242: 782, // DeleteFromStmt (15x) + 58246: 783, // DistinctKwd (15x) + 58337: 784, // IfNotExists (15x) + 58434: 785, // OptFieldLen (15x) + 58247: 786, // DistinctOpt (14x) 57411: 787, // enclosed (14x) - 58465: 788, // PartitionNameList (14x) - 58679: 789, // WhereClause (14x) - 58680: 790, // WhereClauseOptional (14x) - 58238: 791, // DefaultKwdOpt (13x) + 58466: 788, // PartitionNameList (14x) + 58680: 789, // WhereClause (14x) + 58681: 790, // WhereClauseOptional (14x) + 58239: 791, // DefaultKwdOpt (13x) 57412: 792, // escaped (13x) 57491: 793, // optionally (13x) - 58615: 794, // TableNameList (13x) - 58277: 795, // ExprOrDefault (12x) - 58371: 796, // JoinTable (12x) - 58427: 797, // OptBinary (12x) + 58616: 794, // TableNameList (13x) + 58278: 795, // ExprOrDefault (12x) + 58372: 796, // JoinTable (12x) + 58428: 797, // OptBinary (12x) 57508: 798, // release (12x) - 58520: 799, // RolenameComposed (12x) - 58611: 800, // TableFactor (12x) - 58624: 801, // TableRef (12x) - 58638: 802, // TimestampUnit (12x) - 58135: 803, // AnalyzeOptionListOpt (11x) - 58306: 804, // FromOrIn (11x) - 58131: 805, // AlterTableStmt (10x) - 58176: 806, // CharsetName (10x) - 58188: 807, // ColumnNameList (10x) + 58521: 799, // RolenameComposed (12x) + 58612: 800, // TableFactor (12x) + 58625: 801, // TableRef (12x) + 58639: 802, // TimestampUnit (12x) + 58136: 803, // AnalyzeOptionListOpt (11x) + 58307: 804, // FromOrIn (11x) + 58132: 805, // AlterTableStmt (10x) + 58177: 806, // CharsetName (10x) + 58189: 807, // ColumnNameList (10x) 57466: 808, // load (10x) - 58411: 809, // NotSym (10x) - 58455: 810, // OrderByOptional (10x) - 58457: 811, // PartDefOption (10x) - 58574: 812, // SignedNum (10x) - 58167: 813, // BuggyDefaultFalseDistinctOpt (9x) - 58228: 814, // DBName (9x) - 58237: 815, // DefaultFalseDistinctOpt (9x) - 58372: 816, // JoinType (9x) + 58412: 809, // NotSym (10x) + 58456: 810, // OrderByOptional (10x) + 58458: 811, // PartDefOption (10x) + 58575: 812, // SignedNum (10x) + 58168: 813, // BuggyDefaultFalseDistinctOpt (9x) + 58229: 814, // DBName (9x) + 58238: 815, // DefaultFalseDistinctOpt (9x) + 58373: 816, // JoinType (9x) 57482: 817, // noWriteToBinLog (9x) - 58417: 818, // NumLiteral (9x) - 58519: 819, // Rolename (9x) - 58514: 820, // RoleNameString (9x) - 58637: 821, // TimeUnit (9x) - 58227: 822, // CrossOpt (8x) - 58269: 823, // EqOrAssignmentEq (8x) - 58276: 824, // ExplainableStmt (8x) - 58280: 825, // ExpressionListOpt (8x) - 58357: 826, // IndexPartSpecification (8x) - 58373: 827, // KeyOrIndex (8x) - 58538: 828, // SelectStmtLimitOpt (8x) - 58669: 829, // VariableName (8x) - 58117: 830, // AllOrPartitionNameList (7x) - 58211: 831, // ConstraintKeywordOpt (7x) - 58295: 832, // FieldsOrColumns (7x) - 58304: 833, // ForceOpt (7x) - 58358: 834, // IndexPartSpecificationList (7x) - 58408: 835, // NoWriteToBinLogAliasOpt (7x) - 58486: 836, // Priority (7x) - 58524: 837, // RowFormat (7x) - 58527: 838, // RowValue (7x) - 58549: 839, // SetExpr (7x) - 58560: 840, // ShowDatabaseNameOpt (7x) - 58621: 841, // TableOption (7x) + 58418: 818, // NumLiteral (9x) + 58520: 819, // Rolename (9x) + 58515: 820, // RoleNameString (9x) + 58638: 821, // TimeUnit (9x) + 58228: 822, // CrossOpt (8x) + 58270: 823, // EqOrAssignmentEq (8x) + 58277: 824, // ExplainableStmt (8x) + 58281: 825, // ExpressionListOpt (8x) + 58358: 826, // IndexPartSpecification (8x) + 58374: 827, // KeyOrIndex (8x) + 58539: 828, // SelectStmtLimitOpt (8x) + 58670: 829, // VariableName (8x) + 58118: 830, // AllOrPartitionNameList (7x) + 58212: 831, // ConstraintKeywordOpt (7x) + 58296: 832, // FieldsOrColumns (7x) + 58305: 833, // ForceOpt (7x) + 58359: 834, // IndexPartSpecificationList (7x) + 58409: 835, // NoWriteToBinLogAliasOpt (7x) + 58487: 836, // Priority (7x) + 58525: 837, // RowFormat (7x) + 58528: 838, // RowValue (7x) + 58550: 839, // SetExpr (7x) + 58561: 840, // ShowDatabaseNameOpt (7x) + 58622: 841, // TableOption (7x) 57562: 842, // varying (7x) - 58156: 843, // BeginTransactionStmt (6x) - 58158: 844, // BindableStmt (6x) + 58157: 843, // BeginTransactionStmt (6x) + 58159: 844, // BindableStmt (6x) 57380: 845, // column (6x) - 58182: 846, // ColumnDef (6x) - 58201: 847, // CommitStmt (6x) - 58230: 848, // DatabaseOption (6x) - 58233: 849, // DatabaseSym (6x) - 58271: 850, // EscapedTableRef (6x) - 58293: 851, // FieldTerminator (6x) + 58183: 846, // ColumnDef (6x) + 58202: 847, // CommitStmt (6x) + 58231: 848, // DatabaseOption (6x) + 58234: 849, // DatabaseSym (6x) + 58272: 850, // EscapedTableRef (6x) + 58294: 851, // FieldTerminator (6x) 57426: 852, // grant (6x) - 58340: 853, // IgnoreOptional (6x) - 58349: 854, // IndexInvisible (6x) - 58354: 855, // IndexNameList (6x) - 58360: 856, // IndexType (6x) - 58390: 857, // LoadDataStmt (6x) - 58466: 858, // PartitionNameListOpt (6x) - 58499: 859, // ReleaseSavepointStmt (6x) - 58521: 860, // RolenameList (6x) - 58523: 861, // RollbackStmt (6x) - 58528: 862, // SavepointStmt (6x) - 58559: 863, // SetStmt (6x) + 58341: 853, // IgnoreOptional (6x) + 58350: 854, // IndexInvisible (6x) + 58355: 855, // IndexNameList (6x) + 58361: 856, // IndexType (6x) + 58391: 857, // LoadDataStmt (6x) + 58467: 858, // PartitionNameListOpt (6x) + 58500: 859, // ReleaseSavepointStmt (6x) + 58522: 860, // RolenameList (6x) + 58524: 861, // RollbackStmt (6x) + 58529: 862, // SavepointStmt (6x) + 58560: 863, // SetStmt (6x) 57523: 864, // show (6x) - 58619: 865, // TableOptimizerHints (6x) - 58658: 866, // UsernameList (6x) - 58696: 867, // WithClustered (6x) - 58115: 868, // AlgorithmClause (5x) - 58169: 869, // ByItem (5x) - 58181: 870, // CollationName (5x) - 58185: 871, // ColumnKeywordOpt (5x) - 58244: 872, // DirectPlacementOption (5x) - 58291: 873, // FieldOpt (5x) - 58292: 874, // FieldOpts (5x) - 58332: 875, // IdentList (5x) - 58352: 876, // IndexName (5x) - 58355: 877, // IndexOption (5x) - 58356: 878, // IndexOptionList (5x) + 58620: 865, // TableOptimizerHints (6x) + 58659: 866, // UsernameList (6x) + 58697: 867, // WithClustered (6x) + 58116: 868, // AlgorithmClause (5x) + 58170: 869, // ByItem (5x) + 58182: 870, // CollationName (5x) + 58186: 871, // ColumnKeywordOpt (5x) + 58245: 872, // DirectPlacementOption (5x) + 58292: 873, // FieldOpt (5x) + 58293: 874, // FieldOpts (5x) + 58333: 875, // IdentList (5x) + 58353: 876, // IndexName (5x) + 58356: 877, // IndexOption (5x) + 58357: 878, // IndexOptionList (5x) 57438: 879, // infile (5x) - 58382: 880, // LimitOption (5x) - 58394: 881, // LockClause (5x) - 58429: 882, // OptCharsetWithOptBinary (5x) - 58440: 883, // OptNullTreatment (5x) - 58480: 884, // PolicyName (5x) - 58487: 885, // PriorityOpt (5x) - 58529: 886, // SelectLockOpt (5x) - 58536: 887, // SelectStmtIntoOption (5x) - 58625: 888, // TableRefs (5x) - 58651: 889, // UserSpec (5x) - 58141: 890, // Assignment (4x) - 58147: 891, // AuthString (4x) - 58148: 892, // BRIEBooleanOptionName (4x) - 58149: 893, // BRIEIntegerOptionName (4x) - 58150: 894, // BRIEKeywordOptionName (4x) - 58151: 895, // BRIEOption (4x) - 58152: 896, // BRIEOptions (4x) - 58154: 897, // BRIEStringOptionName (4x) - 58170: 898, // ByList (4x) - 58174: 899, // Char (4x) - 58205: 900, // ConfigItemName (4x) - 58209: 901, // Constraint (4x) - 58300: 902, // FloatOpt (4x) - 58361: 903, // IndexTypeName (4x) + 58383: 880, // LimitOption (5x) + 58395: 881, // LockClause (5x) + 58430: 882, // OptCharsetWithOptBinary (5x) + 58441: 883, // OptNullTreatment (5x) + 58481: 884, // PolicyName (5x) + 58488: 885, // PriorityOpt (5x) + 58530: 886, // SelectLockOpt (5x) + 58537: 887, // SelectStmtIntoOption (5x) + 58626: 888, // TableRefs (5x) + 58652: 889, // UserSpec (5x) + 58142: 890, // Assignment (4x) + 58148: 891, // AuthString (4x) + 58149: 892, // BRIEBooleanOptionName (4x) + 58150: 893, // BRIEIntegerOptionName (4x) + 58151: 894, // BRIEKeywordOptionName (4x) + 58152: 895, // BRIEOption (4x) + 58153: 896, // BRIEOptions (4x) + 58155: 897, // BRIEStringOptionName (4x) + 58171: 898, // ByList (4x) + 58175: 899, // Char (4x) + 58206: 900, // ConfigItemName (4x) + 58210: 901, // Constraint (4x) + 58301: 902, // FloatOpt (4x) + 58362: 903, // IndexTypeName (4x) 57490: 904, // option (4x) - 58445: 905, // OptWild (4x) + 58446: 905, // OptWild (4x) 57494: 906, // outer (4x) - 58481: 907, // Precision (4x) - 58495: 908, // ReferDef (4x) - 58510: 909, // RestrictOrCascadeOpt (4x) - 58526: 910, // RowStmt (4x) - 58544: 911, // SequenceOption (4x) + 58482: 907, // Precision (4x) + 58496: 908, // ReferDef (4x) + 58511: 909, // RestrictOrCascadeOpt (4x) + 58527: 910, // RowStmt (4x) + 58545: 911, // SequenceOption (4x) 57532: 912, // statsExtended (4x) - 58606: 913, // TableAsName (4x) - 58607: 914, // TableAsNameOpt (4x) - 58618: 915, // TableNameOptWild (4x) - 58620: 916, // TableOptimizerHintsOpt (4x) - 58622: 917, // TableOptionList (4x) - 58640: 918, // TraceableStmt (4x) - 58641: 919, // TransactionChar (4x) - 58652: 920, // UserSpecList (4x) - 58690: 921, // WindowName (4x) - 58138: 922, // AsOfClause (3x) - 58142: 923, // AssignmentList (3x) - 58144: 924, // AttributesOpt (3x) - 58165: 925, // Boolean (3x) - 58194: 926, // ColumnOption (3x) - 58197: 927, // ColumnPosition (3x) - 58202: 928, // CommonTableExpr (3x) - 58223: 929, // CreateTableStmt (3x) - 58231: 930, // DatabaseOptionList (3x) - 58239: 931, // DefaultTrueDistinctOpt (3x) - 58265: 932, // EnforcedOrNot (3x) + 58607: 913, // TableAsName (4x) + 58608: 914, // TableAsNameOpt (4x) + 58619: 915, // TableNameOptWild (4x) + 58621: 916, // TableOptimizerHintsOpt (4x) + 58623: 917, // TableOptionList (4x) + 58641: 918, // TraceableStmt (4x) + 58642: 919, // TransactionChar (4x) + 58653: 920, // UserSpecList (4x) + 58691: 921, // WindowName (4x) + 58139: 922, // AsOfClause (3x) + 58143: 923, // AssignmentList (3x) + 58145: 924, // AttributesOpt (3x) + 58166: 925, // Boolean (3x) + 58195: 926, // ColumnOption (3x) + 58198: 927, // ColumnPosition (3x) + 58203: 928, // CommonTableExpr (3x) + 58224: 929, // CreateTableStmt (3x) + 58232: 930, // DatabaseOptionList (3x) + 58240: 931, // DefaultTrueDistinctOpt (3x) + 58266: 932, // EnforcedOrNot (3x) 57414: 933, // explain (3x) - 58282: 934, // ExtendedPriv (3x) - 58320: 935, // GeneratedAlways (3x) - 58322: 936, // GlobalScope (3x) - 58326: 937, // GroupByClause (3x) - 58344: 938, // IndexHint (3x) - 58348: 939, // IndexHintType (3x) - 58353: 940, // IndexNameAndTypeOpt (3x) + 58283: 934, // ExtendedPriv (3x) + 58321: 935, // GeneratedAlways (3x) + 58323: 936, // GlobalScope (3x) + 58327: 937, // GroupByClause (3x) + 58345: 938, // IndexHint (3x) + 58349: 939, // IndexHintType (3x) + 58354: 940, // IndexNameAndTypeOpt (3x) 57455: 941, // keys (3x) - 58384: 942, // Lines (3x) - 58402: 943, // MaxValueOrExpression (3x) - 58412: 944, // NowSym (3x) - 58413: 945, // NowSymFunc (3x) - 58414: 946, // NowSymOptionFraction (3x) - 58441: 947, // OptOrder (3x) - 58444: 948, // OptTemporary (3x) - 58458: 949, // PartDefOptionList (3x) - 58460: 950, // PartitionDefinition (3x) - 58469: 951, // PasswordExpire (3x) - 58471: 952, // PasswordOrLockOption (3x) - 58479: 953, // PluginNameList (3x) - 58485: 954, // PrimaryOpt (3x) - 58488: 955, // PrivElem (3x) - 58490: 956, // PrivType (3x) + 58385: 942, // Lines (3x) + 58403: 943, // MaxValueOrExpression (3x) + 58413: 944, // NowSym (3x) + 58414: 945, // NowSymFunc (3x) + 58415: 946, // NowSymOptionFraction (3x) + 58442: 947, // OptOrder (3x) + 58445: 948, // OptTemporary (3x) + 58459: 949, // PartDefOptionList (3x) + 58461: 950, // PartitionDefinition (3x) + 58470: 951, // PasswordExpire (3x) + 58472: 952, // PasswordOrLockOption (3x) + 58480: 953, // PluginNameList (3x) + 58486: 954, // PrimaryOpt (3x) + 58489: 955, // PrivElem (3x) + 58491: 956, // PrivType (3x) 57500: 957, // procedure (3x) - 58505: 958, // RequireClause (3x) - 58506: 959, // RequireClauseOpt (3x) - 58508: 960, // RequireListElement (3x) - 58522: 961, // RolenameWithoutIdent (3x) - 58515: 962, // RoleOrPrivElem (3x) - 58535: 963, // SelectStmtGroup (3x) - 58553: 964, // SetOprOpt (3x) - 58605: 965, // TableAliasRefList (3x) - 58608: 966, // TableElement (3x) - 58617: 967, // TableNameListOpt2 (3x) - 58633: 968, // TextString (3x) - 58642: 969, // TransactionChars (3x) + 58506: 958, // RequireClause (3x) + 58507: 959, // RequireClauseOpt (3x) + 58509: 960, // RequireListElement (3x) + 58523: 961, // RolenameWithoutIdent (3x) + 58516: 962, // RoleOrPrivElem (3x) + 58536: 963, // SelectStmtGroup (3x) + 58554: 964, // SetOprOpt (3x) + 58606: 965, // TableAliasRefList (3x) + 58609: 966, // TableElement (3x) + 58618: 967, // TableNameListOpt2 (3x) + 58634: 968, // TextString (3x) + 58643: 969, // TransactionChars (3x) 57544: 970, // trigger (3x) 57548: 971, // unlock (3x) 57551: 972, // usage (3x) - 58662: 973, // ValuesList (3x) - 58664: 974, // ValuesStmtList (3x) - 58660: 975, // ValueSym (3x) - 58667: 976, // VariableAssignment (3x) - 58687: 977, // WindowFrameStart (3x) + 58663: 973, // ValuesList (3x) + 58665: 974, // ValuesStmtList (3x) + 58661: 975, // ValueSym (3x) + 58668: 976, // VariableAssignment (3x) + 58688: 977, // WindowFrameStart (3x) 58114: 978, // AdminStmt (2x) - 58116: 979, // AllColumnsOrPredicateColumnsOpt (2x) - 58118: 980, // AlterDatabaseStmt (2x) - 58119: 981, // AlterImportStmt (2x) - 58120: 982, // AlterInstanceStmt (2x) - 58121: 983, // AlterOrderItem (2x) - 58123: 984, // AlterPolicyStmt (2x) - 58124: 985, // AlterSequenceOption (2x) - 58126: 986, // AlterSequenceStmt (2x) - 58128: 987, // AlterTableSpec (2x) - 58132: 988, // AlterUserStmt (2x) - 58133: 989, // AnalyzeOption (2x) - 58136: 990, // AnalyzeTableStmt (2x) - 58160: 991, // BinlogStmt (2x) - 58153: 992, // BRIEStmt (2x) - 58155: 993, // BRIETables (2x) - 58168: 994, // BuiltinFunction (2x) + 58117: 979, // AllColumnsOrPredicateColumnsOpt (2x) + 58119: 980, // AlterDatabaseStmt (2x) + 58120: 981, // AlterImportStmt (2x) + 58121: 982, // AlterInstanceStmt (2x) + 58122: 983, // AlterOrderItem (2x) + 58124: 984, // AlterPolicyStmt (2x) + 58125: 985, // AlterSequenceOption (2x) + 58127: 986, // AlterSequenceStmt (2x) + 58129: 987, // AlterTableSpec (2x) + 58133: 988, // AlterUserStmt (2x) + 58134: 989, // AnalyzeOption (2x) + 58137: 990, // AnalyzeTableStmt (2x) + 58161: 991, // BinlogStmt (2x) + 58154: 992, // BRIEStmt (2x) + 58156: 993, // BRIETables (2x) + 58169: 994, // BuiltinFunction (2x) 57372: 995, // call (2x) - 58171: 996, // CallStmt (2x) - 58172: 997, // CastType (2x) - 58173: 998, // ChangeStmt (2x) - 58179: 999, // CheckConstraintKeyword (2x) - 58189: 1000, // ColumnNameListOpt (2x) - 58192: 1001, // ColumnNameOrUserVariable (2x) - 58195: 1002, // ColumnOptionList (2x) - 58196: 1003, // ColumnOptionListOpt (2x) - 58198: 1004, // ColumnSetValue (2x) - 58204: 1005, // CompletionTypeWithinTransaction (2x) - 58206: 1006, // ConnectionOption (2x) - 58208: 1007, // ConnectionOptions (2x) - 58212: 1008, // CreateBindingStmt (2x) - 58213: 1009, // CreateDatabaseStmt (2x) - 58214: 1010, // CreateImportStmt (2x) - 58215: 1011, // CreateIndexStmt (2x) - 58216: 1012, // CreatePolicyStmt (2x) - 58217: 1013, // CreateRoleStmt (2x) - 58219: 1014, // CreateSequenceStmt (2x) - 58220: 1015, // CreateStatisticsStmt (2x) - 58221: 1016, // CreateTableOptionListOpt (2x) - 58224: 1017, // CreateUserStmt (2x) - 58226: 1018, // CreateViewStmt (2x) + 58172: 996, // CallStmt (2x) + 58173: 997, // CastType (2x) + 58174: 998, // ChangeStmt (2x) + 58180: 999, // CheckConstraintKeyword (2x) + 58190: 1000, // ColumnNameListOpt (2x) + 58193: 1001, // ColumnNameOrUserVariable (2x) + 58196: 1002, // ColumnOptionList (2x) + 58197: 1003, // ColumnOptionListOpt (2x) + 58199: 1004, // ColumnSetValue (2x) + 58205: 1005, // CompletionTypeWithinTransaction (2x) + 58207: 1006, // ConnectionOption (2x) + 58209: 1007, // ConnectionOptions (2x) + 58213: 1008, // CreateBindingStmt (2x) + 58214: 1009, // CreateDatabaseStmt (2x) + 58215: 1010, // CreateImportStmt (2x) + 58216: 1011, // CreateIndexStmt (2x) + 58217: 1012, // CreatePolicyStmt (2x) + 58218: 1013, // CreateRoleStmt (2x) + 58220: 1014, // CreateSequenceStmt (2x) + 58221: 1015, // CreateStatisticsStmt (2x) + 58222: 1016, // CreateTableOptionListOpt (2x) + 58225: 1017, // CreateUserStmt (2x) + 58227: 1018, // CreateViewStmt (2x) 57392: 1019, // databases (2x) - 58235: 1020, // DeallocateStmt (2x) - 58236: 1021, // DeallocateSym (2x) + 58236: 1020, // DeallocateStmt (2x) + 58237: 1021, // DeallocateSym (2x) 57403: 1022, // describe (2x) - 58247: 1023, // DoStmt (2x) - 58248: 1024, // DropBindingStmt (2x) - 58249: 1025, // DropDatabaseStmt (2x) - 58250: 1026, // DropImportStmt (2x) - 58251: 1027, // DropIndexStmt (2x) - 58252: 1028, // DropPolicyStmt (2x) - 58253: 1029, // DropRoleStmt (2x) - 58254: 1030, // DropSequenceStmt (2x) - 58255: 1031, // DropStatisticsStmt (2x) - 58256: 1032, // DropStatsStmt (2x) - 58257: 1033, // DropTableStmt (2x) - 58258: 1034, // DropUserStmt (2x) - 58259: 1035, // DropViewStmt (2x) - 58261: 1036, // DuplicateOpt (2x) - 58263: 1037, // EmptyStmt (2x) - 58264: 1038, // EncryptionOpt (2x) - 58266: 1039, // EnforcedOrNotOpt (2x) - 58270: 1040, // ErrorHandling (2x) - 58272: 1041, // ExecuteStmt (2x) - 58273: 1042, // ExplainFormatType (2x) - 58274: 1043, // ExplainStmt (2x) - 58275: 1044, // ExplainSym (2x) - 58284: 1045, // Field (2x) - 58287: 1046, // FieldItem (2x) - 58294: 1047, // Fields (2x) - 58298: 1048, // FlashbackTableStmt (2x) - 58303: 1049, // FlushStmt (2x) - 58309: 1050, // FuncDatetimePrecList (2x) - 58310: 1051, // FuncDatetimePrecListOpt (2x) - 58323: 1052, // GrantProxyStmt (2x) - 58324: 1053, // GrantRoleStmt (2x) - 58325: 1054, // GrantStmt (2x) - 58327: 1055, // HandleRange (2x) - 58329: 1056, // HashString (2x) - 58330: 1057, // HavingClause (2x) - 58331: 1058, // HelpStmt (2x) - 58343: 1059, // IndexAdviseStmt (2x) - 58345: 1060, // IndexHintList (2x) - 58346: 1061, // IndexHintListOpt (2x) - 58351: 1062, // IndexLockAndAlgorithmOpt (2x) - 58364: 1063, // InsertValues (2x) - 58368: 1064, // IntoOpt (2x) - 58374: 1065, // KeyOrIndexOpt (2x) + 58248: 1023, // DoStmt (2x) + 58249: 1024, // DropBindingStmt (2x) + 58250: 1025, // DropDatabaseStmt (2x) + 58251: 1026, // DropImportStmt (2x) + 58252: 1027, // DropIndexStmt (2x) + 58253: 1028, // DropPolicyStmt (2x) + 58254: 1029, // DropRoleStmt (2x) + 58255: 1030, // DropSequenceStmt (2x) + 58256: 1031, // DropStatisticsStmt (2x) + 58257: 1032, // DropStatsStmt (2x) + 58258: 1033, // DropTableStmt (2x) + 58259: 1034, // DropUserStmt (2x) + 58260: 1035, // DropViewStmt (2x) + 58262: 1036, // DuplicateOpt (2x) + 58264: 1037, // EmptyStmt (2x) + 58265: 1038, // EncryptionOpt (2x) + 58267: 1039, // EnforcedOrNotOpt (2x) + 58271: 1040, // ErrorHandling (2x) + 58273: 1041, // ExecuteStmt (2x) + 58274: 1042, // ExplainFormatType (2x) + 58275: 1043, // ExplainStmt (2x) + 58276: 1044, // ExplainSym (2x) + 58285: 1045, // Field (2x) + 58288: 1046, // FieldItem (2x) + 58295: 1047, // Fields (2x) + 58299: 1048, // FlashbackTableStmt (2x) + 58304: 1049, // FlushStmt (2x) + 58310: 1050, // FuncDatetimePrecList (2x) + 58311: 1051, // FuncDatetimePrecListOpt (2x) + 58324: 1052, // GrantProxyStmt (2x) + 58325: 1053, // GrantRoleStmt (2x) + 58326: 1054, // GrantStmt (2x) + 58328: 1055, // HandleRange (2x) + 58330: 1056, // HashString (2x) + 58331: 1057, // HavingClause (2x) + 58332: 1058, // HelpStmt (2x) + 58344: 1059, // IndexAdviseStmt (2x) + 58346: 1060, // IndexHintList (2x) + 58347: 1061, // IndexHintListOpt (2x) + 58352: 1062, // IndexLockAndAlgorithmOpt (2x) + 58365: 1063, // InsertValues (2x) + 58369: 1064, // IntoOpt (2x) + 58375: 1065, // KeyOrIndexOpt (2x) 57456: 1066, // kill (2x) - 58375: 1067, // KillOrKillTiDB (2x) - 58376: 1068, // KillStmt (2x) - 58381: 1069, // LimitClause (2x) + 58376: 1067, // KillOrKillTiDB (2x) + 58377: 1068, // KillStmt (2x) + 58382: 1069, // LimitClause (2x) 57465: 1070, // linear (2x) - 58383: 1071, // LinearOpt (2x) - 58387: 1072, // LoadDataSetItem (2x) - 58391: 1073, // LoadStatsStmt (2x) - 58392: 1074, // LocalOpt (2x) - 58393: 1075, // LocationLabelList (2x) - 58395: 1076, // LockTablesStmt (2x) - 58403: 1077, // MaxValueOrExpressionList (2x) - 58409: 1078, // NonTransactionalDeleteStmt (2x) - 58415: 1079, // NowSymOptionFractionParentheses (2x) - 58416: 1080, // NumList (2x) - 58419: 1081, // ObjectType (2x) + 58384: 1071, // LinearOpt (2x) + 58388: 1072, // LoadDataSetItem (2x) + 58392: 1073, // LoadStatsStmt (2x) + 58393: 1074, // LocalOpt (2x) + 58394: 1075, // LocationLabelList (2x) + 58396: 1076, // LockTablesStmt (2x) + 58404: 1077, // MaxValueOrExpressionList (2x) + 58410: 1078, // NonTransactionalDeleteStmt (2x) + 58416: 1079, // NowSymOptionFractionParentheses (2x) + 58417: 1080, // NumList (2x) + 58420: 1081, // ObjectType (2x) 57487: 1082, // of (2x) - 58420: 1083, // OfTablesOpt (2x) - 58421: 1084, // OnCommitOpt (2x) - 58422: 1085, // OnDelete (2x) - 58425: 1086, // OnUpdate (2x) - 58430: 1087, // OptCollate (2x) - 58435: 1088, // OptFull (2x) - 58437: 1089, // OptInteger (2x) - 58450: 1090, // OptionalBraces (2x) - 58449: 1091, // OptionLevel (2x) - 58439: 1092, // OptLeadLagInfo (2x) - 58438: 1093, // OptLLDefault (2x) - 58456: 1094, // OuterOpt (2x) - 58461: 1095, // PartitionDefinitionList (2x) - 58462: 1096, // PartitionDefinitionListOpt (2x) - 58468: 1097, // PartitionOpt (2x) - 58470: 1098, // PasswordOpt (2x) - 58472: 1099, // PasswordOrLockOptionList (2x) - 58473: 1100, // PasswordOrLockOptions (2x) - 58476: 1101, // PlacementOptionList (2x) - 58478: 1102, // PlanReplayerStmt (2x) - 58484: 1103, // PreparedStmt (2x) - 58489: 1104, // PrivLevel (2x) - 58492: 1105, // PurgeImportStmt (2x) - 58493: 1106, // QuickOptional (2x) - 58494: 1107, // RecoverTableStmt (2x) - 58496: 1108, // ReferOpt (2x) - 58498: 1109, // RegexpSym (2x) - 58500: 1110, // RenameTableStmt (2x) - 58501: 1111, // RenameUserStmt (2x) - 58503: 1112, // RepeatableOpt (2x) - 58509: 1113, // RestartStmt (2x) - 58511: 1114, // ResumeImportStmt (2x) + 58421: 1083, // OfTablesOpt (2x) + 58422: 1084, // OnCommitOpt (2x) + 58423: 1085, // OnDelete (2x) + 58426: 1086, // OnUpdate (2x) + 58431: 1087, // OptCollate (2x) + 58436: 1088, // OptFull (2x) + 58438: 1089, // OptInteger (2x) + 58451: 1090, // OptionalBraces (2x) + 58450: 1091, // OptionLevel (2x) + 58440: 1092, // OptLeadLagInfo (2x) + 58439: 1093, // OptLLDefault (2x) + 58457: 1094, // OuterOpt (2x) + 58462: 1095, // PartitionDefinitionList (2x) + 58463: 1096, // PartitionDefinitionListOpt (2x) + 58469: 1097, // PartitionOpt (2x) + 58471: 1098, // PasswordOpt (2x) + 58473: 1099, // PasswordOrLockOptionList (2x) + 58474: 1100, // PasswordOrLockOptions (2x) + 58477: 1101, // PlacementOptionList (2x) + 58479: 1102, // PlanReplayerStmt (2x) + 58485: 1103, // PreparedStmt (2x) + 58490: 1104, // PrivLevel (2x) + 58493: 1105, // PurgeImportStmt (2x) + 58494: 1106, // QuickOptional (2x) + 58495: 1107, // RecoverTableStmt (2x) + 58497: 1108, // ReferOpt (2x) + 58499: 1109, // RegexpSym (2x) + 58501: 1110, // RenameTableStmt (2x) + 58502: 1111, // RenameUserStmt (2x) + 58504: 1112, // RepeatableOpt (2x) + 58510: 1113, // RestartStmt (2x) + 58512: 1114, // ResumeImportStmt (2x) 57514: 1115, // revoke (2x) - 58512: 1116, // RevokeRoleStmt (2x) - 58513: 1117, // RevokeStmt (2x) - 58516: 1118, // RoleOrPrivElemList (2x) - 58517: 1119, // RoleSpec (2x) - 58539: 1120, // SelectStmtOpt (2x) - 58542: 1121, // SelectStmtSQLCache (2x) - 58546: 1122, // SetBindingStmt (2x) - 58547: 1123, // SetDefaultRoleOpt (2x) - 58548: 1124, // SetDefaultRoleStmt (2x) - 58558: 1125, // SetRoleStmt (2x) - 58561: 1126, // ShowImportStmt (2x) - 58566: 1127, // ShowProfileType (2x) - 58569: 1128, // ShowStmt (2x) - 58570: 1129, // ShowTableAliasOpt (2x) - 58572: 1130, // ShutdownStmt (2x) - 58573: 1131, // SignedLiteral (2x) - 58577: 1132, // SplitOption (2x) - 58578: 1133, // SplitRegionStmt (2x) - 58582: 1134, // Statement (2x) - 58585: 1135, // StatsOptionsOpt (2x) - 58586: 1136, // StatsPersistentVal (2x) - 58587: 1137, // StatsType (2x) - 58588: 1138, // StopImportStmt (2x) - 58595: 1139, // SubPartDefinition (2x) - 58598: 1140, // SubPartitionMethod (2x) - 58603: 1141, // Symbol (2x) - 58609: 1142, // TableElementList (2x) - 58612: 1143, // TableLock (2x) - 58616: 1144, // TableNameListOpt (2x) - 58623: 1145, // TableOrTables (2x) - 58632: 1146, // TablesTerminalSym (2x) - 58630: 1147, // TableToTable (2x) - 58634: 1148, // TextStringList (2x) - 58639: 1149, // TraceStmt (2x) - 58644: 1150, // TruncateTableStmt (2x) - 58647: 1151, // UnlockTablesStmt (2x) - 58653: 1152, // UserToUser (2x) - 58650: 1153, // UseStmt (2x) - 58665: 1154, // Varchar (2x) - 58668: 1155, // VariableAssignmentList (2x) - 58677: 1156, // WhenClause (2x) - 58682: 1157, // WindowDefinition (2x) - 58685: 1158, // WindowFrameBound (2x) - 58692: 1159, // WindowSpec (2x) - 58697: 1160, // WithGrantOptionOpt (2x) - 58698: 1161, // WithList (2x) - 58702: 1162, // Writeable (2x) + 58513: 1116, // RevokeRoleStmt (2x) + 58514: 1117, // RevokeStmt (2x) + 58517: 1118, // RoleOrPrivElemList (2x) + 58518: 1119, // RoleSpec (2x) + 58540: 1120, // SelectStmtOpt (2x) + 58543: 1121, // SelectStmtSQLCache (2x) + 58547: 1122, // SetBindingStmt (2x) + 58548: 1123, // SetDefaultRoleOpt (2x) + 58549: 1124, // SetDefaultRoleStmt (2x) + 58559: 1125, // SetRoleStmt (2x) + 58562: 1126, // ShowImportStmt (2x) + 58567: 1127, // ShowProfileType (2x) + 58570: 1128, // ShowStmt (2x) + 58571: 1129, // ShowTableAliasOpt (2x) + 58573: 1130, // ShutdownStmt (2x) + 58574: 1131, // SignedLiteral (2x) + 58578: 1132, // SplitOption (2x) + 58579: 1133, // SplitRegionStmt (2x) + 58583: 1134, // Statement (2x) + 58586: 1135, // StatsOptionsOpt (2x) + 58587: 1136, // StatsPersistentVal (2x) + 58588: 1137, // StatsType (2x) + 58589: 1138, // StopImportStmt (2x) + 58596: 1139, // SubPartDefinition (2x) + 58599: 1140, // SubPartitionMethod (2x) + 58604: 1141, // Symbol (2x) + 58610: 1142, // TableElementList (2x) + 58613: 1143, // TableLock (2x) + 58617: 1144, // TableNameListOpt (2x) + 58624: 1145, // TableOrTables (2x) + 58633: 1146, // TablesTerminalSym (2x) + 58631: 1147, // TableToTable (2x) + 58635: 1148, // TextStringList (2x) + 58640: 1149, // TraceStmt (2x) + 58645: 1150, // TruncateTableStmt (2x) + 58648: 1151, // UnlockTablesStmt (2x) + 58654: 1152, // UserToUser (2x) + 58651: 1153, // UseStmt (2x) + 58666: 1154, // Varchar (2x) + 58669: 1155, // VariableAssignmentList (2x) + 58678: 1156, // WhenClause (2x) + 58683: 1157, // WindowDefinition (2x) + 58686: 1158, // WindowFrameBound (2x) + 58693: 1159, // WindowSpec (2x) + 58698: 1160, // WithGrantOptionOpt (2x) + 58699: 1161, // WithList (2x) + 58703: 1162, // Writeable (2x) 58113: 1163, // AdminShowSlow (1x) - 58122: 1164, // AlterOrderList (1x) - 58125: 1165, // AlterSequenceOptionList (1x) - 58127: 1166, // AlterTablePartitionOpt (1x) - 58129: 1167, // AlterTableSpecList (1x) - 58130: 1168, // AlterTableSpecListOpt (1x) - 58134: 1169, // AnalyzeOptionList (1x) - 58137: 1170, // AnyOrAll (1x) - 58139: 1171, // AsOfClauseOpt (1x) - 58140: 1172, // AsOpt (1x) - 58145: 1173, // AuthOption (1x) - 58146: 1174, // AuthPlugin (1x) - 58157: 1175, // BetweenOrNotOp (1x) - 58159: 1176, // BindingStatusType (1x) - 58162: 1177, // BitValueType (1x) - 58163: 1178, // BlobType (1x) - 58166: 1179, // BooleanType (1x) - 57370: 1180, // both (1x) - 58177: 1181, // CharsetNameOrDefault (1x) - 58178: 1182, // CharsetOpt (1x) - 58180: 1183, // ClearPasswordExpireOptions (1x) - 58184: 1184, // ColumnFormat (1x) - 58186: 1185, // ColumnList (1x) - 58193: 1186, // ColumnNameOrUserVariableList (1x) - 58190: 1187, // ColumnNameOrUserVarListOpt (1x) - 58191: 1188, // ColumnNameOrUserVarListOptWithBrackets (1x) - 58199: 1189, // ColumnSetValueList (1x) - 58203: 1190, // CompareOp (1x) - 58207: 1191, // ConnectionOptionList (1x) - 58210: 1192, // ConstraintElem (1x) - 58218: 1193, // CreateSequenceOptionListOpt (1x) - 58222: 1194, // CreateTableSelectOpt (1x) - 58225: 1195, // CreateViewSelectOpt (1x) - 58232: 1196, // DatabaseOptionListOpt (1x) - 58234: 1197, // DateAndTimeType (1x) - 58229: 1198, // DBNameList (1x) - 58240: 1199, // DefaultValueExpr (1x) - 58260: 1200, // DryRunOptions (1x) - 57409: 1201, // dual (1x) - 58262: 1202, // ElseOpt (1x) - 58267: 1203, // EnforcedOrNotOrNotNullOpt (1x) - 58281: 1204, // ExpressionOpt (1x) - 58283: 1205, // FetchFirstOpt (1x) - 58285: 1206, // FieldAsName (1x) - 58286: 1207, // FieldAsNameOpt (1x) - 58288: 1208, // FieldItemList (1x) - 58290: 1209, // FieldList (1x) - 58296: 1210, // FirstOrNext (1x) - 58297: 1211, // FixedPointType (1x) - 58299: 1212, // FlashbackToNewName (1x) - 58301: 1213, // FloatingPointType (1x) - 58302: 1214, // FlushOption (1x) - 58305: 1215, // FromDual (1x) - 58307: 1216, // FulltextSearchModifierOpt (1x) - 58308: 1217, // FuncDatetimePrec (1x) - 58321: 1218, // GetFormatSelector (1x) - 58328: 1219, // HandleRangeList (1x) - 58333: 1220, // IdentListWithParenOpt (1x) - 58337: 1221, // IfNotRunning (1x) - 58338: 1222, // IfRunning (1x) - 58339: 1223, // IgnoreLines (1x) - 58341: 1224, // ImportTruncate (1x) - 58347: 1225, // IndexHintScope (1x) - 58350: 1226, // IndexKeyTypeOpt (1x) - 58359: 1227, // IndexPartSpecificationListOpt (1x) - 58362: 1228, // IndexTypeOpt (1x) - 58342: 1229, // InOrNotOp (1x) - 58365: 1230, // InstanceOption (1x) - 58367: 1231, // IntegerType (1x) - 58370: 1232, // IsolationLevel (1x) - 58369: 1233, // IsOrNotOp (1x) - 57460: 1234, // leading (1x) - 58378: 1235, // LikeEscapeOpt (1x) - 58379: 1236, // LikeOrNotOp (1x) - 58380: 1237, // LikeTableWithOrWithoutParen (1x) - 58385: 1238, // LinesTerminated (1x) - 58388: 1239, // LoadDataSetList (1x) - 58389: 1240, // LoadDataSetSpecOpt (1x) - 58396: 1241, // LockType (1x) - 58397: 1242, // LogTypeOpt (1x) - 58398: 1243, // Match (1x) - 58399: 1244, // MatchOpt (1x) - 58400: 1245, // MaxIndexNumOpt (1x) - 58401: 1246, // MaxMinutesOpt (1x) - 58404: 1247, // NChar (1x) - 58418: 1248, // NumericType (1x) - 58406: 1249, // NVarchar (1x) - 58423: 1250, // OnDeleteUpdateOpt (1x) - 58424: 1251, // OnDuplicateKeyUpdate (1x) - 58426: 1252, // OptBinMod (1x) - 58428: 1253, // OptCharset (1x) - 58431: 1254, // OptErrors (1x) - 58432: 1255, // OptExistingWindowName (1x) - 58434: 1256, // OptFromFirstLast (1x) - 58436: 1257, // OptGConcatSeparator (1x) - 58451: 1258, // OptionalShardColumn (1x) - 58442: 1259, // OptPartitionClause (1x) - 58443: 1260, // OptTable (1x) - 58446: 1261, // OptWindowFrameClause (1x) - 58447: 1262, // OptWindowOrderByClause (1x) - 58453: 1263, // Order (1x) - 58452: 1264, // OrReplace (1x) - 57444: 1265, // outfile (1x) - 58459: 1266, // PartDefValuesOpt (1x) - 58463: 1267, // PartitionKeyAlgorithmOpt (1x) - 58464: 1268, // PartitionMethod (1x) - 58467: 1269, // PartitionNumOpt (1x) - 58474: 1270, // PerDB (1x) - 58475: 1271, // PerTable (1x) - 57498: 1272, // precisionType (1x) - 58483: 1273, // PrepareSQL (1x) - 58491: 1274, // ProcedureCall (1x) - 57505: 1275, // recursive (1x) - 58497: 1276, // RegexpOrNotOp (1x) - 58502: 1277, // ReorganizePartitionRuleOpt (1x) - 58507: 1278, // RequireList (1x) - 58518: 1279, // RoleSpecList (1x) - 58525: 1280, // RowOrRows (1x) - 58532: 1281, // SelectStmtFieldList (1x) - 58540: 1282, // SelectStmtOpts (1x) - 58541: 1283, // SelectStmtOptsList (1x) - 58545: 1284, // SequenceOptionList (1x) - 58550: 1285, // SetOpr (1x) - 58557: 1286, // SetRoleOpt (1x) - 58562: 1287, // ShowIndexKwd (1x) - 58563: 1288, // ShowLikeOrWhereOpt (1x) - 58564: 1289, // ShowPlacementTarget (1x) - 58565: 1290, // ShowProfileArgsOpt (1x) - 58567: 1291, // ShowProfileTypes (1x) - 58568: 1292, // ShowProfileTypesOpt (1x) - 58571: 1293, // ShowTargetFilterable (1x) - 57525: 1294, // spatial (1x) - 58579: 1295, // SplitSyntaxOption (1x) - 57530: 1296, // ssl (1x) - 58580: 1297, // Start (1x) - 58581: 1298, // Starting (1x) - 57531: 1299, // starting (1x) - 58583: 1300, // StatementList (1x) - 58584: 1301, // StatementScope (1x) - 58589: 1302, // StorageMedia (1x) - 57536: 1303, // stored (1x) - 58590: 1304, // StringList (1x) - 58593: 1305, // StringNameOrBRIEOptionKeyword (1x) - 58594: 1306, // StringType (1x) - 58596: 1307, // SubPartDefinitionList (1x) - 58597: 1308, // SubPartDefinitionListOpt (1x) - 58599: 1309, // SubPartitionNumOpt (1x) - 58600: 1310, // SubPartitionOpt (1x) - 58610: 1311, // TableElementListOpt (1x) - 58613: 1312, // TableLockList (1x) - 58626: 1313, // TableRefsClause (1x) - 58627: 1314, // TableSampleMethodOpt (1x) - 58628: 1315, // TableSampleOpt (1x) - 58629: 1316, // TableSampleUnitOpt (1x) - 58631: 1317, // TableToTableList (1x) - 58635: 1318, // TextType (1x) - 57543: 1319, // trailing (1x) - 58643: 1320, // TrimDirection (1x) - 58645: 1321, // Type (1x) - 58654: 1322, // UserToUserList (1x) - 58656: 1323, // UserVariableList (1x) - 58659: 1324, // UsingRoles (1x) - 58661: 1325, // Values (1x) - 58663: 1326, // ValuesOpt (1x) - 58670: 1327, // ViewAlgorithm (1x) - 58671: 1328, // ViewCheckOption (1x) - 58672: 1329, // ViewDefiner (1x) - 58673: 1330, // ViewFieldList (1x) - 58674: 1331, // ViewName (1x) - 58675: 1332, // ViewSQLSecurity (1x) - 57563: 1333, // virtual (1x) - 58676: 1334, // VirtualOrStored (1x) - 58678: 1335, // WhenClauseList (1x) - 58681: 1336, // WindowClauseOptional (1x) - 58683: 1337, // WindowDefinitionList (1x) - 58684: 1338, // WindowFrameBetween (1x) - 58686: 1339, // WindowFrameExtent (1x) - 58688: 1340, // WindowFrameUnits (1x) - 58691: 1341, // WindowNameOrSpec (1x) - 58693: 1342, // WindowSpecDetails (1x) - 58699: 1343, // WithReadLockOpt (1x) - 58700: 1344, // WithValidation (1x) - 58701: 1345, // WithValidationOpt (1x) - 58703: 1346, // Year (1x) - 58112: 1347, // $default (0x) - 58073: 1348, // andnot (0x) - 58143: 1349, // AssignmentListOpt (0x) - 58183: 1350, // ColumnDefList (0x) - 58200: 1351, // CommaOpt (0x) - 58096: 1352, // createTableSelect (0x) - 58087: 1353, // empty (0x) - 57345: 1354, // error (0x) - 58111: 1355, // higherThanComma (0x) - 58105: 1356, // higherThanParenthese (0x) - 58094: 1357, // insertValues (0x) - 57352: 1358, // invalid (0x) - 58097: 1359, // lowerThanCharsetKwd (0x) - 58110: 1360, // lowerThanComma (0x) - 58095: 1361, // lowerThanCreateTableSelect (0x) - 58107: 1362, // lowerThanEq (0x) - 58102: 1363, // lowerThanFunction (0x) - 58093: 1364, // lowerThanInsertValues (0x) - 58098: 1365, // lowerThanKey (0x) - 58099: 1366, // lowerThanLocal (0x) - 58109: 1367, // lowerThanNot (0x) - 58106: 1368, // lowerThanOn (0x) - 58104: 1369, // lowerThanParenthese (0x) - 58100: 1370, // lowerThanRemove (0x) - 58088: 1371, // lowerThanSelectOpt (0x) - 58092: 1372, // lowerThanSelectStmt (0x) - 58091: 1373, // lowerThanSetKeyword (0x) - 58090: 1374, // lowerThanStringLitToken (0x) - 58089: 1375, // lowerThanValueKeyword (0x) - 58101: 1376, // lowerThenOrder (0x) - 58108: 1377, // neg (0x) - 57356: 1378, // odbcDateType (0x) - 57358: 1379, // odbcTimestampType (0x) - 57357: 1380, // odbcTimeType (0x) - 58103: 1381, // tableRefPriority (0x) + 58115: 1164, // AdminStmtLimitOpt (1x) + 58123: 1165, // AlterOrderList (1x) + 58126: 1166, // AlterSequenceOptionList (1x) + 58128: 1167, // AlterTablePartitionOpt (1x) + 58130: 1168, // AlterTableSpecList (1x) + 58131: 1169, // AlterTableSpecListOpt (1x) + 58135: 1170, // AnalyzeOptionList (1x) + 58138: 1171, // AnyOrAll (1x) + 58140: 1172, // AsOfClauseOpt (1x) + 58141: 1173, // AsOpt (1x) + 58146: 1174, // AuthOption (1x) + 58147: 1175, // AuthPlugin (1x) + 58158: 1176, // BetweenOrNotOp (1x) + 58160: 1177, // BindingStatusType (1x) + 58163: 1178, // BitValueType (1x) + 58164: 1179, // BlobType (1x) + 58167: 1180, // BooleanType (1x) + 57370: 1181, // both (1x) + 58178: 1182, // CharsetNameOrDefault (1x) + 58179: 1183, // CharsetOpt (1x) + 58181: 1184, // ClearPasswordExpireOptions (1x) + 58185: 1185, // ColumnFormat (1x) + 58187: 1186, // ColumnList (1x) + 58194: 1187, // ColumnNameOrUserVariableList (1x) + 58191: 1188, // ColumnNameOrUserVarListOpt (1x) + 58192: 1189, // ColumnNameOrUserVarListOptWithBrackets (1x) + 58200: 1190, // ColumnSetValueList (1x) + 58204: 1191, // CompareOp (1x) + 58208: 1192, // ConnectionOptionList (1x) + 58211: 1193, // ConstraintElem (1x) + 58219: 1194, // CreateSequenceOptionListOpt (1x) + 58223: 1195, // CreateTableSelectOpt (1x) + 58226: 1196, // CreateViewSelectOpt (1x) + 58233: 1197, // DatabaseOptionListOpt (1x) + 58235: 1198, // DateAndTimeType (1x) + 58230: 1199, // DBNameList (1x) + 58241: 1200, // DefaultValueExpr (1x) + 58261: 1201, // DryRunOptions (1x) + 57409: 1202, // dual (1x) + 58263: 1203, // ElseOpt (1x) + 58268: 1204, // EnforcedOrNotOrNotNullOpt (1x) + 58282: 1205, // ExpressionOpt (1x) + 58284: 1206, // FetchFirstOpt (1x) + 58286: 1207, // FieldAsName (1x) + 58287: 1208, // FieldAsNameOpt (1x) + 58289: 1209, // FieldItemList (1x) + 58291: 1210, // FieldList (1x) + 58297: 1211, // FirstOrNext (1x) + 58298: 1212, // FixedPointType (1x) + 58300: 1213, // FlashbackToNewName (1x) + 58302: 1214, // FloatingPointType (1x) + 58303: 1215, // FlushOption (1x) + 58306: 1216, // FromDual (1x) + 58308: 1217, // FulltextSearchModifierOpt (1x) + 58309: 1218, // FuncDatetimePrec (1x) + 58322: 1219, // GetFormatSelector (1x) + 58329: 1220, // HandleRangeList (1x) + 58334: 1221, // IdentListWithParenOpt (1x) + 58338: 1222, // IfNotRunning (1x) + 58339: 1223, // IfRunning (1x) + 58340: 1224, // IgnoreLines (1x) + 58342: 1225, // ImportTruncate (1x) + 58348: 1226, // IndexHintScope (1x) + 58351: 1227, // IndexKeyTypeOpt (1x) + 58360: 1228, // IndexPartSpecificationListOpt (1x) + 58363: 1229, // IndexTypeOpt (1x) + 58343: 1230, // InOrNotOp (1x) + 58366: 1231, // InstanceOption (1x) + 58368: 1232, // IntegerType (1x) + 58371: 1233, // IsolationLevel (1x) + 58370: 1234, // IsOrNotOp (1x) + 57460: 1235, // leading (1x) + 58379: 1236, // LikeEscapeOpt (1x) + 58380: 1237, // LikeOrNotOp (1x) + 58381: 1238, // LikeTableWithOrWithoutParen (1x) + 58386: 1239, // LinesTerminated (1x) + 58389: 1240, // LoadDataSetList (1x) + 58390: 1241, // LoadDataSetSpecOpt (1x) + 58397: 1242, // LockType (1x) + 58398: 1243, // LogTypeOpt (1x) + 58399: 1244, // Match (1x) + 58400: 1245, // MatchOpt (1x) + 58401: 1246, // MaxIndexNumOpt (1x) + 58402: 1247, // MaxMinutesOpt (1x) + 58405: 1248, // NChar (1x) + 58419: 1249, // NumericType (1x) + 58407: 1250, // NVarchar (1x) + 58424: 1251, // OnDeleteUpdateOpt (1x) + 58425: 1252, // OnDuplicateKeyUpdate (1x) + 58427: 1253, // OptBinMod (1x) + 58429: 1254, // OptCharset (1x) + 58432: 1255, // OptErrors (1x) + 58433: 1256, // OptExistingWindowName (1x) + 58435: 1257, // OptFromFirstLast (1x) + 58437: 1258, // OptGConcatSeparator (1x) + 58452: 1259, // OptionalShardColumn (1x) + 58443: 1260, // OptPartitionClause (1x) + 58444: 1261, // OptTable (1x) + 58447: 1262, // OptWindowFrameClause (1x) + 58448: 1263, // OptWindowOrderByClause (1x) + 58454: 1264, // Order (1x) + 58453: 1265, // OrReplace (1x) + 57444: 1266, // outfile (1x) + 58460: 1267, // PartDefValuesOpt (1x) + 58464: 1268, // PartitionKeyAlgorithmOpt (1x) + 58465: 1269, // PartitionMethod (1x) + 58468: 1270, // PartitionNumOpt (1x) + 58475: 1271, // PerDB (1x) + 58476: 1272, // PerTable (1x) + 57498: 1273, // precisionType (1x) + 58484: 1274, // PrepareSQL (1x) + 58492: 1275, // ProcedureCall (1x) + 57505: 1276, // recursive (1x) + 58498: 1277, // RegexpOrNotOp (1x) + 58503: 1278, // ReorganizePartitionRuleOpt (1x) + 58508: 1279, // RequireList (1x) + 58519: 1280, // RoleSpecList (1x) + 58526: 1281, // RowOrRows (1x) + 58533: 1282, // SelectStmtFieldList (1x) + 58541: 1283, // SelectStmtOpts (1x) + 58542: 1284, // SelectStmtOptsList (1x) + 58546: 1285, // SequenceOptionList (1x) + 58551: 1286, // SetOpr (1x) + 58558: 1287, // SetRoleOpt (1x) + 58563: 1288, // ShowIndexKwd (1x) + 58564: 1289, // ShowLikeOrWhereOpt (1x) + 58565: 1290, // ShowPlacementTarget (1x) + 58566: 1291, // ShowProfileArgsOpt (1x) + 58568: 1292, // ShowProfileTypes (1x) + 58569: 1293, // ShowProfileTypesOpt (1x) + 58572: 1294, // ShowTargetFilterable (1x) + 57525: 1295, // spatial (1x) + 58580: 1296, // SplitSyntaxOption (1x) + 57530: 1297, // ssl (1x) + 58581: 1298, // Start (1x) + 58582: 1299, // Starting (1x) + 57531: 1300, // starting (1x) + 58584: 1301, // StatementList (1x) + 58585: 1302, // StatementScope (1x) + 58590: 1303, // StorageMedia (1x) + 57536: 1304, // stored (1x) + 58591: 1305, // StringList (1x) + 58594: 1306, // StringNameOrBRIEOptionKeyword (1x) + 58595: 1307, // StringType (1x) + 58597: 1308, // SubPartDefinitionList (1x) + 58598: 1309, // SubPartDefinitionListOpt (1x) + 58600: 1310, // SubPartitionNumOpt (1x) + 58601: 1311, // SubPartitionOpt (1x) + 58611: 1312, // TableElementListOpt (1x) + 58614: 1313, // TableLockList (1x) + 58627: 1314, // TableRefsClause (1x) + 58628: 1315, // TableSampleMethodOpt (1x) + 58629: 1316, // TableSampleOpt (1x) + 58630: 1317, // TableSampleUnitOpt (1x) + 58632: 1318, // TableToTableList (1x) + 58636: 1319, // TextType (1x) + 57543: 1320, // trailing (1x) + 58644: 1321, // TrimDirection (1x) + 58646: 1322, // Type (1x) + 58655: 1323, // UserToUserList (1x) + 58657: 1324, // UserVariableList (1x) + 58660: 1325, // UsingRoles (1x) + 58662: 1326, // Values (1x) + 58664: 1327, // ValuesOpt (1x) + 58671: 1328, // ViewAlgorithm (1x) + 58672: 1329, // ViewCheckOption (1x) + 58673: 1330, // ViewDefiner (1x) + 58674: 1331, // ViewFieldList (1x) + 58675: 1332, // ViewName (1x) + 58676: 1333, // ViewSQLSecurity (1x) + 57563: 1334, // virtual (1x) + 58677: 1335, // VirtualOrStored (1x) + 58679: 1336, // WhenClauseList (1x) + 58682: 1337, // WindowClauseOptional (1x) + 58684: 1338, // WindowDefinitionList (1x) + 58685: 1339, // WindowFrameBetween (1x) + 58687: 1340, // WindowFrameExtent (1x) + 58689: 1341, // WindowFrameUnits (1x) + 58692: 1342, // WindowNameOrSpec (1x) + 58694: 1343, // WindowSpecDetails (1x) + 58700: 1344, // WithReadLockOpt (1x) + 58701: 1345, // WithValidation (1x) + 58702: 1346, // WithValidationOpt (1x) + 58704: 1347, // Year (1x) + 58112: 1348, // $default (0x) + 58073: 1349, // andnot (0x) + 58144: 1350, // AssignmentListOpt (0x) + 58184: 1351, // ColumnDefList (0x) + 58201: 1352, // CommaOpt (0x) + 58096: 1353, // createTableSelect (0x) + 58087: 1354, // empty (0x) + 57345: 1355, // error (0x) + 58111: 1356, // higherThanComma (0x) + 58105: 1357, // higherThanParenthese (0x) + 58094: 1358, // insertValues (0x) + 57352: 1359, // invalid (0x) + 58097: 1360, // lowerThanCharsetKwd (0x) + 58110: 1361, // lowerThanComma (0x) + 58095: 1362, // lowerThanCreateTableSelect (0x) + 58107: 1363, // lowerThanEq (0x) + 58102: 1364, // lowerThanFunction (0x) + 58093: 1365, // lowerThanInsertValues (0x) + 58098: 1366, // lowerThanKey (0x) + 58099: 1367, // lowerThanLocal (0x) + 58109: 1368, // lowerThanNot (0x) + 58106: 1369, // lowerThanOn (0x) + 58104: 1370, // lowerThanParenthese (0x) + 58100: 1371, // lowerThanRemove (0x) + 58088: 1372, // lowerThanSelectOpt (0x) + 58092: 1373, // lowerThanSelectStmt (0x) + 58091: 1374, // lowerThanSetKeyword (0x) + 58090: 1375, // lowerThanStringLitToken (0x) + 58089: 1376, // lowerThanValueKeyword (0x) + 58101: 1377, // lowerThenOrder (0x) + 58108: 1378, // neg (0x) + 57356: 1379, // odbcDateType (0x) + 57358: 1380, // odbcTimestampType (0x) + 57357: 1381, // odbcTimeType (0x) + 58103: 1382, // tableRefPriority (0x) } yySymNames = []string{ @@ -2375,13 +2376,13 @@ var ( "end", "global", "next_row_id", + "offset", "policy", "predicate", "temporary", "unbounded", "user", "jsonType", - "offset", "planCache", "prepare", "role", @@ -2957,8 +2958,8 @@ var ( "unsigned", "over", "zerofill", - "ColumnName", "LengthNum", + "ColumnName", "distinct", "distinctRow", "WindowingClause", @@ -3379,6 +3380,7 @@ var ( "WithList", "Writeable", "AdminShowSlow", + "AdminStmtLimitOpt", "AlterOrderList", "AlterSequenceOptionList", "AlterTablePartitionOpt", @@ -3601,10 +3603,11 @@ var ( yyReductions = []struct{ xsym, components int }{ {0, 1}, - {1297, 1}, + {1298, 1}, {805, 6}, {805, 8}, {805, 10}, + {805, 5}, {805, 7}, {1101, 1}, {1101, 2}, @@ -3628,11 +3631,11 @@ var ( {924, 3}, {1135, 3}, {1135, 3}, - {1166, 1}, - {1166, 2}, - {1166, 4}, - {1166, 3}, - {1166, 3}, + {1167, 1}, + {1167, 2}, + {1167, 4}, + {1167, 3}, + {1167, 3}, {1075, 0}, {1075, 3}, {987, 1}, @@ -3692,14 +3695,14 @@ var ( {987, 4}, {987, 1}, {987, 1}, - {1277, 0}, - {1277, 5}, + {1278, 0}, + {1278, 5}, {830, 1}, {830, 1}, - {1345, 0}, - {1345, 1}, - {1344, 2}, - {1344, 2}, + {1346, 0}, + {1346, 1}, + {1345, 2}, + {1345, 2}, {867, 1}, {867, 1}, {868, 3}, @@ -3720,10 +3723,10 @@ var ( {927, 0}, {927, 1}, {927, 2}, - {1168, 0}, + {1169, 0}, + {1169, 1}, {1168, 1}, - {1167, 1}, - {1167, 3}, + {1168, 3}, {788, 1}, {788, 3}, {831, 0}, @@ -3731,27 +3734,27 @@ var ( {831, 2}, {1141, 1}, {1110, 3}, - {1317, 1}, - {1317, 3}, + {1318, 1}, + {1318, 3}, {1147, 3}, {1111, 3}, - {1322, 1}, - {1322, 3}, + {1323, 1}, + {1323, 3}, {1152, 3}, {1107, 5}, {1107, 3}, {1107, 4}, {1048, 4}, - {1212, 0}, - {1212, 2}, + {1213, 0}, + {1213, 2}, {1133, 6}, {1133, 8}, {1132, 6}, {1132, 2}, - {1295, 0}, - {1295, 2}, - {1295, 1}, - {1295, 3}, + {1296, 0}, + {1296, 2}, + {1296, 1}, + {1296, 3}, {990, 5}, {990, 6}, {990, 7}, @@ -3767,8 +3770,8 @@ var ( {979, 2}, {803, 0}, {803, 2}, - {1169, 1}, - {1169, 3}, + {1170, 1}, + {1170, 3}, {989, 2}, {989, 2}, {989, 3}, @@ -3778,8 +3781,8 @@ var ( {890, 3}, {923, 1}, {923, 3}, - {1349, 0}, - {1349, 1}, + {1350, 0}, + {1350, 1}, {843, 1}, {843, 2}, {843, 2}, @@ -3790,29 +3793,29 @@ var ( {843, 4}, {843, 5}, {991, 2}, - {1350, 1}, - {1350, 3}, + {1351, 1}, + {1351, 3}, {846, 3}, {846, 3}, - {742, 1}, - {742, 3}, - {742, 5}, + {743, 1}, + {743, 3}, + {743, 5}, {807, 1}, {807, 3}, {1000, 0}, {1000, 1}, - {1220, 0}, - {1220, 3}, + {1221, 0}, + {1221, 3}, {875, 1}, {875, 3}, - {1187, 0}, + {1188, 0}, + {1188, 1}, {1187, 1}, - {1186, 1}, - {1186, 3}, + {1187, 3}, {1001, 1}, {1001, 1}, - {1188, 0}, - {1188, 3}, + {1189, 0}, + {1189, 3}, {847, 1}, {847, 2}, {954, 0}, @@ -3823,8 +3826,8 @@ var ( {932, 2}, {1039, 0}, {1039, 1}, - {1203, 2}, - {1203, 1}, + {1204, 2}, + {1204, 1}, {926, 2}, {926, 1}, {926, 1}, @@ -3843,49 +3846,49 @@ var ( {926, 2}, {926, 2}, {926, 2}, - {1302, 1}, - {1302, 1}, - {1302, 1}, - {1184, 1}, - {1184, 1}, - {1184, 1}, + {1303, 1}, + {1303, 1}, + {1303, 1}, + {1185, 1}, + {1185, 1}, + {1185, 1}, {935, 0}, {935, 2}, - {1334, 0}, - {1334, 1}, - {1334, 1}, + {1335, 0}, + {1335, 1}, + {1335, 1}, {1002, 1}, {1002, 2}, {1003, 0}, {1003, 1}, - {1192, 7}, - {1192, 7}, - {1192, 7}, - {1192, 7}, - {1192, 8}, - {1192, 5}, - {1243, 2}, - {1243, 2}, - {1243, 2}, - {1244, 0}, - {1244, 1}, + {1193, 7}, + {1193, 7}, + {1193, 7}, + {1193, 7}, + {1193, 8}, + {1193, 5}, + {1244, 2}, + {1244, 2}, + {1244, 2}, + {1245, 0}, + {1245, 1}, {908, 5}, {1085, 3}, {1086, 3}, - {1250, 0}, - {1250, 1}, - {1250, 1}, - {1250, 2}, - {1250, 2}, + {1251, 0}, + {1251, 1}, + {1251, 1}, + {1251, 2}, + {1251, 2}, {1108, 1}, {1108, 1}, {1108, 2}, {1108, 2}, {1108, 2}, - {1199, 1}, - {1199, 1}, - {1199, 1}, - {1199, 1}, + {1200, 1}, + {1200, 1}, + {1200, 1}, + {1200, 1}, {994, 3}, {994, 3}, {994, 4}, @@ -3912,13 +3915,13 @@ var ( {1137, 1}, {1137, 1}, {1137, 1}, - {1176, 1}, - {1176, 1}, + {1177, 1}, + {1177, 1}, {1015, 12}, {1031, 3}, {1011, 13}, - {1227, 0}, - {1227, 3}, + {1228, 0}, + {1228, 3}, {834, 1}, {834, 3}, {826, 3}, @@ -3928,10 +3931,10 @@ var ( {1062, 1}, {1062, 2}, {1062, 2}, - {1226, 0}, - {1226, 1}, - {1226, 1}, - {1226, 1}, + {1227, 0}, + {1227, 1}, + {1227, 1}, + {1227, 1}, {980, 4}, {980, 3}, {1009, 5}, @@ -3943,8 +3946,8 @@ var ( {848, 2}, {848, 1}, {848, 5}, - {1196, 0}, - {1196, 1}, + {1197, 0}, + {1197, 1}, {930, 1}, {930, 2}, {929, 12}, @@ -3958,33 +3961,33 @@ var ( {1097, 6}, {1140, 6}, {1140, 5}, - {1267, 0}, - {1267, 3}, - {1268, 1}, - {1268, 4}, - {1268, 5}, - {1268, 4}, - {1268, 5}, - {1268, 4}, + {1268, 0}, {1268, 3}, - {1268, 1}, + {1269, 1}, + {1269, 4}, + {1269, 5}, + {1269, 4}, + {1269, 5}, + {1269, 4}, + {1269, 3}, + {1269, 1}, {1071, 0}, {1071, 1}, + {1311, 0}, + {1311, 4}, {1310, 0}, - {1310, 4}, - {1309, 0}, - {1309, 2}, - {1269, 0}, - {1269, 2}, + {1310, 2}, + {1270, 0}, + {1270, 2}, {1096, 0}, {1096, 3}, {1095, 1}, {1095, 3}, {950, 5}, - {1308, 0}, + {1309, 0}, + {1309, 3}, + {1308, 1}, {1308, 3}, - {1307, 1}, - {1307, 3}, {1139, 3}, {949, 0}, {949, 2}, @@ -3999,49 +4002,49 @@ var ( {811, 3}, {811, 3}, {811, 1}, - {1266, 0}, - {1266, 4}, - {1266, 6}, - {1266, 1}, - {1266, 5}, - {1266, 1}, - {1266, 1}, + {1267, 0}, + {1267, 4}, + {1267, 6}, + {1267, 1}, + {1267, 5}, + {1267, 1}, + {1267, 1}, {1036, 0}, {1036, 1}, {1036, 1}, - {1172, 0}, - {1172, 1}, - {1194, 0}, - {1194, 1}, - {1194, 1}, - {1194, 1}, - {1194, 1}, + {1173, 0}, + {1173, 1}, + {1195, 0}, {1195, 1}, {1195, 1}, {1195, 1}, {1195, 1}, - {1237, 2}, - {1237, 4}, + {1196, 1}, + {1196, 1}, + {1196, 1}, + {1196, 1}, + {1238, 2}, + {1238, 4}, {1018, 11}, - {1264, 0}, - {1264, 2}, - {1327, 0}, - {1327, 3}, - {1327, 3}, - {1327, 3}, - {1329, 0}, - {1329, 3}, - {1332, 0}, - {1332, 3}, - {1332, 3}, - {1331, 1}, + {1265, 0}, + {1265, 2}, + {1328, 0}, + {1328, 3}, + {1328, 3}, + {1328, 3}, {1330, 0}, {1330, 3}, - {1185, 1}, - {1185, 3}, - {1328, 0}, - {1328, 4}, - {1328, 4}, + {1333, 0}, + {1333, 3}, + {1333, 3}, + {1332, 1}, + {1331, 0}, + {1331, 3}, + {1186, 1}, + {1186, 3}, + {1329, 0}, + {1329, 4}, + {1329, 4}, {1023, 2}, {765, 13}, {765, 9}, @@ -4106,8 +4109,8 @@ var ( {993, 2}, {993, 2}, {993, 2}, - {1198, 1}, - {1198, 3}, + {1199, 1}, + {1199, 3}, {896, 0}, {896, 2}, {893, 1}, @@ -4143,7 +4146,7 @@ var ( {895, 3}, {895, 3}, {895, 3}, - {743, 1}, + {742, 1}, {763, 1}, {732, 1}, {925, 1}, @@ -4159,21 +4162,21 @@ var ( {981, 6}, {1026, 4}, {1126, 5}, + {1223, 0}, + {1223, 2}, {1222, 0}, - {1222, 2}, - {1221, 0}, - {1221, 3}, - {1254, 0}, - {1254, 1}, + {1222, 3}, + {1255, 0}, + {1255, 1}, {1040, 0}, {1040, 1}, {1040, 2}, {1040, 2}, {1040, 2}, {1040, 2}, - {1224, 0}, - {1224, 3}, - {1224, 3}, + {1225, 0}, + {1225, 3}, + {1225, 3}, {731, 3}, {731, 3}, {731, 3}, @@ -4186,11 +4189,11 @@ var ( {731, 1}, {943, 1}, {943, 1}, - {1216, 0}, - {1216, 4}, - {1216, 7}, - {1216, 3}, - {1216, 3}, + {1217, 0}, + {1217, 4}, + {1217, 7}, + {1217, 3}, + {1217, 3}, {734, 1}, {734, 1}, {733, 1}, @@ -4209,27 +4212,27 @@ var ( {730, 4}, {730, 5}, {730, 1}, - {1190, 1}, - {1190, 1}, - {1190, 1}, - {1190, 1}, - {1190, 1}, - {1190, 1}, - {1190, 1}, - {1190, 1}, - {1175, 1}, - {1175, 2}, - {1233, 1}, - {1233, 2}, - {1229, 1}, - {1229, 2}, - {1236, 1}, - {1236, 2}, - {1276, 1}, - {1276, 2}, - {1170, 1}, - {1170, 1}, - {1170, 1}, + {1191, 1}, + {1191, 1}, + {1191, 1}, + {1191, 1}, + {1191, 1}, + {1191, 1}, + {1191, 1}, + {1191, 1}, + {1176, 1}, + {1176, 2}, + {1234, 1}, + {1234, 2}, + {1230, 1}, + {1230, 2}, + {1237, 1}, + {1237, 2}, + {1277, 1}, + {1277, 2}, + {1171, 1}, + {1171, 1}, + {1171, 1}, {729, 5}, {729, 3}, {729, 5}, @@ -4238,25 +4241,25 @@ var ( {729, 1}, {1109, 1}, {1109, 1}, - {1235, 0}, - {1235, 2}, + {1236, 0}, + {1236, 2}, {1045, 1}, {1045, 3}, {1045, 5}, {1045, 2}, - {1207, 0}, + {1208, 0}, + {1208, 1}, {1207, 1}, - {1206, 1}, - {1206, 2}, - {1206, 1}, - {1206, 2}, - {1209, 1}, - {1209, 3}, + {1207, 2}, + {1207, 1}, + {1207, 2}, + {1210, 1}, + {1210, 3}, {937, 3}, {1057, 0}, {1057, 2}, - {1171, 0}, - {1171, 1}, + {1172, 0}, + {1172, 1}, {922, 3}, {780, 0}, {780, 2}, @@ -4277,8 +4280,8 @@ var ( {940, 1}, {940, 3}, {940, 3}, - {1228, 0}, - {1228, 1}, + {1229, 0}, + {1229, 1}, {856, 2}, {856, 2}, {903, 1}, @@ -4758,10 +4761,10 @@ var ( {664, 1}, {664, 1}, {996, 2}, - {1274, 1}, - {1274, 3}, - {1274, 4}, - {1274, 6}, + {1275, 1}, + {1275, 3}, + {1275, 4}, + {1275, 6}, {773, 9}, {1064, 0}, {1064, 1}, @@ -4781,18 +4784,18 @@ var ( {973, 1}, {973, 3}, {838, 3}, - {1326, 0}, + {1327, 0}, + {1327, 1}, + {1326, 3}, {1326, 1}, - {1325, 3}, - {1325, 1}, {795, 1}, {795, 1}, {1004, 3}, - {1189, 0}, - {1189, 1}, - {1189, 3}, - {1251, 0}, - {1251, 5}, + {1190, 0}, + {1190, 1}, + {1190, 3}, + {1252, 0}, + {1252, 5}, {774, 6}, {711, 1}, {711, 1}, @@ -4808,16 +4811,16 @@ var ( {711, 2}, {712, 1}, {712, 2}, - {1164, 1}, - {1164, 3}, + {1165, 1}, + {1165, 3}, {983, 2}, {766, 3}, {898, 1}, {898, 3}, {869, 1}, {869, 2}, - {1263, 1}, - {1263, 1}, + {1264, 1}, + {1264, 1}, {947, 0}, {947, 1}, {947, 1}, @@ -4960,17 +4963,17 @@ var ( {716, 7}, {716, 1}, {716, 8}, - {1218, 1}, - {1218, 1}, - {1218, 1}, - {1218, 1}, + {1219, 1}, + {1219, 1}, + {1219, 1}, + {1219, 1}, {718, 1}, {718, 1}, {719, 1}, {719, 1}, - {1320, 1}, - {1320, 1}, - {1320, 1}, + {1321, 1}, + {1321, 1}, + {1321, 1}, {722, 4}, {722, 6}, {722, 1}, @@ -5001,13 +5004,13 @@ var ( {724, 8}, {724, 8}, {724, 9}, - {1257, 0}, - {1257, 2}, + {1258, 0}, + {1258, 2}, {714, 4}, {714, 6}, - {1217, 0}, - {1217, 2}, - {1217, 3}, + {1218, 0}, + {1218, 2}, + {1218, 3}, {821, 1}, {821, 1}, {821, 1}, @@ -5037,13 +5040,13 @@ var ( {802, 1}, {802, 1}, {802, 1}, - {1204, 0}, - {1204, 1}, - {1335, 1}, - {1335, 2}, + {1205, 0}, + {1205, 1}, + {1336, 1}, + {1336, 2}, {1156, 4}, - {1202, 0}, - {1202, 2}, + {1203, 0}, + {1203, 2}, {997, 2}, {997, 3}, {997, 1}, @@ -5075,12 +5078,12 @@ var ( {1106, 0}, {1106, 1}, {1103, 4}, - {1273, 1}, - {1273, 1}, + {1274, 1}, + {1274, 1}, {1041, 2}, {1041, 4}, - {1323, 1}, - {1323, 3}, + {1324, 1}, + {1324, 3}, {1020, 3}, {1021, 1}, {1021, 1}, @@ -5101,16 +5104,16 @@ var ( {748, 4}, {749, 3}, {750, 7}, - {1315, 0}, - {1315, 7}, - {1315, 5}, - {1314, 0}, - {1314, 1}, - {1314, 1}, - {1314, 1}, {1316, 0}, - {1316, 1}, - {1316, 1}, + {1316, 7}, + {1316, 5}, + {1315, 0}, + {1315, 1}, + {1315, 1}, + {1315, 1}, + {1317, 0}, + {1317, 1}, + {1317, 1}, {1112, 0}, {1112, 4}, {747, 7}, @@ -5125,34 +5128,34 @@ var ( {1161, 3}, {1161, 1}, {928, 4}, - {1215, 2}, - {1336, 0}, - {1336, 2}, - {1337, 1}, - {1337, 3}, + {1216, 2}, + {1337, 0}, + {1337, 2}, + {1338, 1}, + {1338, 3}, {1157, 3}, {921, 1}, {1159, 3}, - {1342, 4}, - {1255, 0}, - {1255, 1}, - {1259, 0}, - {1259, 3}, + {1343, 4}, + {1256, 0}, + {1256, 1}, + {1260, 0}, + {1260, 3}, + {1263, 0}, + {1263, 3}, {1262, 0}, - {1262, 3}, - {1261, 0}, - {1261, 2}, - {1340, 1}, + {1262, 2}, + {1341, 1}, + {1341, 1}, + {1341, 1}, {1340, 1}, {1340, 1}, - {1339, 1}, - {1339, 1}, {977, 2}, {977, 2}, {977, 2}, {977, 4}, {977, 2}, - {1338, 4}, + {1339, 4}, {1158, 1}, {1158, 2}, {1158, 2}, @@ -5161,8 +5164,8 @@ var ( {764, 0}, {764, 1}, {746, 2}, - {1341, 1}, - {1341, 1}, + {1342, 1}, + {1342, 1}, {727, 4}, {727, 4}, {727, 4}, @@ -5182,10 +5185,10 @@ var ( {883, 0}, {883, 2}, {883, 2}, - {1256, 0}, - {1256, 2}, - {1256, 2}, - {1313, 1}, + {1257, 0}, + {1257, 2}, + {1257, 2}, + {1314, 1}, {888, 1}, {888, 3}, {850, 1}, @@ -5204,10 +5207,10 @@ var ( {939, 2}, {939, 2}, {939, 2}, - {1225, 0}, - {1225, 2}, - {1225, 3}, - {1225, 3}, + {1226, 0}, + {1226, 2}, + {1226, 3}, + {1226, 3}, {938, 5}, {855, 0}, {855, 1}, @@ -5238,12 +5241,12 @@ var ( {1069, 2}, {880, 1}, {880, 1}, - {1280, 1}, - {1280, 1}, - {1210, 1}, - {1210, 1}, - {1205, 0}, - {1205, 1}, + {1281, 1}, + {1281, 1}, + {1211, 1}, + {1211, 1}, + {1206, 0}, + {1206, 1}, {767, 2}, {767, 4}, {767, 4}, @@ -5259,16 +5262,16 @@ var ( {1120, 1}, {1120, 1}, {1120, 1}, - {1282, 0}, - {1282, 1}, - {1283, 2}, + {1283, 0}, {1283, 1}, + {1284, 2}, + {1284, 1}, {865, 1}, {916, 0}, {916, 1}, {1121, 1}, {1121, 1}, - {1281, 1}, + {1282, 1}, {963, 0}, {963, 1}, {887, 0}, @@ -5304,9 +5307,9 @@ var ( {755, 3}, {751, 1}, {751, 1}, - {1285, 2}, - {1285, 2}, - {1285, 2}, + {1286, 2}, + {1286, 2}, + {1286, 2}, {964, 1}, {998, 9}, {998, 9}, @@ -5324,19 +5327,19 @@ var ( {1123, 1}, {1123, 1}, {1123, 1}, - {1286, 3}, - {1286, 1}, - {1286, 1}, + {1287, 3}, + {1287, 1}, + {1287, 1}, {969, 1}, {969, 3}, {919, 3}, {919, 2}, {919, 2}, {919, 3}, - {1232, 2}, - {1232, 2}, - {1232, 2}, - {1232, 1}, + {1233, 2}, + {1233, 2}, + {1233, 2}, + {1233, 1}, {839, 1}, {839, 1}, {839, 1}, @@ -5358,8 +5361,8 @@ var ( {976, 4}, {976, 2}, {976, 2}, - {1181, 1}, - {1181, 1}, + {1182, 1}, + {1182, 1}, {806, 1}, {806, 1}, {870, 1}, @@ -5389,6 +5392,9 @@ var ( {819, 1}, {860, 1}, {860, 3}, + {1164, 2}, + {1164, 4}, + {1164, 4}, {978, 3}, {978, 5}, {978, 6}, @@ -5401,6 +5407,7 @@ var ( {978, 4}, {978, 5}, {978, 6}, + {978, 6}, {978, 4}, {978, 3}, {978, 3}, @@ -5421,8 +5428,8 @@ var ( {1163, 2}, {1163, 3}, {1163, 3}, - {1219, 1}, - {1219, 3}, + {1220, 1}, + {1220, 3}, {1055, 5}, {1080, 1}, {1080, 3}, @@ -5446,13 +5453,13 @@ var ( {1128, 2}, {1128, 2}, {1128, 4}, - {1289, 2}, - {1289, 2}, - {1289, 4}, - {1292, 0}, + {1290, 2}, + {1290, 2}, + {1290, 4}, + {1293, 0}, + {1293, 1}, {1292, 1}, - {1291, 1}, - {1291, 3}, + {1292, 3}, {1127, 1}, {1127, 1}, {1127, 2}, @@ -5462,67 +5469,67 @@ var ( {1127, 1}, {1127, 1}, {1127, 1}, - {1290, 0}, - {1290, 3}, - {1324, 0}, - {1324, 2}, - {1287, 1}, - {1287, 1}, - {1287, 1}, + {1291, 0}, + {1291, 3}, + {1325, 0}, + {1325, 2}, + {1288, 1}, + {1288, 1}, + {1288, 1}, {804, 1}, {804, 1}, - {1293, 1}, - {1293, 1}, - {1293, 1}, - {1293, 1}, - {1293, 3}, - {1293, 3}, - {1293, 3}, - {1293, 3}, - {1293, 5}, - {1293, 4}, - {1293, 5}, - {1293, 5}, - {1293, 1}, - {1293, 5}, - {1293, 1}, - {1293, 2}, - {1293, 2}, - {1293, 2}, - {1293, 1}, - {1293, 2}, - {1293, 2}, - {1293, 2}, - {1293, 2}, - {1293, 2}, - {1293, 2}, - {1293, 2}, - {1293, 1}, - {1293, 1}, - {1293, 1}, - {1293, 1}, - {1293, 1}, - {1293, 1}, - {1293, 1}, - {1293, 1}, - {1293, 1}, - {1293, 1}, - {1293, 2}, - {1293, 1}, - {1293, 1}, - {1293, 1}, - {1293, 1}, - {1293, 2}, - {1288, 0}, - {1288, 2}, - {1288, 2}, + {1294, 1}, + {1294, 1}, + {1294, 1}, + {1294, 1}, + {1294, 3}, + {1294, 3}, + {1294, 3}, + {1294, 3}, + {1294, 5}, + {1294, 4}, + {1294, 5}, + {1294, 5}, + {1294, 1}, + {1294, 5}, + {1294, 1}, + {1294, 2}, + {1294, 2}, + {1294, 2}, + {1294, 1}, + {1294, 2}, + {1294, 2}, + {1294, 2}, + {1294, 2}, + {1294, 2}, + {1294, 2}, + {1294, 2}, + {1294, 1}, + {1294, 1}, + {1294, 1}, + {1294, 1}, + {1294, 1}, + {1294, 1}, + {1294, 1}, + {1294, 1}, + {1294, 1}, + {1294, 1}, + {1294, 2}, + {1294, 1}, + {1294, 1}, + {1294, 1}, + {1294, 1}, + {1294, 2}, + {1289, 0}, + {1289, 2}, + {1289, 2}, {936, 0}, {936, 1}, {936, 1}, - {1301, 0}, - {1301, 1}, - {1301, 1}, - {1301, 1}, + {1302, 0}, + {1302, 1}, + {1302, 1}, + {1302, 1}, {1088, 0}, {1088, 1}, {840, 0}, @@ -5531,19 +5538,19 @@ var ( {1049, 3}, {953, 1}, {953, 3}, - {1214, 1}, - {1214, 1}, - {1214, 3}, - {1214, 1}, - {1214, 2}, - {1214, 3}, - {1214, 1}, - {1242, 0}, - {1242, 1}, - {1242, 1}, - {1242, 1}, - {1242, 1}, - {1242, 1}, + {1215, 1}, + {1215, 1}, + {1215, 3}, + {1215, 1}, + {1215, 2}, + {1215, 3}, + {1215, 1}, + {1243, 0}, + {1243, 1}, + {1243, 1}, + {1243, 1}, + {1243, 1}, + {1243, 1}, {835, 0}, {835, 1}, {835, 1}, @@ -5551,8 +5558,8 @@ var ( {1144, 1}, {967, 0}, {967, 2}, - {1343, 0}, - {1343, 3}, + {1344, 0}, + {1344, 3}, {1134, 1}, {1134, 1}, {1134, 1}, @@ -5666,8 +5673,8 @@ var ( {824, 1}, {824, 1}, {824, 1}, - {1300, 1}, - {1300, 3}, + {1301, 1}, + {1301, 3}, {901, 2}, {999, 1}, {999, 1}, @@ -5675,8 +5682,8 @@ var ( {966, 1}, {1142, 1}, {1142, 3}, - {1311, 0}, - {1311, 3}, + {1312, 0}, + {1312, 3}, {841, 1}, {841, 4}, {841, 4}, @@ -5720,8 +5727,8 @@ var ( {917, 1}, {917, 2}, {917, 3}, - {1260, 0}, - {1260, 1}, + {1261, 0}, + {1261, 1}, {1150, 3}, {837, 3}, {837, 3}, @@ -5737,90 +5744,90 @@ var ( {837, 3}, {837, 3}, {837, 3}, - {1321, 1}, - {1321, 1}, - {1321, 1}, - {1248, 3}, - {1248, 2}, - {1248, 3}, - {1248, 3}, - {1248, 2}, - {1231, 1}, - {1231, 1}, - {1231, 1}, - {1231, 1}, - {1231, 1}, - {1231, 1}, - {1231, 1}, - {1231, 1}, - {1231, 1}, - {1231, 1}, - {1231, 1}, - {1179, 1}, - {1179, 1}, + {1322, 1}, + {1322, 1}, + {1322, 1}, + {1249, 3}, + {1249, 2}, + {1249, 3}, + {1249, 3}, + {1249, 2}, + {1232, 1}, + {1232, 1}, + {1232, 1}, + {1232, 1}, + {1232, 1}, + {1232, 1}, + {1232, 1}, + {1232, 1}, + {1232, 1}, + {1232, 1}, + {1232, 1}, + {1180, 1}, + {1180, 1}, {1089, 0}, {1089, 1}, {1089, 1}, - {1211, 1}, - {1211, 1}, - {1211, 1}, - {1213, 1}, - {1213, 1}, - {1213, 1}, - {1213, 2}, - {1177, 1}, - {1306, 3}, - {1306, 2}, - {1306, 3}, - {1306, 2}, - {1306, 3}, - {1306, 3}, - {1306, 2}, - {1306, 2}, - {1306, 1}, - {1306, 2}, - {1306, 5}, - {1306, 5}, - {1306, 1}, - {1306, 3}, - {1306, 2}, + {1212, 1}, + {1212, 1}, + {1212, 1}, + {1214, 1}, + {1214, 1}, + {1214, 1}, + {1214, 2}, + {1178, 1}, + {1307, 3}, + {1307, 2}, + {1307, 3}, + {1307, 2}, + {1307, 3}, + {1307, 3}, + {1307, 2}, + {1307, 2}, + {1307, 1}, + {1307, 2}, + {1307, 5}, + {1307, 5}, + {1307, 1}, + {1307, 3}, + {1307, 2}, {899, 1}, {899, 1}, - {1247, 1}, - {1247, 2}, - {1247, 2}, + {1248, 1}, + {1248, 2}, + {1248, 2}, {1154, 2}, {1154, 2}, {1154, 1}, {1154, 1}, - {1249, 2}, - {1249, 2}, - {1249, 1}, - {1249, 2}, - {1249, 2}, - {1249, 3}, - {1249, 3}, - {1249, 2}, - {1346, 1}, - {1346, 1}, - {1178, 1}, - {1178, 2}, - {1178, 1}, - {1178, 1}, - {1178, 2}, - {1318, 1}, - {1318, 2}, - {1318, 1}, - {1318, 1}, + {1250, 2}, + {1250, 2}, + {1250, 1}, + {1250, 2}, + {1250, 2}, + {1250, 3}, + {1250, 3}, + {1250, 2}, + {1347, 1}, + {1347, 1}, + {1179, 1}, + {1179, 2}, + {1179, 1}, + {1179, 1}, + {1179, 2}, + {1319, 1}, + {1319, 2}, + {1319, 1}, + {1319, 1}, {882, 1}, {882, 1}, {882, 1}, {882, 1}, - {1197, 1}, - {1197, 2}, - {1197, 2}, - {1197, 2}, - {1197, 3}, + {1198, 1}, + {1198, 2}, + {1198, 2}, + {1198, 2}, + {1198, 3}, {762, 3}, {785, 0}, {785, 1}, @@ -5833,20 +5840,20 @@ var ( {902, 1}, {902, 1}, {907, 5}, - {1252, 0}, - {1252, 1}, + {1253, 0}, + {1253, 1}, {797, 0}, {797, 2}, {797, 3}, - {1253, 0}, - {1253, 2}, + {1254, 0}, + {1254, 2}, {772, 2}, {772, 1}, {772, 2}, {1087, 0}, {1087, 2}, - {1304, 1}, - {1304, 3}, + {1305, 1}, + {1305, 3}, {968, 1}, {968, 1}, {968, 1}, @@ -5854,9 +5861,9 @@ var ( {1148, 3}, {737, 1}, {737, 1}, - {1305, 1}, - {1305, 1}, - {1305, 1}, + {1306, 1}, + {1306, 1}, + {1306, 1}, {775, 1}, {775, 2}, {771, 10}, @@ -5865,22 +5872,22 @@ var ( {789, 2}, {790, 0}, {790, 1}, - {1351, 0}, - {1351, 1}, + {1352, 0}, + {1352, 1}, {1017, 7}, {1013, 4}, {988, 7}, {988, 9}, {982, 3}, - {1230, 2}, - {1230, 6}, + {1231, 2}, + {1231, 6}, {889, 2}, {920, 1}, {920, 3}, {1007, 0}, {1007, 2}, - {1191, 1}, - {1191, 2}, + {1192, 1}, + {1192, 2}, {1006, 2}, {1006, 2}, {1006, 2}, @@ -5891,9 +5898,9 @@ var ( {958, 2}, {958, 2}, {958, 2}, - {1278, 1}, - {1278, 3}, - {1278, 2}, + {1279, 1}, + {1279, 3}, + {1279, 2}, {960, 2}, {960, 2}, {960, 2}, @@ -5909,19 +5916,19 @@ var ( {952, 2}, {952, 2}, {951, 3}, - {1183, 0}, - {1173, 0}, - {1173, 3}, - {1173, 3}, - {1173, 5}, - {1173, 5}, - {1173, 4}, - {1174, 1}, + {1184, 0}, + {1174, 0}, + {1174, 3}, + {1174, 3}, + {1174, 5}, + {1174, 5}, + {1174, 4}, + {1175, 1}, {1056, 1}, {1056, 1}, {1119, 1}, - {1279, 1}, - {1279, 3}, + {1280, 1}, + {1280, 3}, {844, 1}, {844, 1}, {844, 1}, @@ -6002,18 +6009,18 @@ var ( {1117, 7}, {1116, 4}, {857, 15}, - {1223, 0}, - {1223, 3}, - {1182, 0}, - {1182, 3}, + {1224, 0}, + {1224, 3}, + {1183, 0}, + {1183, 3}, {1074, 0}, {1074, 1}, {1047, 0}, {1047, 2}, {832, 1}, {832, 1}, - {1208, 2}, - {1208, 1}, + {1209, 2}, + {1209, 1}, {1046, 3}, {1046, 4}, {1046, 3}, @@ -6023,32 +6030,32 @@ var ( {851, 1}, {942, 0}, {942, 3}, - {1298, 0}, - {1298, 3}, - {1238, 0}, - {1238, 3}, - {1240, 0}, - {1240, 2}, + {1299, 0}, + {1299, 3}, + {1239, 0}, {1239, 3}, - {1239, 1}, + {1241, 0}, + {1241, 2}, + {1240, 3}, + {1240, 1}, {1072, 3}, {1151, 2}, {1076, 3}, {1146, 1}, {1146, 1}, {1143, 2}, - {1241, 1}, - {1241, 2}, - {1241, 1}, - {1241, 2}, - {1312, 1}, - {1312, 3}, + {1242, 1}, + {1242, 2}, + {1242, 1}, + {1242, 2}, + {1313, 1}, + {1313, 3}, {1078, 6}, - {1200, 0}, - {1200, 2}, - {1200, 3}, - {1258, 0}, - {1258, 2}, + {1201, 0}, + {1201, 2}, + {1201, 3}, + {1259, 0}, + {1259, 2}, {1068, 2}, {1068, 3}, {1068, 3}, @@ -6059,10 +6066,10 @@ var ( {1012, 7}, {984, 6}, {1014, 6}, - {1193, 0}, - {1193, 1}, - {1284, 1}, - {1284, 2}, + {1194, 0}, + {1194, 1}, + {1285, 1}, + {1285, 2}, {911, 3}, {911, 3}, {911, 3}, @@ -6084,21 +6091,21 @@ var ( {812, 2}, {1030, 4}, {986, 5}, - {1165, 1}, - {1165, 2}, + {1166, 1}, + {1166, 2}, {985, 1}, {985, 1}, {985, 3}, {985, 3}, {1059, 8}, + {1247, 0}, + {1247, 2}, {1246, 0}, - {1246, 2}, - {1245, 0}, - {1245, 3}, + {1246, 3}, + {1272, 0}, + {1272, 2}, {1271, 0}, {1271, 2}, - {1270, 0}, - {1270, 2}, {1038, 1}, {974, 1}, {974, 3}, @@ -6112,82 +6119,82 @@ var ( yyXErrors = map[yyXError]string{} - yyParseTab = [4251][]uint16{ + yyParseTab = [4258][]uint16{ // 0 - {2035, 2035, 48: 2539, 69: 2658, 71: 2518, 80: 2550, 145: 2520, 152: 2548, 2533, 155: 2517, 168: 2544, 203: 2569, 207: 2671, 210: 2513, 220: 2568, 2535, 2667, 2519, 238: 2547, 243: 2523, 248: 2545, 250: 2514, 253: 2551, 271: 2537, 275: 2536, 282: 2549, 284: 2515, 287: 2538, 298: 2528, 473: 2559, 2558, 496: 2666, 501: 2557, 504: 2567, 507: 2543, 525: 2661, 529: 2531, 567: 2542, 569: 2556, 645: 2552, 648: 2670, 652: 2516, 2660, 660: 2511, 668: 2522, 673: 2521, 678: 2566, 685: 2512, 708: 2563, 738: 2524, 747: 2565, 2553, 2554, 2555, 2564, 755: 2562, 2561, 2560, 2527, 2638, 2637, 765: 2525, 771: 2659, 773: 2619, 2630, 2649, 778: 2526, 782: 2585, 798: 2534, 805: 2573, 808: 2664, 843: 2580, 847: 2583, 852: 2662, 857: 2622, 859: 2632, 861: 2627, 2636, 2639, 2540, 929: 2592, 933: 2529, 971: 2665, 978: 2571, 980: 2572, 2575, 2576, 984: 2578, 986: 2577, 988: 2574, 990: 2579, 2581, 2582, 995: 2541, 2618, 998: 2588, 1008: 2596, 2589, 2590, 2591, 2597, 2595, 2598, 2599, 1017: 2594, 2593, 1020: 2584, 2546, 2530, 2600, 2612, 2601, 2602, 2603, 2605, 2609, 2606, 2610, 2611, 2604, 2608, 2607, 1037: 2570, 1041: 2586, 1043: 2587, 2532, 1048: 2614, 2613, 1052: 2616, 2617, 2615, 1058: 2655, 2620, 1066: 2669, 2668, 2621, 1073: 2623, 1076: 2652, 1078: 2656, 1102: 2624, 2625, 1105: 2626, 1107: 2631, 1110: 2628, 2629, 1113: 2654, 2633, 2663, 2635, 2634, 1122: 2640, 1124: 2642, 2641, 2645, 1128: 2646, 1130: 2653, 1133: 2643, 2657, 1138: 2644, 1149: 2647, 2648, 2651, 1153: 2650, 1297: 2509, 1300: 2510}, - {2508}, - {2507, 6757}, - {16: 6709, 132: 6706, 164: 6707, 190: 6710, 257: 6708, 491: 4158, 569: 1846, 583: 6054, 849: 6705, 853: 4157}, - {164: 6690, 569: 6689}, + {2039, 2039, 48: 2544, 69: 2663, 71: 2523, 80: 2555, 145: 2525, 152: 2553, 2538, 155: 2522, 168: 2549, 203: 2574, 207: 2676, 210: 2518, 220: 2573, 2540, 2672, 2524, 238: 2552, 243: 2528, 248: 2550, 250: 2519, 253: 2556, 271: 2542, 275: 2541, 282: 2554, 284: 2520, 287: 2543, 298: 2533, 473: 2564, 2563, 496: 2671, 501: 2562, 504: 2572, 507: 2548, 525: 2666, 529: 2536, 567: 2547, 569: 2561, 645: 2557, 648: 2675, 652: 2521, 2665, 660: 2516, 668: 2527, 673: 2526, 678: 2571, 685: 2517, 708: 2568, 738: 2529, 747: 2570, 2558, 2559, 2560, 2569, 755: 2567, 2566, 2565, 2532, 2643, 2642, 765: 2530, 771: 2664, 773: 2624, 2635, 2654, 778: 2531, 782: 2590, 798: 2539, 805: 2578, 808: 2669, 843: 2585, 847: 2588, 852: 2667, 857: 2627, 859: 2637, 861: 2632, 2641, 2644, 2545, 929: 2597, 933: 2534, 971: 2670, 978: 2576, 980: 2577, 2580, 2581, 984: 2583, 986: 2582, 988: 2579, 990: 2584, 2586, 2587, 995: 2546, 2623, 998: 2593, 1008: 2601, 2594, 2595, 2596, 2602, 2600, 2603, 2604, 1017: 2599, 2598, 1020: 2589, 2551, 2535, 2605, 2617, 2606, 2607, 2608, 2610, 2614, 2611, 2615, 2616, 2609, 2613, 2612, 1037: 2575, 1041: 2591, 1043: 2592, 2537, 1048: 2619, 2618, 1052: 2621, 2622, 2620, 1058: 2660, 2625, 1066: 2674, 2673, 2626, 1073: 2628, 1076: 2657, 1078: 2661, 1102: 2629, 2630, 1105: 2631, 1107: 2636, 1110: 2633, 2634, 1113: 2659, 2638, 2668, 2640, 2639, 1122: 2645, 1124: 2647, 2646, 2650, 1128: 2651, 1130: 2658, 1133: 2648, 2662, 1138: 2649, 1149: 2652, 2653, 2656, 1153: 2655, 1298: 2514, 1301: 2515}, + {2513}, + {2512, 6769}, + {16: 6721, 132: 6718, 165: 6719, 190: 6722, 257: 6720, 491: 4163, 569: 1850, 583: 6066, 849: 6717, 853: 4162}, + {165: 6702, 569: 6701}, // 5 - {569: 6683}, - {569: 6678}, - {378: 6659, 490: 6660, 569: 2360, 1295: 6658}, - {345: 6614, 569: 6613}, - {2328, 2328, 365: 6612, 372: 6611}, + {569: 6695}, + {569: 6690}, + {378: 6671, 490: 6672, 569: 2364, 1296: 6670}, + {345: 6626, 569: 6625}, + {2332, 2332, 365: 6624, 372: 6623}, // 10 - {402: 6600}, - {475: 6599}, - {2295, 2295, 70: 5884, 505: 5882, 798: 5883, 1005: 6598}, - {16: 2085, 81: 2085, 99: 2085, 132: 6375, 140: 2085, 156: 592, 158: 6312, 162: 5489, 164: 6376, 169: 6377, 190: 6379, 6017, 214: 6367, 509: 6374, 569: 2054, 583: 6054, 638: 6369, 648: 2180, 667: 2085, 675: 6371, 849: 6372, 936: 6378, 948: 5488, 1226: 6368, 1264: 6373, 1294: 6370}, - {16: 6319, 99: 6313, 122: 2054, 132: 6317, 156: 592, 158: 6312, 162: 5489, 164: 6314, 168: 1025, 6315, 190: 6320, 6017, 214: 6308, 285: 6316, 569: 2054, 583: 6054, 648: 6310, 849: 6309, 936: 6318, 948: 6311}, + {402: 6612}, + {475: 6611}, + {2299, 2299, 70: 5896, 505: 5894, 798: 5895, 1005: 6610}, + {16: 2089, 81: 2089, 99: 2089, 132: 6387, 140: 2089, 156: 592, 158: 6324, 163: 5494, 165: 6388, 169: 6389, 190: 6391, 6029, 214: 6379, 509: 6386, 569: 2058, 583: 6066, 638: 6381, 648: 2184, 667: 2089, 675: 6383, 849: 6384, 936: 6390, 948: 5493, 1227: 6380, 1265: 6385, 1295: 6382}, + {16: 6331, 99: 6325, 122: 2058, 132: 6329, 156: 592, 158: 6324, 163: 5494, 165: 6326, 168: 1029, 6327, 190: 6332, 6029, 214: 6320, 285: 6328, 569: 2058, 583: 6066, 648: 6322, 849: 6321, 936: 6330, 948: 6323}, // 15 - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 2724, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 3556, 777: 6307}, - {2: 844, 844, 844, 844, 844, 8: 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 48: 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 491: 844, 499: 844, 752: 844, 844, 844, 761: 5296, 865: 5297, 916: 6295}, - {2062, 2062}, - {2061, 2061}, - {473: 2559, 501: 2557, 569: 2556, 645: 2552, 653: 2660, 708: 3856, 738: 2524, 747: 3855, 2553, 2554, 2555, 2564, 755: 2562, 3857, 3858, 765: 5082, 771: 5663, 778: 5083}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 2729, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 3561, 777: 6319}, + {2: 848, 848, 848, 848, 848, 8: 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 48: 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 491: 848, 499: 848, 752: 848, 848, 848, 761: 5301, 865: 5302, 916: 6307}, + {2066, 2066}, + {2065, 2065}, + {473: 2564, 501: 2562, 569: 2561, 645: 2557, 653: 2665, 708: 3861, 738: 2529, 747: 3860, 2558, 2559, 2560, 2569, 755: 2567, 3862, 3863, 765: 5087, 771: 5675, 778: 5088}, // 20 - {71: 2518, 145: 2520, 152: 2548, 2533, 155: 2517, 207: 6269, 251: 6268, 473: 2559, 2558, 501: 2557, 504: 6272, 507: 2543, 567: 2542, 569: 2556, 645: 2552, 653: 2660, 708: 6270, 738: 2524, 747: 6271, 2553, 2554, 2555, 2564, 755: 2562, 2561, 2560, 2527, 6278, 6277, 765: 2525, 771: 2659, 773: 6275, 6276, 6274, 778: 2526, 782: 6273, 798: 2534, 808: 6286, 843: 6280, 847: 6281, 857: 6279, 859: 6283, 861: 6284, 6282, 6285, 918: 6267}, - {2: 2030, 2030, 2030, 2030, 2030, 8: 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 48: 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 2030, 473: 2030, 2030, 494: 2030, 501: 2030, 507: 2030, 567: 2030, 569: 2030, 645: 2030, 652: 2030, 2030, 660: 2030, 738: 2030}, - {2: 2029, 2029, 2029, 2029, 2029, 8: 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 48: 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 2029, 473: 2029, 2029, 494: 2029, 501: 2029, 507: 2029, 567: 2029, 569: 2029, 645: 2029, 652: 2029, 2029, 660: 2029, 738: 2029}, - {2: 2028, 2028, 2028, 2028, 2028, 8: 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 48: 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 473: 2028, 2028, 494: 2028, 501: 2028, 507: 2028, 567: 2028, 569: 2028, 645: 2028, 652: 2028, 2028, 660: 2028, 738: 2028}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 6237, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 473: 2559, 2558, 494: 6236, 501: 2557, 507: 2543, 567: 2542, 569: 2556, 645: 2552, 652: 6238, 2660, 660: 2677, 663: 3889, 2731, 2732, 2730, 708: 2678, 736: 6234, 738: 2524, 747: 2679, 2553, 2554, 2555, 2564, 755: 2562, 2561, 2560, 2527, 2685, 2684, 765: 2525, 771: 2659, 773: 2682, 2683, 2681, 778: 2526, 782: 2680, 805: 2686, 824: 6235}, + {71: 2523, 145: 2525, 152: 2553, 2538, 155: 2522, 207: 6281, 251: 6280, 473: 2564, 2563, 501: 2562, 504: 6284, 507: 2548, 567: 2547, 569: 2561, 645: 2557, 653: 2665, 708: 6282, 738: 2529, 747: 6283, 2558, 2559, 2560, 2569, 755: 2567, 2566, 2565, 2532, 6290, 6289, 765: 2530, 771: 2664, 773: 6287, 6288, 6286, 778: 2531, 782: 6285, 798: 2539, 808: 6298, 843: 6292, 847: 6293, 857: 6291, 859: 6295, 861: 6296, 6294, 6297, 918: 6279}, + {2: 2034, 2034, 2034, 2034, 2034, 8: 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 48: 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 2034, 473: 2034, 2034, 494: 2034, 501: 2034, 507: 2034, 567: 2034, 569: 2034, 645: 2034, 652: 2034, 2034, 660: 2034, 738: 2034}, + {2: 2033, 2033, 2033, 2033, 2033, 8: 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 48: 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 473: 2033, 2033, 494: 2033, 501: 2033, 507: 2033, 567: 2033, 569: 2033, 645: 2033, 652: 2033, 2033, 660: 2033, 738: 2033}, + {2: 2032, 2032, 2032, 2032, 2032, 8: 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 48: 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 2032, 473: 2032, 2032, 494: 2032, 501: 2032, 507: 2032, 567: 2032, 569: 2032, 645: 2032, 652: 2032, 2032, 660: 2032, 738: 2032}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 6249, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 473: 2564, 2563, 494: 6248, 501: 2562, 507: 2548, 567: 2547, 569: 2561, 645: 2557, 652: 6250, 2665, 660: 2682, 663: 3894, 2736, 2737, 2735, 708: 2683, 736: 6246, 738: 2529, 747: 2684, 2558, 2559, 2560, 2569, 755: 2567, 2566, 2565, 2532, 2690, 2689, 765: 2530, 771: 2664, 773: 2687, 2688, 2686, 778: 2531, 782: 2685, 805: 2691, 824: 6247}, // 25 - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 6233, 2731, 2732, 2730}, - {153: 6231}, - {569: 6149, 583: 6054, 849: 6148, 993: 6227}, - {569: 6149, 583: 6054, 849: 6148, 993: 6147}, - {132: 6145}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 6245, 2736, 2737, 2735}, + {153: 6243}, + {569: 6161, 583: 6066, 849: 6160, 993: 6239}, + {569: 6161, 583: 6066, 849: 6160, 993: 6159}, + {132: 6157}, // 30 - {132: 6140}, - {132: 6134}, - {14: 3804, 16: 5979, 28: 6008, 6007, 98: 585, 107: 585, 122: 585, 124: 592, 132: 5968, 139: 592, 158: 6016, 176: 5992, 185: 5977, 191: 6017, 195: 592, 204: 6018, 208: 6002, 585, 245: 5999, 270: 5998, 302: 5991, 308: 6013, 310: 5996, 313: 5978, 320: 5994, 6011, 323: 5985, 331: 5983, 333: 6001, 337: 5989, 340: 6000, 5972, 6010, 344: 6015, 346: 5981, 355: 5973, 364: 5987, 374: 5976, 5975, 381: 6014, 385: 6003, 388: 6009, 6006, 6005, 403: 5995, 506: 3805, 569: 5971, 594: 5990, 646: 3803, 648: 5980, 652: 6012, 673: 5970, 772: 5986, 912: 6004, 936: 5993, 941: 5982, 957: 5997, 1019: 5984, 1088: 5974, 1287: 5988, 1293: 5969}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 5957, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 5959, 2731, 2732, 2730, 1274: 5958}, - {2: 844, 844, 844, 844, 844, 8: 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 48: 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 491: 844, 495: 844, 752: 844, 844, 844, 761: 5296, 865: 5297, 916: 5944}, + {132: 6152}, + {132: 6146}, + {14: 3809, 16: 5991, 28: 6020, 6019, 98: 585, 107: 585, 122: 585, 124: 592, 132: 5980, 139: 592, 158: 6028, 176: 6004, 185: 5989, 191: 6029, 195: 592, 204: 6030, 208: 6014, 585, 245: 6011, 270: 6010, 302: 6003, 308: 6025, 310: 6008, 313: 5990, 320: 6006, 6023, 323: 5997, 331: 5995, 333: 6013, 337: 6001, 340: 6012, 5984, 6022, 344: 6027, 346: 5993, 355: 5985, 364: 5999, 374: 5988, 5987, 381: 6026, 385: 6015, 388: 6021, 6018, 6017, 403: 6007, 506: 3810, 569: 5983, 594: 6002, 646: 3808, 648: 5992, 652: 6024, 673: 5982, 772: 5998, 912: 6016, 936: 6005, 941: 5994, 957: 6009, 1019: 5996, 1088: 5986, 1288: 6000, 1294: 5981}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 5969, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 5971, 2736, 2737, 2735, 1275: 5970}, + {2: 848, 848, 848, 848, 848, 8: 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 48: 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 491: 848, 495: 848, 752: 848, 848, 848, 761: 5301, 865: 5302, 916: 5956}, // 35 - {2: 1048, 1048, 1048, 1048, 1048, 8: 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 48: 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 495: 1048, 752: 5301, 5300, 5299, 836: 5302, 885: 5910}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 5905, 2731, 2732, 2730}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 5899, 2731, 2732, 2730}, - {168: 5897}, - {168: 1026}, + {2: 1052, 1052, 1052, 1052, 1052, 8: 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 48: 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 495: 1052, 752: 5306, 5305, 5304, 836: 5307, 885: 5922}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 5917, 2736, 2737, 2735}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 5911, 2736, 2737, 2735}, + {168: 5909}, + {168: 1030}, // 40 - {1024, 1024, 70: 5884, 505: 5882, 649: 5881, 798: 5883, 1005: 5880}, - {1013, 1013}, - {1012, 1012}, - {475: 5879}, - {2: 849, 849, 849, 849, 849, 8: 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 48: 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 5849, 5855, 5856, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 473: 849, 475: 849, 849, 849, 479: 849, 483: 849, 849, 849, 849, 849, 492: 849, 501: 849, 506: 849, 849, 849, 515: 5852, 523: 849, 543: 849, 566: 849, 849, 849, 570: 849, 849, 849, 574: 849, 849, 849, 849, 849, 849, 849, 849, 583: 849, 849, 587: 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 639: 849, 849, 849, 647: 849, 650: 3514, 744: 3512, 3513, 752: 5301, 5300, 5299, 761: 5296, 768: 5848, 5851, 5847, 783: 5770, 786: 5845, 836: 5846, 865: 5844, 1120: 5854, 5850, 1282: 5843, 5853}, + {1028, 1028, 70: 5896, 505: 5894, 649: 5893, 798: 5895, 1005: 5892}, + {1017, 1017}, + {1016, 1016}, + {475: 5891}, + {2: 853, 853, 853, 853, 853, 8: 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 48: 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 5861, 5867, 5868, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 473: 853, 475: 853, 853, 853, 479: 853, 483: 853, 853, 853, 853, 853, 492: 853, 501: 853, 506: 853, 853, 853, 515: 5864, 523: 853, 543: 853, 566: 853, 853, 853, 570: 853, 853, 853, 574: 853, 853, 853, 853, 853, 853, 853, 853, 583: 853, 853, 587: 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 639: 853, 853, 853, 647: 853, 650: 3519, 744: 3517, 3518, 752: 5306, 5305, 5304, 761: 5301, 768: 5860, 5863, 5859, 783: 5782, 786: 5857, 836: 5858, 865: 5856, 1120: 5866, 5862, 1283: 5855, 5865}, // 45 - {245, 245, 47: 245, 472: 245, 474: 245, 480: 245, 245, 488: 245, 245, 493: 245, 245, 245, 245, 2691, 499: 5818, 245, 502: 245, 513: 245, 789: 2692, 5819, 1215: 5817}, - {839, 839, 47: 839, 472: 839, 474: 839, 480: 839, 839, 488: 839, 839, 493: 839, 839, 839, 839, 500: 839, 502: 839, 513: 5808, 937: 5810, 963: 5809}, - {1287, 1287, 47: 1287, 472: 1287, 474: 1287, 480: 1287, 1287, 488: 1287, 1287, 493: 1287, 1287, 1287, 1287, 500: 1287, 502: 2694, 766: 2695, 810: 5804}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 3889, 2731, 2732, 2730, 736: 5799}, - {576: 3864, 910: 3863, 974: 3862}, + {245, 245, 47: 245, 472: 245, 474: 245, 480: 245, 245, 488: 245, 245, 493: 245, 245, 245, 245, 2696, 499: 5830, 245, 502: 245, 513: 245, 789: 2697, 5831, 1216: 5829}, + {843, 843, 47: 843, 472: 843, 474: 843, 480: 843, 843, 488: 843, 843, 493: 843, 843, 843, 843, 500: 843, 502: 843, 513: 5820, 937: 5822, 963: 5821}, + {1291, 1291, 47: 1291, 472: 1291, 474: 1291, 480: 1291, 1291, 488: 1291, 1291, 493: 1291, 1291, 1291, 1291, 500: 1291, 502: 2699, 766: 2700, 810: 5816}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 3894, 2736, 2737, 2735, 736: 5811}, + {576: 3869, 910: 3868, 974: 3867}, // 50 - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 5786, 2731, 2732, 2730, 928: 5785, 1161: 5783, 1275: 5784}, - {473: 2559, 2558, 501: 2557, 569: 2556, 645: 2552, 708: 5782, 747: 3849, 2553, 2554, 2555, 2564, 755: 2562, 2561, 2560, 3848, 3851, 3850}, - {820, 820, 47: 820, 472: 820, 474: 820, 481: 820}, - {819, 819, 47: 819, 472: 819, 474: 819, 481: 819}, - {480: 5767, 488: 5768, 5769, 1285: 5766}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 5798, 2736, 2737, 2735, 928: 5797, 1161: 5795, 1276: 5796}, + {473: 2564, 2563, 501: 2562, 569: 2561, 645: 2557, 708: 5794, 747: 3854, 2558, 2559, 2560, 2569, 755: 2567, 2566, 2565, 3853, 3856, 3855}, + {824, 824, 47: 824, 472: 824, 474: 824, 481: 824}, + {823, 823, 47: 823, 472: 823, 474: 823, 481: 823}, + {480: 5779, 488: 5780, 5781, 1286: 5778}, // 55 - {485, 485, 480: 805, 488: 805, 805, 493: 2697, 500: 2698, 502: 2694, 766: 3859, 3860}, - {480: 808, 488: 808, 808}, - {487, 487, 480: 806, 488: 806, 806}, - {245: 5751, 270: 5750}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 5591, 5586, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 5589, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 5595, 2776, 5588, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 5592, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 5593, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 5587, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 5596, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 5594, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 5590, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 479: 5598, 506: 3805, 568: 5602, 590: 5601, 646: 3803, 663: 5599, 2731, 2732, 2730, 772: 5603, 829: 5600, 976: 5604, 1155: 5597}, + {485, 485, 480: 809, 488: 809, 809, 493: 2702, 500: 2703, 502: 2699, 766: 3864, 3865}, + {480: 812, 488: 812, 812}, + {487, 487, 480: 810, 488: 810, 810}, + {245: 5763, 270: 5762}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 5603, 5598, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 5601, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 5607, 2781, 5600, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 5604, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 5605, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 5599, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 5608, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 5606, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 5602, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 479: 5610, 506: 3810, 568: 5614, 590: 5613, 646: 3808, 663: 5611, 2736, 2737, 2735, 772: 5615, 829: 5612, 976: 5616, 1155: 5609}, // 60 - {15: 5466, 203: 5471, 208: 5469, 210: 5464, 5470, 274: 5468, 314: 5467, 5472, 318: 5465, 334: 5473, 380: 5474, 582: 5463, 864: 5462}, - {20: 564, 122: 564, 124: 564, 136: 4708, 143: 564, 185: 564, 192: 564, 202: 564, 216: 564, 230: 564, 252: 564, 255: 564, 543: 564, 569: 564, 817: 4707, 835: 5435}, + {15: 5471, 203: 5476, 208: 5474, 210: 5469, 5475, 274: 5473, 314: 5472, 5477, 318: 5470, 334: 5478, 380: 5479, 582: 5468, 864: 5467}, + {20: 564, 122: 564, 124: 564, 136: 4713, 143: 564, 185: 564, 192: 564, 202: 564, 216: 564, 230: 564, 252: 564, 255: 564, 543: 564, 569: 564, 817: 4712, 835: 5440}, {555, 555}, {554, 554}, {553, 553}, @@ -6294,32 +6301,32 @@ var ( {467, 467}, {442, 442}, // 150 - {2: 388, 388, 388, 388, 388, 8: 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 48: 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 569: 5432, 1260: 5433}, + {2: 388, 388, 388, 388, 388, 8: 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 48: 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 569: 5437, 1261: 5438}, {251, 251, 481: 251}, - {2: 844, 844, 844, 844, 844, 8: 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 48: 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 473: 844, 491: 844, 579: 844, 752: 844, 844, 844, 761: 5296, 865: 5297, 916: 5298}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 5294, 2731, 2732, 2730, 814: 5295}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 5139, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 5141, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 5147, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 5143, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 5140, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 5148, 3173, 2901, 3126, 5142, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 5145, 5249, 2813, 3052, 5146, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 5144, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 475: 5150, 496: 5173, 567: 5167, 643: 5171, 645: 5156, 648: 5166, 650: 5160, 653: 5169, 660: 5161, 663: 3459, 2731, 2732, 2730, 668: 5165, 673: 5162, 737: 5149, 5164, 799: 5151, 808: 5155, 852: 5170, 864: 5168, 934: 5152, 955: 5153, 5159, 961: 5154, 5157, 970: 5163, 972: 5172, 1118: 5250}, + {2: 848, 848, 848, 848, 848, 8: 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 48: 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 473: 848, 491: 848, 579: 848, 752: 848, 848, 848, 761: 5301, 865: 5302, 916: 5303}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 5299, 2736, 2737, 2735, 814: 5300}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 5144, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 5146, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 5152, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 5148, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 5145, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 5153, 3178, 2906, 3131, 5147, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 5150, 5254, 2818, 3057, 5151, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 5149, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 475: 5155, 496: 5178, 567: 5172, 643: 5176, 645: 5161, 648: 5171, 650: 5165, 653: 5174, 660: 5166, 663: 3464, 2736, 2737, 2735, 668: 5170, 673: 5167, 737: 5154, 5169, 799: 5156, 808: 5160, 852: 5175, 864: 5173, 934: 5157, 955: 5158, 5164, 961: 5159, 5162, 970: 5168, 972: 5177, 1118: 5255}, // 155 - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 5139, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 5141, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 5147, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 5143, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 5140, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 5148, 3173, 2901, 3126, 5142, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 5145, 2812, 2813, 3052, 5146, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 5144, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 475: 5150, 496: 5173, 567: 5167, 643: 5171, 645: 5156, 648: 5166, 650: 5160, 653: 5169, 660: 5161, 663: 3459, 2731, 2732, 2730, 668: 5165, 673: 5162, 737: 5149, 5164, 799: 5151, 808: 5155, 852: 5170, 864: 5168, 934: 5152, 955: 5153, 5159, 961: 5154, 5157, 970: 5163, 972: 5172, 1118: 5158}, - {21: 5098, 285: 5099}, - {122: 5085, 569: 5086, 1146: 5097}, - {122: 5085, 569: 5086, 1146: 5084}, - {472: 5072, 493: 61, 1258: 5071}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 5144, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 5146, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 5152, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 5148, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 5145, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 5153, 3178, 2906, 3131, 5147, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 5150, 2817, 2818, 3057, 5151, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 5149, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 475: 5155, 496: 5178, 567: 5172, 643: 5176, 645: 5161, 648: 5171, 650: 5165, 653: 5174, 660: 5166, 663: 3464, 2736, 2737, 2735, 668: 5170, 673: 5167, 737: 5154, 5169, 799: 5156, 808: 5160, 852: 5175, 864: 5173, 934: 5157, 955: 5158, 5164, 961: 5159, 5162, 970: 5168, 972: 5177, 1118: 5163}, + {21: 5103, 285: 5104}, + {122: 5090, 569: 5091, 1146: 5102}, + {122: 5090, 569: 5091, 1146: 5089}, + {472: 5077, 493: 61, 1259: 5076}, // 160 - {26: 5067, 137: 5068, 508: 2705, 732: 5066}, - {26: 56, 137: 56, 216: 5065, 508: 56}, - {304: 5048}, - {379: 2672}, - {329: 2673, 808: 2674}, + {26: 5072, 137: 5073, 508: 2710, 732: 5071}, + {26: 56, 137: 56, 216: 5070, 508: 56}, + {304: 5053}, + {379: 2677}, + {329: 2678, 808: 2679}, // 165 - {933: 2676}, - {475: 2675}, + {933: 2681}, + {475: 2680}, {1, 1}, - {192: 2689, 473: 2559, 2558, 501: 2557, 507: 2543, 567: 2542, 569: 2556, 645: 2552, 652: 2688, 2660, 660: 2677, 708: 2678, 738: 2524, 747: 2679, 2553, 2554, 2555, 2564, 755: 2562, 2561, 2560, 2527, 2685, 2684, 765: 2525, 771: 2659, 773: 2682, 2683, 2681, 778: 2526, 782: 2680, 805: 2686, 824: 2687}, - {491: 4158, 569: 1846, 853: 4157}, + {192: 2694, 473: 2564, 2563, 501: 2562, 507: 2548, 567: 2547, 569: 2561, 645: 2557, 652: 2693, 2665, 660: 2682, 708: 2683, 738: 2529, 747: 2684, 2558, 2559, 2560, 2569, 755: 2567, 2566, 2565, 2532, 2690, 2689, 765: 2530, 771: 2664, 773: 2687, 2688, 2686, 778: 2531, 782: 2685, 805: 2691, 824: 2692}, + {491: 4163, 569: 1850, 853: 4162}, // 170 - {444, 444, 480: 805, 488: 805, 805, 493: 2697, 500: 2698, 502: 2694, 766: 3859, 3860}, - {446, 446, 480: 806, 488: 806, 806}, + {444, 444, 480: 809, 488: 809, 809, 493: 2702, 500: 2703, 502: 2699, 766: 3864, 3865}, + {446, 446, 480: 810, 488: 810, 810}, {451, 451}, {450, 450}, {449, 449}, @@ -6330,1877 +6337,1877 @@ var ( {443, 443}, {5, 5}, // 180 - {192: 4152, 473: 2559, 2558, 501: 2557, 507: 2543, 567: 2542, 569: 2556, 645: 2552, 653: 2660, 660: 2677, 708: 2678, 738: 2524, 747: 2679, 2553, 2554, 2555, 2564, 755: 2562, 2561, 2560, 2527, 2685, 2684, 765: 2525, 771: 2659, 773: 2682, 2683, 2681, 778: 2526, 782: 2680, 805: 2686, 824: 4151}, - {137: 2690}, - {245, 245, 493: 245, 497: 2691, 500: 245, 502: 245, 789: 2692, 2693}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 2724, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 4150}, + {192: 4157, 473: 2564, 2563, 501: 2562, 507: 2548, 567: 2547, 569: 2561, 645: 2557, 653: 2665, 660: 2682, 708: 2683, 738: 2529, 747: 2684, 2558, 2559, 2560, 2569, 755: 2567, 2566, 2565, 2532, 2690, 2689, 765: 2530, 771: 2664, 773: 2687, 2688, 2686, 778: 2531, 782: 2685, 805: 2691, 824: 4156}, + {137: 2695}, + {245, 245, 493: 245, 497: 2696, 500: 245, 502: 245, 789: 2697, 2698}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 2729, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 4155}, {244, 244, 47: 244, 472: 244, 474: 244, 480: 244, 244, 488: 244, 244, 493: 244, 244, 244, 244, 500: 244, 502: 244, 513: 244, 244, 516: 244}, // 185 - {1287, 1287, 493: 1287, 500: 1287, 502: 2694, 766: 2695, 810: 2696}, - {659: 2719}, - {1286, 1286, 47: 1286, 125: 1286, 472: 1286, 474: 1286, 480: 1286, 1286, 488: 1286, 1286, 493: 1286, 1286, 1286, 1286, 500: 1286}, - {860, 860, 493: 2697, 500: 2698, 767: 2699, 828: 2700}, - {508: 2705, 578: 2707, 732: 2704, 743: 2706, 880: 2714}, + {1291, 1291, 493: 1291, 500: 1291, 502: 2699, 766: 2700, 810: 2701}, + {659: 2724}, + {1290, 1290, 47: 1290, 125: 1290, 472: 1290, 474: 1290, 480: 1290, 1290, 488: 1290, 1290, 493: 1290, 1290, 1290, 1290, 500: 1290}, + {864, 864, 493: 2702, 500: 2703, 767: 2704, 828: 2705}, + {508: 2710, 578: 2712, 732: 2709, 742: 2711, 880: 2719}, // 190 - {8: 2701, 265: 2702, 1210: 2703}, - {859, 859, 47: 859, 472: 859, 474: 859, 480: 859, 859, 488: 859, 859, 494: 859, 859, 859}, + {8: 2706, 265: 2707, 1211: 2708}, + {863, 863, 47: 863, 472: 863, 474: 863, 480: 863, 863, 488: 863, 863, 494: 863, 863, 863}, {3, 3}, - {508: 868, 524: 868, 576: 868, 578: 868}, - {508: 867, 524: 867, 576: 867, 578: 867}, + {508: 872, 524: 872, 576: 872, 578: 872}, + {508: 871, 524: 871, 576: 871, 578: 871}, // 195 - {508: 2705, 524: 866, 576: 866, 578: 2707, 732: 2704, 743: 2706, 880: 2708, 1205: 2709}, - {1965, 1965, 1965, 1965, 1965, 1965, 1965, 1965, 13: 1965, 1965, 1965, 1965, 1965, 1965, 1965, 1965, 1965, 1965, 1965, 1965, 1965, 1965, 1965, 1965, 1965, 1965, 1965, 1965, 1965, 1965, 1965, 1965, 1965, 1965, 1965, 1965, 1965, 1965, 1965, 1965, 1965, 47: 1965, 1965, 50: 1965, 1965, 1965, 1965, 1965, 1965, 1965, 1965, 1965, 1965, 1965, 1965, 1965, 1965, 1965, 1965, 1965, 1965, 1965, 1965, 81: 1965, 1965, 1965, 1965, 1965, 1965, 1965, 1965, 1965, 1965, 1965, 1965, 1965, 1965, 1965, 1965, 1965, 100: 1965, 1965, 104: 1965, 1965, 108: 1965, 1965, 1965, 1965, 1965, 1965, 1965, 1965, 1965, 1965, 1965, 1965, 1965, 1965, 123: 1965, 166: 1965, 178: 1965, 205: 1965, 472: 1965, 1965, 1965, 478: 1965, 1965, 1965, 1965, 1965, 488: 1965, 1965, 1965, 1965, 494: 1965, 1965, 1965, 501: 1965, 503: 1965, 1965, 506: 1965, 1965, 524: 1965, 569: 1965, 576: 1965, 645: 1965, 1965, 648: 1965, 652: 1965}, - {1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963, 13: 1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963, 50: 1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963, 100: 1963, 1963, 104: 1963, 1963, 108: 1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963, 123: 1963, 126: 1963, 1963, 1963, 1963, 166: 1963, 178: 1963, 1963, 184: 1963, 205: 1963, 246: 1963, 472: 1963, 1963, 1963, 478: 1963, 1963, 1963, 1963, 1963, 488: 1963, 1963, 1963, 1963, 493: 1963, 1963, 1963, 1963, 1963, 500: 1963, 1963, 503: 1963, 1963, 506: 1963, 1963, 524: 1963, 569: 1963, 576: 1963, 645: 1963, 1963, 648: 1963, 652: 1963, 656: 1963, 1963, 738: 1963}, - {872, 872, 7: 872, 47: 872, 166: 872, 472: 872, 474: 872, 480: 872, 872, 488: 872, 872, 494: 872, 872, 872, 524: 872, 576: 872}, - {871, 871, 7: 871, 47: 871, 166: 871, 472: 871, 474: 871, 480: 871, 871, 488: 871, 871, 494: 871, 871, 871, 524: 871, 576: 871}, + {508: 2710, 524: 870, 576: 870, 578: 2712, 732: 2709, 742: 2711, 880: 2713, 1206: 2714}, + {1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 13: 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 47: 1969, 1969, 50: 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 81: 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 100: 1969, 1969, 104: 1969, 1969, 108: 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 123: 1969, 160: 1969, 178: 1969, 205: 1969, 472: 1969, 1969, 1969, 478: 1969, 1969, 1969, 1969, 1969, 488: 1969, 1969, 1969, 1969, 494: 1969, 1969, 1969, 501: 1969, 503: 1969, 1969, 506: 1969, 1969, 524: 1969, 569: 1969, 576: 1969, 645: 1969, 1969, 648: 1969, 652: 1969}, + {1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, 13: 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, 50: 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, 100: 1967, 1967, 104: 1967, 1967, 108: 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, 123: 1967, 126: 1967, 1967, 1967, 1967, 160: 1967, 178: 1967, 1967, 184: 1967, 205: 1967, 246: 1967, 472: 1967, 1967, 1967, 478: 1967, 1967, 1967, 1967, 1967, 488: 1967, 1967, 1967, 1967, 493: 1967, 1967, 1967, 1967, 1967, 500: 1967, 1967, 503: 1967, 1967, 506: 1967, 1967, 524: 1967, 569: 1967, 576: 1967, 645: 1967, 1967, 648: 1967, 652: 1967, 656: 1967, 1967, 738: 1967}, + {876, 876, 7: 876, 47: 876, 160: 876, 472: 876, 474: 876, 480: 876, 876, 488: 876, 876, 494: 876, 876, 876, 524: 876, 576: 876}, + {875, 875, 7: 875, 47: 875, 160: 875, 472: 875, 474: 875, 480: 875, 875, 488: 875, 875, 494: 875, 875, 875, 524: 875, 576: 875}, // 200 - {524: 865, 576: 865}, - {524: 2711, 576: 2710, 1280: 2712}, - {151: 870}, - {151: 869}, - {151: 2713}, + {524: 869, 576: 869}, + {524: 2716, 576: 2715, 1281: 2717}, + {151: 874}, + {151: 873}, + {151: 2718}, // 205 - {861, 861, 47: 861, 472: 861, 474: 861, 480: 861, 861, 488: 861, 861, 494: 861, 861, 861}, - {864, 864, 7: 2715, 47: 864, 166: 2716, 472: 864, 474: 864, 480: 864, 864, 488: 864, 864, 494: 864, 864, 864}, - {508: 2705, 578: 2707, 732: 2704, 743: 2706, 880: 2718}, - {508: 2705, 578: 2707, 732: 2704, 743: 2706, 880: 2717}, - {862, 862, 47: 862, 472: 862, 474: 862, 480: 862, 862, 488: 862, 862, 494: 862, 862, 862}, + {865, 865, 47: 865, 472: 865, 474: 865, 480: 865, 865, 488: 865, 865, 494: 865, 865, 865}, + {868, 868, 7: 2720, 47: 868, 160: 2721, 472: 868, 474: 868, 480: 868, 868, 488: 868, 868, 494: 868, 868, 868}, + {508: 2710, 578: 2712, 732: 2709, 742: 2711, 880: 2723}, + {508: 2710, 578: 2712, 732: 2709, 742: 2711, 880: 2722}, + {866, 866, 47: 866, 472: 866, 474: 866, 480: 866, 866, 488: 866, 866, 494: 866, 866, 866}, // 210 - {863, 863, 47: 863, 472: 863, 474: 863, 480: 863, 863, 488: 863, 863, 494: 863, 863, 863}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 2724, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 2723, 869: 3210, 898: 3209}, - {1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 4147, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 474: 1525, 1525, 1525, 1525, 1525, 480: 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 491: 1525, 493: 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 502: 1525, 1525, 1525, 1525, 509: 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 544: 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 585: 1525, 651: 1525, 654: 1525, 1525}, - {1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 4144, 1524, 1524, 1524, 1524, 1524, 480: 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 491: 1524, 493: 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 502: 1524, 1524, 1524, 1524, 509: 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 544: 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 585: 1524, 651: 1524, 654: 1524, 1524}, - {739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 474: 739, 739, 739, 739, 739, 480: 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 491: 739, 493: 739, 739, 739, 739, 739, 739, 739, 739, 502: 739, 739, 739, 739, 509: 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 544: 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 585: 739, 658: 4142}, + {867, 867, 47: 867, 472: 867, 474: 867, 480: 867, 867, 488: 867, 867, 494: 867, 867, 867}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 2729, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 2728, 869: 3215, 898: 3214}, + {1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 4152, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 474: 1529, 1529, 1529, 1529, 1529, 480: 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 491: 1529, 493: 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 502: 1529, 1529, 1529, 1529, 509: 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 544: 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 585: 1529, 651: 1529, 654: 1529, 1529}, + {1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 4149, 1528, 1528, 1528, 1528, 1528, 480: 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 491: 1528, 493: 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 502: 1528, 1528, 1528, 1528, 509: 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 544: 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 585: 1528, 651: 1528, 654: 1528, 1528}, + {743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 474: 743, 743, 743, 743, 743, 480: 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 491: 743, 493: 743, 743, 743, 743, 743, 743, 743, 743, 502: 743, 743, 743, 743, 509: 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 544: 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 585: 743, 658: 4147}, // 215 - {1294, 1294, 7: 1294, 47: 1294, 125: 1294, 472: 1294, 474: 1294, 480: 1294, 1294, 488: 1294, 1294, 493: 1294, 1294, 1294, 1294, 500: 1294, 502: 1294, 505: 3313, 509: 3311, 3312, 3310, 3308, 514: 1294, 516: 1294, 524: 1294, 527: 1294, 1294, 4141, 4140, 733: 3309, 3307, 1263: 4139}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 2724, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 4138}, - {473: 4110}, - {1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 474: 1925, 1925, 478: 1925, 480: 1925, 1925, 483: 1925, 1925, 488: 1925, 1925, 491: 1925, 493: 1925, 1925, 1925, 1925, 1925, 4093, 1925, 1925, 502: 1925, 1925, 1925, 1925, 509: 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 519: 1925, 1925, 1925, 1925, 524: 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 545: 1925, 1925, 4090, 4088, 4087, 4095, 4089, 4091, 4092, 4094, 1190: 4086, 1233: 4085}, - {1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 474: 1900, 1900, 478: 1900, 480: 1900, 1900, 483: 1900, 1900, 488: 1900, 1900, 491: 1900, 493: 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 502: 1900, 1900, 1900, 1900, 509: 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 519: 1900, 1900, 1900, 1900, 524: 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 545: 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900}, + {1298, 1298, 7: 1298, 47: 1298, 125: 1298, 472: 1298, 474: 1298, 480: 1298, 1298, 488: 1298, 1298, 493: 1298, 1298, 1298, 1298, 500: 1298, 502: 1298, 505: 3318, 509: 3316, 3317, 3315, 3313, 514: 1298, 516: 1298, 524: 1298, 527: 1298, 1298, 4146, 4145, 733: 3314, 3312, 1264: 4144}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 2729, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 4143}, + {473: 4115}, + {1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 474: 1929, 1929, 478: 1929, 480: 1929, 1929, 483: 1929, 1929, 488: 1929, 1929, 491: 1929, 493: 1929, 1929, 1929, 1929, 1929, 4098, 1929, 1929, 502: 1929, 1929, 1929, 1929, 509: 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 519: 1929, 1929, 1929, 1929, 524: 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 545: 1929, 1929, 4095, 4093, 4092, 4100, 4094, 4096, 4097, 4099, 1191: 4091, 1234: 4090}, + {1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 474: 1904, 1904, 478: 1904, 480: 1904, 1904, 483: 1904, 1904, 488: 1904, 1904, 491: 1904, 493: 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 502: 1904, 1904, 1904, 1904, 509: 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 519: 1904, 1904, 1904, 1904, 524: 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 545: 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904}, // 220 - {1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 474: 1873, 1873, 4057, 4056, 1873, 480: 1873, 1873, 483: 1873, 1873, 3654, 3655, 3660, 1873, 1873, 491: 1873, 493: 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 502: 1873, 1873, 1873, 1873, 509: 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 4061, 1873, 1873, 1873, 1873, 3656, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 544: 4060, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 4058, 3657, 3658, 3651, 3661, 3650, 3659, 3652, 3653, 4067, 4068, 809: 4059, 1109: 4062, 1175: 4064, 1229: 4063, 1236: 4065, 1276: 4066}, - {1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 4053, 1822, 1822, 1822, 1822, 1822, 480: 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 491: 1822, 493: 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 502: 1822, 1822, 1822, 1822, 509: 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 544: 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 585: 1822, 651: 1822, 654: 1822, 1822}, + {1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 474: 1877, 1877, 4062, 4061, 1877, 480: 1877, 1877, 483: 1877, 1877, 3659, 3660, 3665, 1877, 1877, 491: 1877, 493: 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 502: 1877, 1877, 1877, 1877, 509: 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 4066, 1877, 1877, 1877, 1877, 3661, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 544: 4065, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 4063, 3662, 3663, 3656, 3666, 3655, 3664, 3657, 3658, 4072, 4073, 809: 4064, 1109: 4067, 1176: 4069, 1230: 4068, 1237: 4070, 1277: 4071}, + {1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 4058, 1826, 1826, 1826, 1826, 1826, 480: 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 491: 1826, 493: 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 502: 1826, 1826, 1826, 1826, 509: 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 544: 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 585: 1826, 651: 1826, 654: 1826, 1826}, + {1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 667: 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825}, + {1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 667: 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824}, + {1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 667: 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823}, + // 225 + {1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 667: 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822}, {1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 667: 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821}, - {1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 667: 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820}, + {1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1229, 1820, 1820, 1820, 1820, 1820, 480: 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 491: 1820, 493: 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 502: 1820, 1820, 1820, 1820, 509: 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 544: 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 585: 1820, 651: 1820, 654: 1820, 1820}, {1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 667: 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819}, - // 225 {1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 667: 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818}, + // 230 {1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 667: 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817}, - {1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1225, 1816, 1816, 1816, 1816, 1816, 480: 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 491: 1816, 493: 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 502: 1816, 1816, 1816, 1816, 509: 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 544: 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 585: 1816, 651: 1816, 654: 1816, 1816}, + {1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 667: 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816}, {1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 667: 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815}, {1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 667: 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814, 1814}, - // 230 {1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 667: 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813, 1813}, + // 235 {1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 667: 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812}, {1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 667: 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811}, {1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 667: 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810}, - {1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 667: 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809}, - // 235 + {1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 4053, 1809, 1809, 1809, 1809, 1809, 480: 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 491: 1809, 493: 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 502: 1809, 1809, 1809, 1809, 509: 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 544: 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 585: 1809, 651: 1809, 654: 1809, 1809}, {1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 667: 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808}, + // 240 {1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 667: 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807}, {1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 667: 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806}, - {1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 4048, 1805, 1805, 1805, 1805, 1805, 480: 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 491: 1805, 493: 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 502: 1805, 1805, 1805, 1805, 509: 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 544: 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 585: 1805, 651: 1805, 654: 1805, 1805}, + {1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 667: 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805}, {1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 667: 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804}, - // 240 {1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 667: 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803}, + // 245 {1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 667: 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802, 1802}, {1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 667: 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801}, {1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 667: 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800}, {1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 667: 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799}, - // 245 - {1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 667: 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798}, + {1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1228, 1798, 1798, 1798, 1798, 1798, 480: 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 491: 1798, 493: 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 502: 1798, 1798, 1798, 1798, 509: 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 544: 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 585: 1798, 651: 1798, 654: 1798, 1798}, + // 250 {1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 667: 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797}, {1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 667: 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796}, {1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 667: 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795}, - {1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1224, 1794, 1794, 1794, 1794, 1794, 480: 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 491: 1794, 493: 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 502: 1794, 1794, 1794, 1794, 509: 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 544: 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 585: 1794, 651: 1794, 654: 1794, 1794}, - // 250 + {1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 667: 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794}, {1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 667: 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793}, + // 255 {1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 667: 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792}, {1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 667: 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791}, {1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 667: 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790}, {1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 667: 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789}, - // 255 {1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 667: 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788}, - {1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 667: 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787}, + // 260 + {1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1225, 1787, 4052, 1787, 1787, 1787, 480: 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 491: 1787, 493: 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 502: 1787, 1787, 1787, 1787, 509: 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 544: 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 585: 1787, 651: 1787, 654: 1787, 1787}, {1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 667: 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786}, - {1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 667: 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785}, + {1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1223, 1785, 1785, 1785, 1785, 1785, 480: 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 491: 1785, 493: 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 502: 1785, 1785, 1785, 1785, 509: 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 544: 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 585: 1785, 651: 1785, 654: 1785, 1785}, {1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 667: 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784}, - // 260 - {1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1221, 1783, 4047, 1783, 1783, 1783, 480: 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 491: 1783, 493: 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 502: 1783, 1783, 1783, 1783, 509: 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 544: 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 585: 1783, 651: 1783, 654: 1783, 1783}, + {1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 667: 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783}, + // 265 {1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 667: 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782}, - {1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1219, 1781, 1781, 1781, 1781, 1781, 480: 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 491: 1781, 493: 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 502: 1781, 1781, 1781, 1781, 509: 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 544: 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 585: 1781, 651: 1781, 654: 1781, 1781}, + {1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 667: 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781}, {1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 667: 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780}, {1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 667: 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779}, - // 265 {1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 667: 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778}, + // 270 {1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 667: 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777, 1777}, {1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 667: 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776}, {1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 667: 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775}, {1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 667: 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774}, - // 270 {1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 667: 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773}, + // 275 {1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 667: 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772}, {1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 667: 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771}, {1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 667: 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770}, {1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 667: 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769}, - // 275 {1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 667: 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768}, + // 280 {1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 667: 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767}, {1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 667: 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766}, {1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 667: 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765}, {1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 667: 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764, 1764}, - // 280 {1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 667: 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763, 1763}, - {1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 667: 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762}, + // 285 + {1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1219, 1762, 1762, 1762, 1762, 1762, 480: 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 491: 1762, 493: 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 502: 1762, 1762, 1762, 1762, 509: 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 544: 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 585: 1762, 651: 1762, 654: 1762, 1762}, {1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 667: 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761, 1761}, {1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 667: 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760}, {1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 667: 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759, 1759}, - // 285 - {1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1215, 1758, 1758, 1758, 1758, 1758, 480: 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 491: 1758, 493: 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 502: 1758, 1758, 1758, 1758, 509: 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 544: 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 585: 1758, 651: 1758, 654: 1758, 1758}, + {1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 667: 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758}, + // 290 {1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 667: 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757}, - {1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 667: 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756}, + {1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1222, 1756, 1756, 1756, 1756, 1756, 480: 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 491: 1756, 493: 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 502: 1756, 1756, 1756, 1756, 509: 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 544: 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 585: 1756, 651: 1756, 654: 1756, 1756}, {1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 667: 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755}, {1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 667: 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754}, - // 290 {1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 667: 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753, 1753}, - {1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1218, 1752, 1752, 1752, 1752, 1752, 480: 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 491: 1752, 493: 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 502: 1752, 1752, 1752, 1752, 509: 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 544: 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 585: 1752, 651: 1752, 654: 1752, 1752}, + // 295 + {1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 667: 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752}, {1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 667: 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751}, {1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 667: 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750}, {1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 667: 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749}, - // 295 {1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 667: 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748, 1748}, + // 300 {1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 667: 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747}, - {1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 667: 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746}, + {1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 4049, 1746, 1746, 1746, 1746, 1746, 480: 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 491: 1746, 493: 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 502: 1746, 1746, 1746, 1746, 509: 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 544: 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 585: 1746, 651: 1746, 654: 1746, 1746}, {1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 667: 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745}, {1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 667: 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744}, - // 300 {1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 667: 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743}, - {1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 4044, 1742, 1742, 1742, 1742, 1742, 480: 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 491: 1742, 493: 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 502: 1742, 1742, 1742, 1742, 509: 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 544: 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 585: 1742, 651: 1742, 654: 1742, 1742}, + // 305 + {1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 667: 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742}, {1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 667: 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741}, {1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 667: 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740}, {1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 667: 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739}, - // 305 {1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 667: 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738}, + // 310 {1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 667: 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737}, {1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 667: 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736}, {1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 667: 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735}, {1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 667: 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734}, - // 310 {1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 667: 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733}, + // 315 {1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 667: 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732}, {1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 667: 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731}, {1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 667: 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730}, {1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 667: 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729}, - // 315 {1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 667: 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728}, + // 320 {1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 667: 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727}, {1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 667: 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726}, {1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 667: 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725}, {1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 667: 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724}, - // 320 {1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 667: 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723}, + // 325 {1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 667: 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722}, - {1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 667: 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721}, - {1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 667: 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720}, + {1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1206, 1721, 4048, 1721, 1721, 1721, 480: 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 491: 1721, 493: 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 502: 1721, 1721, 1721, 1721, 509: 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 544: 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 585: 1721, 651: 1721, 654: 1721, 1721}, + {1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1205, 1720, 4047, 1720, 1720, 1720, 480: 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 491: 1720, 493: 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 502: 1720, 1720, 1720, 1720, 509: 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 544: 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 585: 1720, 651: 1720, 654: 1720, 1720}, {1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 667: 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719, 1719}, - // 325 {1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 667: 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718}, - {1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1202, 1717, 4043, 1717, 1717, 1717, 480: 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 491: 1717, 493: 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 502: 1717, 1717, 1717, 1717, 509: 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 544: 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 585: 1717, 651: 1717, 654: 1717, 1717}, - {1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1201, 1716, 4042, 1716, 1716, 1716, 480: 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 491: 1716, 493: 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 502: 1716, 1716, 1716, 1716, 509: 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 544: 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 585: 1716, 651: 1716, 654: 1716, 1716}, + // 330 + {1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1204, 1717, 1717, 1717, 1717, 1717, 480: 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 491: 1717, 493: 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 502: 1717, 1717, 1717, 1717, 509: 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 544: 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 585: 1717, 651: 1717, 654: 1717, 1717}, + {1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 667: 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716}, {1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 667: 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715, 1715}, {1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 667: 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714, 1714}, - // 330 - {1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1200, 1713, 1713, 1713, 1713, 1713, 480: 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 491: 1713, 493: 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 502: 1713, 1713, 1713, 1713, 509: 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 544: 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 585: 1713, 651: 1713, 654: 1713, 1713}, - {1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 667: 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712}, - {1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 667: 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711}, - {1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 667: 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710}, - {1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 667: 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709}, + {1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 667: 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713}, // 335 - {1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1197, 1708, 1708, 1708, 1708, 1708, 480: 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 491: 1708, 493: 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 502: 1708, 1708, 1708, 1708, 509: 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 544: 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 585: 1708, 651: 1708, 654: 1708, 1708}, - {1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 667: 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707}, - {1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1198, 1706, 1706, 1706, 1706, 1706, 480: 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 491: 1706, 493: 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 502: 1706, 1706, 1706, 1706, 509: 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 544: 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 585: 1706, 651: 1706, 654: 1706, 1706}, - {1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 4032, 1705, 1705, 1705, 1705, 1705, 480: 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 491: 1705, 493: 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 502: 1705, 1705, 1705, 1705, 509: 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 544: 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 585: 1705, 651: 1705, 654: 1705, 1705}, - {1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 667: 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704}, + {1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1201, 1712, 1712, 1712, 1712, 1712, 480: 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 491: 1712, 493: 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 502: 1712, 1712, 1712, 1712, 509: 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 544: 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 585: 1712, 651: 1712, 654: 1712, 1712}, + {1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 667: 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711}, + {1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1202, 1710, 1710, 1710, 1710, 1710, 480: 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 491: 1710, 493: 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 502: 1710, 1710, 1710, 1710, 509: 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 544: 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 585: 1710, 651: 1710, 654: 1710, 1710}, + {1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 4037, 1709, 1709, 1709, 1709, 1709, 480: 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 491: 1709, 493: 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 502: 1709, 1709, 1709, 1709, 509: 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 544: 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 585: 1709, 651: 1709, 654: 1709, 1709}, + {1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 667: 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708}, // 340 + {1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 667: 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707}, + {1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1203, 1706, 1706, 1706, 1706, 1706, 480: 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 491: 1706, 493: 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 502: 1706, 1706, 1706, 1706, 509: 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 544: 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 585: 1706, 651: 1706, 654: 1706, 1706}, + {1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 667: 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705}, + {1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1226, 1704, 1704, 1704, 1704, 1704, 480: 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 491: 1704, 493: 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 502: 1704, 1704, 1704, 1704, 509: 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 544: 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 585: 1704, 651: 1704, 654: 1704, 1704}, {1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 667: 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703}, - {1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1199, 1702, 1702, 1702, 1702, 1702, 480: 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 491: 1702, 493: 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 502: 1702, 1702, 1702, 1702, 509: 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 544: 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 585: 1702, 651: 1702, 654: 1702, 1702}, + // 345 + {1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 667: 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702}, {1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 667: 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701}, - {1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1222, 1700, 1700, 1700, 1700, 1700, 480: 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 491: 1700, 493: 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 502: 1700, 1700, 1700, 1700, 509: 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 544: 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 585: 1700, 651: 1700, 654: 1700, 1700}, + {1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 667: 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700}, {1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 667: 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699}, - // 345 {1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 667: 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698}, + // 350 {1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 667: 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697}, {1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 667: 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1696}, {1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 667: 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695}, {1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 667: 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694}, - // 350 {1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 667: 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693}, + // 355 {1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 667: 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692}, - {1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 667: 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691}, + {1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1213, 1691, 1691, 1691, 1691, 1691, 480: 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 491: 1691, 493: 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 502: 1691, 1691, 1691, 1691, 509: 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 544: 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 585: 1691, 651: 1691, 654: 1691, 1691}, {1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 667: 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690}, {1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 667: 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689}, - // 355 {1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 667: 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688}, - {1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1209, 1687, 1687, 1687, 1687, 1687, 480: 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 491: 1687, 493: 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 502: 1687, 1687, 1687, 1687, 509: 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 544: 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 585: 1687, 651: 1687, 654: 1687, 1687}, + // 360 + {1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 667: 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687}, {1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 667: 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686, 1686}, {1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 667: 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685}, {1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 667: 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684}, - // 360 {1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 667: 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683}, + // 365 {1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 667: 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682}, {1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 667: 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681, 1681}, {1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 667: 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680}, {1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 667: 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679, 1679}, - // 365 {1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 667: 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678}, + // 370 {1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 667: 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677}, {1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 667: 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676}, {1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 667: 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675}, {1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 667: 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674}, - // 370 {1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 667: 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673}, + // 375 {1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 667: 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672, 1672}, {1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 667: 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671}, {1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 667: 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670}, {1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 667: 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669}, - // 375 - {1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 667: 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668}, + {1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1210, 1668, 1668, 1668, 1668, 1668, 480: 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 491: 1668, 493: 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 502: 1668, 1668, 1668, 1668, 509: 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 544: 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 585: 1668, 651: 1668, 654: 1668, 1668}, + // 380 {1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 667: 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667}, {1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 667: 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666, 1666}, {1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 667: 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665}, - {1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1206, 1664, 1664, 1664, 1664, 1664, 480: 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 491: 1664, 493: 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 502: 1664, 1664, 1664, 1664, 509: 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 544: 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 585: 1664, 651: 1664, 654: 1664, 1664}, - // 380 + {1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 667: 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664}, {1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 667: 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663}, + // 385 {1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 667: 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1662}, {1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 667: 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661}, {1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 667: 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660, 1660}, {1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 667: 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659}, - // 385 {1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 667: 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658, 1658}, + // 390 {1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 667: 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657}, {1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 667: 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656}, {1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 667: 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655, 1655}, {1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 667: 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654}, - // 390 {1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 667: 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653}, - {1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 667: 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652}, - {1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 667: 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651}, - {1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 667: 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650}, - {1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 667: 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649}, // 395 + {1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 667: 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652}, + {1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1208, 1651, 1651, 1651, 1651, 1651, 480: 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 491: 1651, 493: 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 502: 1651, 1651, 1651, 1651, 509: 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 544: 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 585: 1651, 651: 1651, 654: 1651, 1651}, + {1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1227, 1650, 1650, 1650, 1650, 1650, 480: 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 491: 1650, 493: 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 502: 1650, 1650, 1650, 1650, 509: 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 544: 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 585: 1650, 651: 1650, 654: 1650, 1650}, + {1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1215, 1649, 1649, 1649, 1649, 1649, 480: 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 491: 1649, 493: 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 502: 1649, 1649, 1649, 1649, 509: 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 544: 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 585: 1649, 651: 1649, 654: 1649, 1649}, {1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 667: 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648}, - {1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1204, 1647, 1647, 1647, 1647, 1647, 480: 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 491: 1647, 493: 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 502: 1647, 1647, 1647, 1647, 509: 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 544: 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 585: 1647, 651: 1647, 654: 1647, 1647}, - {1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1223, 1646, 1646, 1646, 1646, 1646, 480: 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 491: 1646, 493: 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 502: 1646, 1646, 1646, 1646, 509: 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 544: 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 585: 1646, 651: 1646, 654: 1646, 1646}, - {1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1211, 1645, 1645, 1645, 1645, 1645, 480: 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 491: 1645, 493: 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 502: 1645, 1645, 1645, 1645, 509: 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 544: 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 585: 1645, 651: 1645, 654: 1645, 1645}, - {1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 667: 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644}, // 400 + {1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 667: 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647}, + {1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 667: 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646}, + {1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1217, 1645, 1645, 1645, 1645, 1645, 480: 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 491: 1645, 493: 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 502: 1645, 1645, 1645, 1645, 509: 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 544: 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 585: 1645, 651: 1645, 654: 1645, 1645}, + {1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1216, 1644, 1644, 1644, 1644, 1644, 480: 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 491: 1644, 493: 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 502: 1644, 1644, 1644, 1644, 509: 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 544: 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 585: 1644, 651: 1644, 654: 1644, 1644}, {1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 667: 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643}, + // 405 {1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 667: 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642}, - {1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1213, 1641, 1641, 1641, 1641, 1641, 480: 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 491: 1641, 493: 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 502: 1641, 1641, 1641, 1641, 509: 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 544: 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 585: 1641, 651: 1641, 654: 1641, 1641}, - {1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1212, 1640, 1640, 1640, 1640, 1640, 480: 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 491: 1640, 493: 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 502: 1640, 1640, 1640, 1640, 509: 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 544: 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 585: 1640, 651: 1640, 654: 1640, 1640}, + {1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 667: 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641}, + {1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 667: 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640}, {1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 667: 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639, 1639}, - // 405 - {1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 667: 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638}, + {1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1207, 1638, 1638, 1638, 1638, 1638, 480: 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 491: 1638, 493: 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 502: 1638, 1638, 1638, 1638, 509: 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 544: 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 585: 1638, 651: 1638, 654: 1638, 1638}, + // 410 {1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 667: 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637, 1637}, {1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 667: 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636, 1636}, {1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 667: 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635}, - {1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1203, 1634, 1634, 1634, 1634, 1634, 480: 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 491: 1634, 493: 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 502: 1634, 1634, 1634, 1634, 509: 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 544: 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 585: 1634, 651: 1634, 654: 1634, 1634}, - // 410 + {1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 667: 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634}, {1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 667: 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633}, + // 415 {1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 667: 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632}, {1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 667: 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631}, {1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 667: 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630}, {1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 667: 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629}, - // 415 {1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 667: 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628}, + // 420 {1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 667: 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627}, {1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 667: 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626}, {1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 667: 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625}, {1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 667: 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624, 1624}, - // 420 {1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 667: 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623}, + // 425 {1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 667: 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622, 1622}, {1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 667: 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621}, {1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 667: 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620}, {1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 667: 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619}, - // 425 {1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 667: 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618}, + // 430 {1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 667: 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617}, {1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 667: 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616}, {1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 667: 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615}, {1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 667: 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614}, - // 430 {1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 667: 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613}, + // 435 {1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 667: 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612}, {1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 667: 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611}, {1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 667: 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610}, {1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 667: 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609, 1609}, - // 435 {1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 667: 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608, 1608}, + // 440 {1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 667: 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607}, {1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 667: 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606}, {1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 667: 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605}, {1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 667: 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604}, - // 440 {1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 667: 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603}, + // 445 {1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 667: 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602}, {1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 667: 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601}, {1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 667: 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600}, {1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 667: 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599}, - // 445 {1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 667: 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598}, + // 450 {1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 667: 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597}, {1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 667: 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596}, {1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 667: 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595}, {1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 667: 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594}, - // 450 {1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 667: 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593}, + // 455 {1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 667: 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592}, {1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 667: 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591}, {1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 667: 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590}, {1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 667: 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589}, - // 455 {1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 667: 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588}, + // 460 {1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 667: 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587}, {1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 667: 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586}, {1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 667: 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585, 1585}, {1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 667: 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584}, - // 460 {1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 667: 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583}, + // 465 {1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 667: 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582}, {1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 667: 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581}, {1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 667: 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580}, {1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 667: 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579, 1579}, - // 465 {1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 667: 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578, 1578}, + // 470 {1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 667: 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577}, {1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 667: 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576}, {1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 667: 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575}, {1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 667: 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574, 1574}, - // 470 {1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 667: 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573, 1573}, + // 475 {1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 667: 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572}, {1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 667: 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571}, {1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 667: 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570}, {1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 667: 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569}, - // 475 {1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 667: 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568}, + // 480 {1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 667: 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567, 1567}, {1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 667: 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566}, {1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 667: 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565}, {1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 667: 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564}, - // 480 {1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 667: 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563}, + // 485 {1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 667: 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562}, {1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 667: 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561}, {1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 667: 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560}, {1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 667: 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559}, - // 485 {1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 667: 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1558}, + // 490 {1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 667: 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557}, {1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 667: 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556, 1556}, {1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 667: 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555}, {1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 667: 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554}, - // 490 {1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 667: 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553}, + // 495 {1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 667: 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552}, {1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 667: 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551, 1551}, {1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 667: 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550}, {1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 667: 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549}, - // 495 {1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 667: 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548}, + // 500 {1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 667: 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547}, {1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 667: 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1546}, {1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 667: 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545}, {1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 667: 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544}, - // 500 {1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 667: 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543}, + // 505 {1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 667: 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542}, {1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 667: 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541}, {1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 667: 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540}, {1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 667: 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539}, - // 505 {1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 667: 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538}, + // 510 {1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 667: 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537}, {1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 667: 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536}, {1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 667: 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535}, {1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 667: 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534}, - // 510 {1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 667: 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533}, + // 515 {1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 667: 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532, 1532}, {1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 667: 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531}, {1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 667: 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530}, - {1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 667: 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529}, - // 515 - {1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 667: 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528}, - {1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 667: 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527}, - {1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 667: 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526}, - {1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 4029, 1523, 1523, 1523, 1523, 1523, 480: 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 491: 1523, 493: 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 502: 1523, 1523, 1523, 1523, 509: 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 544: 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 585: 1523, 651: 1523, 654: 1523, 1523}, - {1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 4018, 1522, 1522, 1522, 1522, 1522, 480: 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 491: 1522, 493: 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 502: 1522, 1522, 1522, 1522, 509: 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 544: 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 585: 1522, 651: 1522, 654: 1522, 1522}, + {1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 4034, 1527, 1527, 1527, 1527, 1527, 480: 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 491: 1527, 493: 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 502: 1527, 1527, 1527, 1527, 509: 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 544: 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 585: 1527, 651: 1527, 654: 1527, 1527}, + {1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 4023, 1526, 1526, 1526, 1526, 1526, 480: 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 491: 1526, 493: 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 502: 1526, 1526, 1526, 1526, 509: 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 544: 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 585: 1526, 651: 1526, 654: 1526, 1526}, // 520 + {1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 667: 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525}, + {1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 667: 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524}, + {1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 667: 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523}, + {1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 667: 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522}, {1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 667: 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521}, + // 525 {1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 667: 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520}, {1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 667: 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519}, {1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 667: 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518}, {1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 667: 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517}, - // 525 {1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 667: 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516}, + // 530 {1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 667: 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515}, {1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 667: 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514}, {1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 667: 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513}, {1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 667: 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512}, - // 530 {1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 667: 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511}, + // 535 {1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 667: 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510}, {1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 667: 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509}, {1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 667: 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508}, {1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 667: 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507}, - // 535 {1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 667: 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506, 1506}, + // 540 {1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 667: 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505}, {1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 667: 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504}, {1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 667: 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503}, {1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 667: 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502}, - // 540 {1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 667: 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1501}, + // 545 {1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 667: 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500}, {1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 667: 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499}, {1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 667: 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498}, {1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 667: 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1497}, - // 545 {1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 667: 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496}, + // 550 {1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 667: 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495}, {1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 667: 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494}, {1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 667: 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493}, {1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 667: 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492}, - // 550 {1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 667: 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491}, + // 555 {1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 667: 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490}, {1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 667: 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489}, {1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 667: 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488}, {1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 667: 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1487}, - // 555 {1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 667: 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486}, + // 560 {1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 667: 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485}, {1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 667: 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484}, {1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 667: 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483}, {1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 667: 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482, 1482}, - // 560 {1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 667: 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481}, + // 565 {1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 667: 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480}, {1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 667: 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479}, {1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 667: 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478, 1478}, {1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 667: 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477}, - // 565 {1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 667: 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476}, + // 570 {1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 667: 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475, 1475}, {1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 667: 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474}, {1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 667: 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473}, {1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 667: 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472}, - // 570 {1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 667: 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471}, + // 575 {1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 667: 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 1470}, {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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 1469, 1469, 1469, 1469, 1469, 1469, 1469, 1469, 1469, 1469, 1469, 1469, 1469, 1469, 1469, 667: 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, 1469, 1469, 1469, 1469, 1469, 1469, 1469, 1469, 1469, 1469, 1469, 1469, 1469, 1469}, {1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 667: 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468}, {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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 1467, 1467, 1467, 1467, 1467, 1467, 1467, 1467, 1467, 1467, 1467, 1467, 1467, 1467, 1467, 667: 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, 1467, 1467, 1467, 1467, 1467, 1467, 1467, 1467, 1467, 1467, 1467, 1467, 1467, 1467}, - // 575 {1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 667: 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466}, + // 580 {1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 667: 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465}, {1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 667: 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464}, {1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 667: 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463}, {1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 667: 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462}, - // 580 {1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 667: 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461}, + // 585 {1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 667: 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460, 1460}, {1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 667: 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459}, {1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 667: 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458}, {1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 667: 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457}, - // 585 {1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 667: 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456, 1456}, + // 590 {1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 667: 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455}, {1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 667: 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454}, {1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 667: 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453}, {1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 667: 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452}, - // 590 {1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 667: 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451}, + // 595 {1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 667: 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450, 1450}, {1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 667: 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449}, {1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 667: 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448}, {1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 667: 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447}, - // 595 {1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 667: 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446, 1446}, + // 600 {1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 667: 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445, 1445}, {1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 667: 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444, 1444}, {1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 667: 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443}, {1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 667: 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442}, - // 600 - {1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 667: 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441}, + {1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1146, 1441, 1441, 1441, 1441, 1441, 480: 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 491: 1441, 493: 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 502: 1441, 1441, 1441, 1441, 509: 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 544: 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 585: 1441, 651: 1441, 654: 1441, 1441}, + // 605 {1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 667: 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440}, {1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 667: 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1439}, {1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 667: 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438}, - {1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1142, 1437, 1437, 1437, 1437, 1437, 480: 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 491: 1437, 493: 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 502: 1437, 1437, 1437, 1437, 509: 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 544: 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 585: 1437, 651: 1437, 654: 1437, 1437}, - // 605 + {1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 667: 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437}, {1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 667: 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436}, + // 610 {1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 667: 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435}, {1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 667: 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434}, {1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 667: 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433}, {1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 667: 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432}, - // 610 {1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 667: 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431}, + // 615 {1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 667: 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430}, {1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 667: 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1429}, {1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 667: 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428}, {1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 667: 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427}, - // 615 - {1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 667: 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426}, + {1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 4014, 1426, 1426, 1426, 1426, 1426, 480: 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 491: 1426, 493: 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 502: 1426, 1426, 1426, 1426, 509: 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 544: 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 585: 1426, 651: 1426, 654: 1426, 1426}, + // 620 {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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 1425, 1425, 1425, 1425, 1425, 1425, 1425, 1425, 1425, 1425, 1425, 1425, 1425, 1425, 667: 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}, {1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 667: 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424}, {1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 667: 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423}, - {1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 4009, 1422, 1422, 1422, 1422, 1422, 480: 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 491: 1422, 493: 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 502: 1422, 1422, 1422, 1422, 509: 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 544: 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 585: 1422, 651: 1422, 654: 1422, 1422}, - // 620 + {1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 667: 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422}, {1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 667: 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421}, + // 625 {1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 667: 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420}, {1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 667: 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419, 1419}, {1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 667: 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418}, {1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 667: 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417, 1417}, - // 625 {1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 667: 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416}, + // 630 {1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 667: 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415}, {1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 667: 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414}, {1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 667: 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413}, {1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 667: 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412}, - // 630 {1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 667: 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411}, + // 635 {1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 667: 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410, 1410}, {1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 667: 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409}, - {1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 667: 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408}, + {1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1145, 1408, 1408, 1408, 1408, 1408, 480: 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 491: 1408, 493: 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 502: 1408, 1408, 1408, 1408, 509: 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 544: 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 585: 1408, 651: 1408, 654: 1408, 1408}, {1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 667: 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407}, - // 635 {1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 667: 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406}, + // 640 {1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 667: 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405}, - {1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1141, 1404, 1404, 1404, 1404, 1404, 480: 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 491: 1404, 493: 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 502: 1404, 1404, 1404, 1404, 509: 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 544: 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 585: 1404, 651: 1404, 654: 1404, 1404}, + {1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 667: 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404}, {1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 667: 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403}, {1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 667: 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402}, - // 640 {1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 667: 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401, 1401}, + // 645 {1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 667: 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400}, {1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 667: 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399}, {1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 667: 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398}, {1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 667: 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397}, - // 645 - {1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 667: 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396}, - {1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 667: 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395}, + {1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 4007, 1396, 1396, 1396, 1396, 1396, 480: 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 491: 1396, 493: 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 502: 1396, 1396, 1396, 1396, 509: 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 544: 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 585: 1396, 651: 1396, 654: 1396, 1396}, + // 650 + {1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 4000, 1395, 1395, 1395, 1395, 1395, 480: 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 491: 1395, 493: 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 502: 1395, 1395, 1395, 1395, 509: 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 544: 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 585: 1395, 651: 1395, 654: 1395, 1395}, {1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 667: 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394}, {1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 667: 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393}, - {1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 4002, 1392, 1392, 1392, 1392, 1392, 480: 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 491: 1392, 493: 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 502: 1392, 1392, 1392, 1392, 509: 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 544: 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 585: 1392, 651: 1392, 654: 1392, 1392}, - // 650 - {1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 3995, 1391, 1391, 1391, 1391, 1391, 480: 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 491: 1391, 493: 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 502: 1391, 1391, 1391, 1391, 509: 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 544: 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 585: 1391, 651: 1391, 654: 1391, 1391}, + {1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 667: 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392}, + {1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 667: 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391}, + // 655 {1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 667: 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390}, {1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 667: 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389}, {1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 667: 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388}, {1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 667: 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387}, - // 655 {1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 667: 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386}, + // 660 {1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 667: 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385}, {1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 667: 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384}, {1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 667: 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383}, {1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 667: 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382}, - // 660 {1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 667: 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381}, + // 665 {1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 667: 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380}, {1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 667: 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379}, {1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 667: 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378}, {1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 667: 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377, 1377}, - // 665 - {1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 667: 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376}, - {1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 667: 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375}, + {1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 3980, 1376, 1376, 1376, 1376, 1376, 480: 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 491: 1376, 493: 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 502: 1376, 1376, 1376, 1376, 509: 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 544: 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 585: 1376, 651: 1376, 654: 1376, 1376}, + // 670 + {1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 3972, 1375, 1375, 1375, 1375, 1375, 480: 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 491: 1375, 493: 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 502: 1375, 1375, 1375, 1375, 509: 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 544: 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 585: 1375, 651: 1375, 654: 1375, 1375}, {1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 667: 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374}, {1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 667: 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373}, - {1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 3975, 1372, 1372, 1372, 1372, 1372, 480: 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 491: 1372, 493: 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 502: 1372, 1372, 1372, 1372, 509: 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 544: 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 585: 1372, 651: 1372, 654: 1372, 1372}, - // 670 - {1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 3967, 1371, 1371, 1371, 1371, 1371, 480: 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 491: 1371, 493: 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 502: 1371, 1371, 1371, 1371, 509: 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 544: 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 585: 1371, 651: 1371, 654: 1371, 1371}, + {1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 667: 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372}, + {1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 667: 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371}, + // 675 {1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 667: 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370}, {1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 667: 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369}, {1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 667: 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368}, {1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 667: 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367}, - // 675 {1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 667: 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366}, + // 680 {1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 667: 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365}, {1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 667: 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364}, {1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 667: 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363}, {1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 667: 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1362}, - // 680 {1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 667: 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361}, + // 685 {1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 667: 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360}, {1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 667: 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359}, {1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 667: 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358}, {1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 667: 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357}, - // 685 {1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 667: 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356}, - {1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 667: 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355}, - {1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 667: 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354}, - {1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 667: 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353}, - {1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 667: 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352}, // 690 + {1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 474: 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 502: 1318, 1318, 1318, 1318, 509: 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 544: 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1318, 573: 1318, 582: 1318, 585: 1318, 1318, 638: 1318, 642: 1318, 1318, 1318}, + {1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 474: 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 502: 1317, 1317, 1317, 1317, 509: 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 544: 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 573: 1317, 582: 1317, 585: 1317, 1317, 638: 1317, 642: 1317, 1317, 1317}, + {1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 474: 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 502: 1316, 1316, 1316, 1316, 509: 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 544: 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 573: 1316, 582: 1316, 585: 1316, 1316, 638: 1316, 642: 1316, 1316, 1316}, + {1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 474: 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 502: 1315, 1315, 1315, 1315, 509: 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 544: 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 573: 1315, 582: 1315, 585: 1315, 1315, 638: 1315, 642: 1315, 1315, 1315}, {1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 474: 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 502: 1314, 1314, 1314, 1314, 509: 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 544: 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 573: 1314, 582: 1314, 585: 1314, 1314, 638: 1314, 642: 1314, 1314, 1314}, + // 695 {1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 474: 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 502: 1313, 1313, 1313, 1313, 509: 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 544: 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 573: 1313, 582: 1313, 585: 1313, 1313, 638: 1313, 642: 1313, 1313, 1313}, - {1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 474: 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 502: 1312, 1312, 1312, 1312, 509: 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 544: 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 573: 1312, 582: 1312, 585: 1312, 1312, 638: 1312, 642: 1312, 1312, 1312}, - {1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 474: 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 502: 1311, 1311, 1311, 1311, 509: 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 544: 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 573: 1311, 582: 1311, 585: 1311, 1311, 638: 1311, 642: 1311, 1311, 1311}, + {1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 474: 1312, 3971, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 502: 1312, 1312, 1312, 1312, 509: 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 544: 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 573: 1312, 582: 1312, 585: 1312, 1312, 638: 1312, 642: 1312, 1312, 1312}, + {475: 3968, 577: 3969, 580: 3970}, {1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 474: 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 502: 1310, 1310, 1310, 1310, 509: 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 544: 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 573: 1310, 582: 1310, 585: 1310, 1310, 638: 1310, 642: 1310, 1310, 1310}, - // 695 {1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 474: 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 502: 1309, 1309, 1309, 1309, 509: 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 544: 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 573: 1309, 582: 1309, 585: 1309, 1309, 638: 1309, 642: 1309, 1309, 1309}, - {1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 474: 1308, 3966, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 502: 1308, 1308, 1308, 1308, 509: 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 544: 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 573: 1308, 582: 1308, 585: 1308, 1308, 638: 1308, 642: 1308, 1308, 1308}, - {475: 3963, 577: 3964, 580: 3965}, - {1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 474: 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 502: 1306, 1306, 1306, 1306, 509: 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 544: 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 573: 1306, 582: 1306, 585: 1306, 1306, 638: 1306, 642: 1306, 1306, 1306}, - {1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 474: 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 502: 1305, 1305, 1305, 1305, 509: 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 544: 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 573: 1305, 582: 1305, 585: 1305, 1305, 638: 1305, 642: 1305, 1305, 1305}, // 700 - {1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 474: 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 502: 1302, 1302, 1302, 1302, 509: 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 544: 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 573: 1302, 582: 1302, 585: 1302, 1302, 638: 1302, 642: 1302, 1302, 1302}, - {1297, 1297, 7: 3380, 47: 1297, 125: 1297, 472: 1297, 474: 1297, 480: 1297, 1297, 488: 1297, 1297, 493: 1297, 1297, 1297, 1297, 500: 1297}, - {1296, 1296, 7: 1296, 47: 1296, 125: 1296, 472: 1296, 474: 1296, 480: 1296, 1296, 488: 1296, 1296, 493: 1296, 1296, 1296, 1296, 500: 1296, 502: 1296, 514: 1296, 516: 1296, 524: 1296, 527: 1296, 1296}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 1216, 475: 3208, 3227, 2724, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 3961}, - {1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 474: 1270, 1270, 1270, 1270, 1270, 480: 1270, 1270, 3318, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 491: 1270, 493: 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 502: 1270, 1270, 1270, 1270, 509: 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 544: 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 585: 3319}, + {1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 474: 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 502: 1306, 1306, 1306, 1306, 509: 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 544: 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 573: 1306, 582: 1306, 585: 1306, 1306, 638: 1306, 642: 1306, 1306, 1306}, + {1301, 1301, 7: 3385, 47: 1301, 125: 1301, 472: 1301, 474: 1301, 480: 1301, 1301, 488: 1301, 1301, 493: 1301, 1301, 1301, 1301, 500: 1301}, + {1300, 1300, 7: 1300, 47: 1300, 125: 1300, 472: 1300, 474: 1300, 480: 1300, 1300, 488: 1300, 1300, 493: 1300, 1300, 1300, 1300, 500: 1300, 502: 1300, 514: 1300, 516: 1300, 524: 1300, 527: 1300, 1300}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 1220, 475: 3213, 3232, 2729, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 3966}, + {1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 474: 1274, 1274, 1274, 1274, 1274, 480: 1274, 1274, 3323, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 491: 1274, 493: 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 502: 1274, 1274, 1274, 1274, 509: 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 544: 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 585: 3324}, // 705 - {1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 474: 1269, 1269, 1269, 1269, 1269, 480: 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 491: 1269, 493: 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 502: 1269, 1269, 1269, 1269, 509: 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 544: 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 585: 1269, 651: 3956, 654: 1269, 1269}, - {1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 474: 1266, 1266, 1266, 1266, 1266, 480: 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 491: 1266, 493: 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 502: 1266, 1266, 1266, 1266, 509: 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 544: 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 585: 1266, 654: 3952, 3953}, + {1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 474: 1273, 1273, 1273, 1273, 1273, 480: 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 491: 1273, 493: 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 502: 1273, 1273, 1273, 1273, 509: 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 544: 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 585: 1273, 651: 3961, 654: 1273, 1273}, + {1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 474: 1270, 1270, 1270, 1270, 1270, 480: 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 491: 1270, 493: 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 502: 1270, 1270, 1270, 1270, 509: 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 544: 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 585: 1270, 654: 3957, 3958}, + {1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 474: 1269, 1269, 1269, 1269, 1269, 480: 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 491: 1269, 493: 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 502: 1269, 1269, 1269, 1269, 509: 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 544: 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 585: 1269}, + {1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 474: 1268, 1268, 1268, 1268, 1268, 480: 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 491: 1268, 493: 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 502: 1268, 1268, 1268, 1268, 509: 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 544: 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 585: 1268}, + {1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 474: 1267, 1267, 1267, 1267, 1267, 480: 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 491: 1267, 493: 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 502: 1267, 1267, 1267, 1267, 509: 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 544: 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 585: 1267}, + // 710 {1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 474: 1265, 1265, 1265, 1265, 1265, 480: 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 491: 1265, 493: 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 502: 1265, 1265, 1265, 1265, 509: 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 544: 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 585: 1265}, {1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 474: 1264, 1264, 1264, 1264, 1264, 480: 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 491: 1264, 493: 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 502: 1264, 1264, 1264, 1264, 509: 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 544: 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 585: 1264}, {1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 474: 1263, 1263, 1263, 1263, 1263, 480: 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 491: 1263, 493: 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 502: 1263, 1263, 1263, 1263, 509: 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 544: 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 585: 1263}, - // 710 + {1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 474: 1262, 1262, 1262, 1262, 1262, 480: 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 491: 1262, 493: 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 502: 1262, 1262, 1262, 1262, 509: 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 544: 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 585: 1262}, {1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 474: 1261, 1261, 1261, 1261, 1261, 480: 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 491: 1261, 493: 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 502: 1261, 1261, 1261, 1261, 509: 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 544: 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 585: 1261}, - {1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 474: 1260, 1260, 1260, 1260, 1260, 480: 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 491: 1260, 493: 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 502: 1260, 1260, 1260, 1260, 509: 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 544: 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 585: 1260}, - {1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 474: 1259, 1259, 1259, 1259, 1259, 480: 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 491: 1259, 493: 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 502: 1259, 1259, 1259, 1259, 509: 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 544: 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 585: 1259}, - {1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 474: 1258, 1258, 1258, 1258, 1258, 480: 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 491: 1258, 493: 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 502: 1258, 1258, 1258, 1258, 509: 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 544: 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 585: 1258}, - {1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 474: 1257, 1257, 1257, 1257, 1257, 480: 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 491: 1257, 493: 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 502: 1257, 1257, 1257, 1257, 509: 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 544: 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 585: 1257}, // 715 - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 3317, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3316, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3951, 3222, 3302, 3221, 3218}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 3317, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3316, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3950, 3222, 3302, 3221, 3218}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 3317, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3316, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3949, 3222, 3302, 3221, 3218}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 3317, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3316, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3948, 3222, 3302, 3221, 3218}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 3317, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3316, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3947, 3222, 3302, 3221, 3218}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 3322, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3321, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3956, 3227, 3307, 3226, 3223}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 3322, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3321, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3955, 3227, 3307, 3226, 3223}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 3322, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3321, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3954, 3227, 3307, 3226, 3223}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 3322, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3321, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3953, 3227, 3307, 3226, 3223}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 3322, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3321, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3952, 3227, 3307, 3226, 3223}, // 720 - {1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 474: 1250, 1250, 1250, 1250, 1250, 480: 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 491: 1250, 493: 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 502: 1250, 1250, 1250, 1250, 509: 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 544: 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 585: 1250}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 2558, 3208, 3227, 2724, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3847, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 2722, 2556, 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 645: 2552, 647: 2725, 663: 3213, 2731, 2732, 2730, 708: 3846, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 3844, 747: 3849, 2553, 2554, 2555, 2564, 755: 2562, 2561, 2560, 3848, 3851, 3850, 777: 3845}, - {473: 3839}, - {473: 2559, 708: 3838}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 3835, 2731, 2732, 2730}, + {1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 474: 1254, 1254, 1254, 1254, 1254, 480: 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 491: 1254, 493: 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 502: 1254, 1254, 1254, 1254, 509: 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 544: 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 585: 1254}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 2563, 3213, 3232, 2729, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3852, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 2727, 2561, 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 645: 2557, 647: 2730, 663: 3218, 2736, 2737, 2735, 708: 3851, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 3849, 747: 3854, 2558, 2559, 2560, 2569, 755: 2567, 2566, 2565, 3853, 3856, 3855, 777: 3850}, + {473: 3844}, + {473: 2564, 708: 3843}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 3840, 2736, 2737, 2735}, // 725 - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 3317, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3316, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3834, 3222, 3302, 3221, 3218}, - {473: 3829}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 2724, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 542: 1071, 3233, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 3816, 1204: 3817}, - {473: 3758}, - {473: 3755}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 3322, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3321, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3839, 3227, 3307, 3226, 3223}, + {473: 3834}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 2729, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 542: 1075, 3238, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 3821, 1205: 3822}, + {473: 3763}, + {473: 3760}, // 730 - {473: 3747}, - {473: 1220}, - {473: 1217}, + {473: 3752}, + {473: 1224}, + {473: 1221}, + {473: 1218}, {473: 1214}, - {473: 1210}, // 735 - {473: 1208}, - {473: 1207}, - {473: 1205}, + {473: 1212}, + {473: 1211}, + {473: 1209}, + {1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 480: 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 491: 1198, 493: 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 502: 1198, 1198, 1198, 1198, 509: 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 544: 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 585: 1198}, + {1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 480: 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 491: 1197, 493: 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 502: 1197, 1197, 1197, 1197, 509: 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 544: 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 585: 1197}, + // 740 + {1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 480: 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 491: 1196, 493: 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 502: 1196, 1196, 1196, 1196, 509: 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 544: 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 585: 1196}, + {1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 480: 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 491: 1195, 493: 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 502: 1195, 1195, 1195, 1195, 509: 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 544: 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 585: 1195}, {1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 480: 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 491: 1194, 493: 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 502: 1194, 1194, 1194, 1194, 509: 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 544: 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 585: 1194}, {1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 480: 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 491: 1193, 493: 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 502: 1193, 1193, 1193, 1193, 509: 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 544: 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 585: 1193}, - // 740 {1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 480: 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 491: 1192, 493: 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 502: 1192, 1192, 1192, 1192, 509: 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 544: 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 585: 1192}, + // 745 {1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 480: 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 491: 1191, 493: 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 502: 1191, 1191, 1191, 1191, 509: 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 544: 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 585: 1191}, {1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 480: 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 491: 1190, 493: 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 502: 1190, 1190, 1190, 1190, 509: 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 544: 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 585: 1190}, {1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 480: 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 491: 1189, 493: 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 502: 1189, 1189, 1189, 1189, 509: 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 544: 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 585: 1189}, - {1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 480: 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 491: 1188, 493: 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 502: 1188, 1188, 1188, 1188, 509: 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 544: 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 585: 1188}, - // 745 - {1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 480: 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 491: 1187, 493: 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 502: 1187, 1187, 1187, 1187, 509: 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 544: 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 585: 1187}, - {1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 480: 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 491: 1186, 493: 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 502: 1186, 1186, 1186, 1186, 509: 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 544: 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 585: 1186}, - {1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 480: 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 491: 1185, 493: 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 502: 1185, 1185, 1185, 1185, 509: 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 544: 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 585: 1185}, - {473: 3744}, - {473: 3741}, + {473: 3749}, + {473: 3746}, // 750 - {1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 3738, 1196, 1196, 1196, 1196, 1196, 480: 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 491: 1196, 493: 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 502: 1196, 1196, 1196, 1196, 509: 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 544: 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 585: 1196, 1090: 3739}, - {473: 3736}, - {1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 3732, 1103, 1103, 1103, 1103, 1103, 480: 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 491: 1103, 493: 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 502: 1103, 1103, 1103, 1103, 509: 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 544: 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 585: 1103, 1217: 3731}, - {473: 3723}, - {473: 3719}, + {1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 3743, 1200, 1200, 1200, 1200, 1200, 480: 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 491: 1200, 493: 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 502: 1200, 1200, 1200, 1200, 509: 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 544: 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 585: 1200, 1090: 3744}, + {473: 3741}, + {1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 3737, 1107, 1107, 1107, 1107, 1107, 480: 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 491: 1107, 493: 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 502: 1107, 1107, 1107, 1107, 509: 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 544: 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 585: 1107, 1218: 3736}, + {473: 3728}, + {473: 3724}, // 755 - {473: 3714}, + {473: 3719}, + {473: 3716}, {473: 3711}, - {473: 3706}, - {473: 3697}, - {473: 3690}, + {473: 3702}, + {473: 3695}, // 760 - {473: 3685}, - {473: 3648}, - {473: 3634}, - {473: 3617}, - {1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 474: 1150, 1150, 1150, 1150, 1150, 480: 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 491: 1150, 493: 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 502: 1150, 1150, 1150, 1150, 509: 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 544: 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 585: 1150}, + {473: 3690}, + {473: 3653}, + {473: 3639}, + {473: 3622}, + {1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 474: 1154, 1154, 1154, 1154, 1154, 480: 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 491: 1154, 493: 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 502: 1154, 1154, 1154, 1154, 509: 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 544: 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 585: 1154}, // 765 - {473: 3610}, - {473: 1144}, - {473: 1143}, - {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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 1135, 1135, 1135, 1135, 1135, 474: 1135, 1135, 1135, 1135, 1135, 480: 1135, 1135, 1135, 1135, 1135, 1135, 1135, 1135, 1135, 1135, 491: 1135, 493: 1135, 1135, 1135, 1135, 1135, 1135, 1135, 1135, 502: 1135, 1135, 1135, 1135, 509: 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, 1135, 1135, 1135, 1135, 1135, 1135, 1135, 1135, 544: 1135, 1135, 1135, 1135, 1135, 1135, 1135, 1135, 1135, 1135, 1135, 1135, 1135, 1135, 1135, 1135, 1135, 1135, 1135, 1135, 1135, 1135, 585: 1135}, - {473: 3607}, + {473: 3615}, + {473: 1148}, + {473: 1147}, + {1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 474: 1139, 1139, 1139, 1139, 1139, 480: 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 491: 1139, 493: 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 502: 1139, 1139, 1139, 1139, 509: 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 544: 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 585: 1139}, + {473: 3612}, // 770 - {473: 3604}, - {473: 3596}, - {473: 3588}, - {473: 3580}, - {473: 3566}, + {473: 3609}, + {473: 3601}, + {473: 3593}, + {473: 3585}, + {473: 3571}, // 775 + {473: 3559}, {473: 3554}, {473: 3549}, {473: 3544}, {473: 3539}, - {473: 3534}, // 780 + {473: 3534}, {473: 3529}, - {473: 3524}, - {473: 3511}, - {473: 3508}, - {473: 3505}, + {473: 3516}, + {473: 3513}, + {473: 3510}, // 785 - {473: 3502}, - {473: 3499}, - {473: 3496}, - {473: 3492}, - {473: 3486}, + {473: 3507}, + {473: 3504}, + {473: 3501}, + {473: 3497}, + {473: 3491}, // 790 + {473: 3478}, {473: 3473}, {473: 3468}, - {473: 3463}, - {473: 3305}, - {742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 474: 742, 742, 742, 742, 742, 480: 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 491: 742, 493: 742, 742, 742, 742, 742, 742, 742, 742, 502: 742, 742, 742, 742, 509: 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 544: 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 585: 742}, + {473: 3310}, + {746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 474: 746, 746, 746, 746, 746, 480: 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 491: 746, 493: 746, 746, 746, 746, 746, 746, 746, 746, 502: 746, 746, 746, 746, 509: 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 544: 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 585: 746}, // 795 - {741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 474: 741, 741, 741, 741, 741, 480: 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 491: 741, 493: 741, 741, 741, 741, 741, 741, 741, 741, 502: 741, 741, 741, 741, 509: 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 544: 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 585: 741}, - {740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 474: 740, 740, 740, 740, 740, 480: 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 491: 740, 493: 740, 740, 740, 740, 740, 740, 740, 740, 502: 740, 740, 740, 740, 509: 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 544: 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 585: 740}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 2724, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 3306}, - {7: 3314, 505: 3313, 509: 3311, 3312, 3310, 3308, 733: 3309, 3307}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 2724, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 3462}, + {745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 474: 745, 745, 745, 745, 745, 480: 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 491: 745, 493: 745, 745, 745, 745, 745, 745, 745, 745, 502: 745, 745, 745, 745, 509: 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 544: 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 585: 745}, + {744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 474: 744, 744, 744, 744, 744, 480: 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 491: 744, 493: 744, 744, 744, 744, 744, 744, 744, 744, 502: 744, 744, 744, 744, 509: 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 544: 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 585: 744}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 2729, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 3311}, + {7: 3319, 505: 3318, 509: 3316, 3317, 3315, 3313, 733: 3314, 3312}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 2729, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 3467}, // 800 - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 2724, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 3461}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 2724, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 3460}, - {2: 1917, 1917, 1917, 1917, 1917, 8: 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 48: 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 473: 1917, 475: 1917, 1917, 1917, 479: 1917, 483: 1917, 1917, 1917, 1917, 1917, 492: 1917, 501: 1917, 506: 1917, 1917, 1917, 543: 1917, 566: 1917, 1917, 1917, 570: 1917, 1917, 1917, 574: 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 583: 1917, 1917, 587: 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 639: 1917, 1917, 1917, 647: 1917}, - {2: 1916, 1916, 1916, 1916, 1916, 8: 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 48: 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 473: 1916, 475: 1916, 1916, 1916, 479: 1916, 483: 1916, 1916, 1916, 1916, 1916, 492: 1916, 501: 1916, 506: 1916, 1916, 1916, 543: 1916, 566: 1916, 1916, 1916, 570: 1916, 1916, 1916, 574: 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 583: 1916, 1916, 587: 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 1916, 639: 1916, 1916, 1916, 647: 1916}, - {2: 1915, 1915, 1915, 1915, 1915, 8: 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 48: 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 473: 1915, 475: 1915, 1915, 1915, 479: 1915, 483: 1915, 1915, 1915, 1915, 1915, 492: 1915, 501: 1915, 506: 1915, 1915, 1915, 543: 1915, 566: 1915, 1915, 1915, 570: 1915, 1915, 1915, 574: 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 583: 1915, 1915, 587: 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 639: 1915, 1915, 1915, 647: 1915}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 2729, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 3466}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 2729, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 3465}, + {2: 1921, 1921, 1921, 1921, 1921, 8: 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 48: 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 473: 1921, 475: 1921, 1921, 1921, 479: 1921, 483: 1921, 1921, 1921, 1921, 1921, 492: 1921, 501: 1921, 506: 1921, 1921, 1921, 543: 1921, 566: 1921, 1921, 1921, 570: 1921, 1921, 1921, 574: 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 583: 1921, 1921, 587: 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 639: 1921, 1921, 1921, 647: 1921}, + {2: 1920, 1920, 1920, 1920, 1920, 8: 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 48: 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 473: 1920, 475: 1920, 1920, 1920, 479: 1920, 483: 1920, 1920, 1920, 1920, 1920, 492: 1920, 501: 1920, 506: 1920, 1920, 1920, 543: 1920, 566: 1920, 1920, 1920, 570: 1920, 1920, 1920, 574: 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 583: 1920, 1920, 587: 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 1920, 639: 1920, 1920, 1920, 647: 1920}, + {2: 1919, 1919, 1919, 1919, 1919, 8: 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 48: 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 473: 1919, 475: 1919, 1919, 1919, 479: 1919, 483: 1919, 1919, 1919, 1919, 1919, 492: 1919, 501: 1919, 506: 1919, 1919, 1919, 543: 1919, 566: 1919, 1919, 1919, 570: 1919, 1919, 1919, 574: 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 583: 1919, 1919, 587: 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 639: 1919, 1919, 1919, 647: 1919}, // 805 - {2: 1914, 1914, 1914, 1914, 1914, 8: 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 48: 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 473: 1914, 475: 1914, 1914, 1914, 479: 1914, 483: 1914, 1914, 1914, 1914, 1914, 492: 1914, 501: 1914, 506: 1914, 1914, 1914, 543: 1914, 566: 1914, 1914, 1914, 570: 1914, 1914, 1914, 574: 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 583: 1914, 1914, 587: 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 1914, 639: 1914, 1914, 1914, 647: 1914}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 3317, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3316, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3315, 3222, 3302, 3221, 3218}, - {47: 3320, 482: 3318, 585: 3319}, - {473: 1216}, - {739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 474: 739, 739, 739, 739, 739, 480: 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 491: 739, 493: 739, 739, 739, 739, 739, 739, 739, 739, 502: 739, 739, 739, 739, 509: 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 544: 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 585: 739}, + {2: 1918, 1918, 1918, 1918, 1918, 8: 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 48: 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 473: 1918, 475: 1918, 1918, 1918, 479: 1918, 483: 1918, 1918, 1918, 1918, 1918, 492: 1918, 501: 1918, 506: 1918, 1918, 1918, 543: 1918, 566: 1918, 1918, 1918, 570: 1918, 1918, 1918, 574: 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 583: 1918, 1918, 587: 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 639: 1918, 1918, 1918, 647: 1918}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 3322, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3321, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3320, 3227, 3307, 3226, 3223}, + {47: 3325, 482: 3323, 585: 3324}, + {473: 1220}, + {743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 474: 743, 743, 743, 743, 743, 480: 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 491: 743, 493: 743, 743, 743, 743, 743, 743, 743, 743, 502: 743, 743, 743, 743, 509: 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 544: 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 585: 743}, // 810 - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 475: 3458, 543: 3457, 663: 3459, 2731, 2732, 2730, 737: 3456, 870: 3455}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 3317, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3316, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3454, 3222, 3302, 3221, 3218}, - {144: 926, 491: 926, 499: 3322, 740: 926, 1256: 3321}, - {144: 3326, 491: 3327, 740: 929, 883: 3325}, - {8: 3323, 351: 3324}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 475: 3463, 543: 3462, 663: 3464, 2736, 2737, 2735, 737: 3461, 870: 3460}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 3322, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3321, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3459, 3227, 3307, 3226, 3223}, + {144: 930, 491: 930, 499: 3327, 740: 930, 1257: 3326}, + {144: 3331, 491: 3332, 740: 933, 883: 3330}, + {8: 3328, 351: 3329}, // 815 - {144: 925, 491: 925, 740: 925}, - {144: 924, 491: 924, 740: 924}, - {740: 3330, 746: 3331}, - {268: 3329}, - {268: 3328}, + {144: 929, 491: 929, 740: 929}, + {144: 928, 491: 928, 740: 928}, + {740: 3335, 746: 3336}, + {268: 3334}, + {268: 3333}, // 820 - {740: 927}, - {740: 928}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 473: 3369, 663: 3368, 2731, 2732, 2730, 921: 3371, 1159: 3372, 1341: 3370}, - {935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 474: 935, 935, 935, 935, 935, 480: 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 491: 935, 493: 935, 935, 935, 935, 935, 935, 935, 935, 502: 935, 935, 935, 935, 509: 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 544: 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 935, 585: 935}, - {1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 667: 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822}, + {740: 931}, + {740: 932}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 473: 3374, 663: 3373, 2736, 2737, 2735, 921: 3376, 1159: 3377, 1342: 3375}, + {939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 474: 939, 939, 939, 939, 939, 480: 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 491: 939, 493: 939, 939, 939, 939, 939, 939, 939, 939, 502: 939, 939, 939, 939, 509: 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 544: 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 585: 939}, + {1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 667: 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826}, // 825 - {1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 667: 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816}, - {1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 667: 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805}, - {1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 667: 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794}, - {1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 667: 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783}, - {1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 667: 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781}, + {1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 667: 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820}, + {1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 667: 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809}, + {1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 667: 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798}, + {1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 667: 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787}, + {1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 667: 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785}, // 830 - {1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 667: 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758}, - {1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 667: 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752}, - {1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 667: 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742}, - {1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 667: 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717}, - {1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 667: 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716}, + {1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 667: 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762}, + {1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 667: 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756}, + {1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 667: 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746}, + {1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 667: 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721, 1721}, + {1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 667: 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720}, // 835 - {1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 667: 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713}, - {1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 667: 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708}, + {1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 667: 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717}, + {1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 667: 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712, 1712}, + {1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 667: 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710}, + {1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 667: 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709}, {1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 667: 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706}, - {1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 667: 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705}, - {1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 667: 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702}, // 840 - {1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 667: 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700}, - {1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 667: 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687}, - {1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 667: 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664}, - {1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 667: 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647}, - {1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 667: 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646}, + {1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 667: 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704}, + {1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 667: 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691}, + {1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 667: 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668}, + {1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 667: 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651}, + {1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 667: 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650}, // 845 + {1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 667: 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649}, {1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 667: 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645}, - {1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 667: 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641}, - {1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 667: 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640}, - {1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 667: 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634}, - {1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 667: 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525}, + {1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 667: 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644}, + {1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 667: 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638}, + {1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 667: 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529}, // 850 - {1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 667: 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524}, - {1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 667: 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523}, - {1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 667: 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522, 1522}, - {1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 667: 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437}, - {1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 667: 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422}, + {1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 667: 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528}, + {1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 667: 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527}, + {1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 667: 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526}, + {1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 667: 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441}, + {1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 667: 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426}, // 855 - {1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 667: 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404}, - {1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 667: 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392}, - {1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 667: 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391}, - {1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 667: 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372}, - {1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 667: 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371}, + {1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 667: 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408}, + {1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 667: 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1396}, + {1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 667: 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395}, + {1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 667: 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376}, + {1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 667: 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375}, // 860 - {977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 474: 977, 977, 977, 977, 977, 480: 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 493: 977, 977, 977, 977, 977, 977, 977, 977, 502: 977, 977, 977, 977, 509: 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 544: 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 585: 977}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 974, 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 490: 974, 502: 974, 524: 974, 527: 974, 974, 663: 3368, 2731, 2732, 2730, 921: 3375, 1255: 3374, 1342: 3373}, - {948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 474: 948, 948, 948, 948, 948, 480: 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 491: 948, 493: 948, 948, 948, 948, 948, 948, 948, 948, 502: 948, 948, 948, 948, 509: 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 544: 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 585: 948}, - {947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 474: 947, 947, 947, 947, 947, 480: 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 491: 947, 493: 947, 947, 947, 947, 947, 947, 947, 947, 502: 947, 947, 947, 947, 509: 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 544: 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 585: 947}, - {946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 474: 946, 946, 946, 946, 946, 480: 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 491: 946, 493: 946, 946, 946, 946, 946, 946, 946, 946, 502: 946, 946, 946, 946, 509: 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 544: 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 585: 946}, + {981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 474: 981, 981, 981, 981, 981, 480: 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 493: 981, 981, 981, 981, 981, 981, 981, 981, 502: 981, 981, 981, 981, 509: 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 544: 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 585: 981}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 978, 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 490: 978, 502: 978, 524: 978, 527: 978, 978, 663: 3373, 2736, 2737, 2735, 921: 3380, 1256: 3379, 1343: 3378}, + {952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 474: 952, 952, 952, 952, 952, 480: 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 491: 952, 493: 952, 952, 952, 952, 952, 952, 952, 952, 502: 952, 952, 952, 952, 509: 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 544: 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 585: 952}, + {951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 474: 951, 951, 951, 951, 951, 480: 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 491: 951, 493: 951, 951, 951, 951, 951, 951, 951, 951, 502: 951, 951, 951, 951, 509: 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 544: 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 585: 951}, + {950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 474: 950, 950, 950, 950, 950, 480: 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 491: 950, 493: 950, 950, 950, 950, 950, 950, 950, 950, 502: 950, 950, 950, 950, 509: 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 544: 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 585: 950}, // 865 - {47: 3453}, - {47: 972, 490: 3377, 502: 972, 524: 972, 527: 972, 972, 1259: 3376}, - {47: 973, 490: 973, 502: 973, 524: 973, 527: 973, 973}, - {47: 970, 502: 3383, 524: 970, 527: 970, 970, 1262: 3382}, - {659: 3378}, + {47: 3458}, + {47: 976, 490: 3382, 502: 976, 524: 976, 527: 976, 976, 1260: 3381}, + {47: 977, 490: 977, 502: 977, 524: 977, 527: 977, 977}, + {47: 974, 502: 3388, 524: 974, 527: 974, 974, 1263: 3387}, + {659: 3383}, // 870 - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 2724, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 2723, 869: 3210, 898: 3379}, - {7: 3380, 47: 971, 502: 971, 524: 971, 527: 971, 971}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 2724, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 2723, 869: 3381}, - {1295, 1295, 7: 1295, 47: 1295, 125: 1295, 472: 1295, 474: 1295, 480: 1295, 1295, 488: 1295, 1295, 493: 1295, 1295, 1295, 1295, 500: 1295, 502: 1295, 514: 1295, 516: 1295, 524: 1295, 527: 1295, 1295}, - {47: 968, 524: 3388, 527: 3389, 3390, 1261: 3386, 1340: 3387}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 2729, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 2728, 869: 3215, 898: 3384}, + {7: 3385, 47: 975, 502: 975, 524: 975, 527: 975, 975}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 2729, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 2728, 869: 3386}, + {1299, 1299, 7: 1299, 47: 1299, 125: 1299, 472: 1299, 474: 1299, 480: 1299, 1299, 488: 1299, 1299, 493: 1299, 1299, 1299, 1299, 500: 1299, 502: 1299, 514: 1299, 516: 1299, 524: 1299, 527: 1299, 1299}, + {47: 972, 524: 3393, 527: 3394, 3395, 1262: 3391, 1341: 3392}, // 875 - {659: 3384}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 2724, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 2723, 869: 3210, 898: 3385}, - {7: 3380, 47: 969, 524: 969, 527: 969, 969}, - {47: 975}, - {146: 3401, 163: 3397, 508: 3391, 555: 3402, 574: 3393, 3392, 578: 3399, 581: 3400, 818: 3398, 977: 3395, 1338: 3396, 3394}, + {659: 3389}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 2729, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 2728, 869: 3215, 898: 3390}, + {7: 3385, 47: 973, 524: 973, 527: 973, 973}, + {47: 979}, + {146: 3406, 164: 3402, 508: 3396, 555: 3407, 574: 3398, 3397, 578: 3404, 581: 3405, 818: 3403, 977: 3400, 1339: 3401, 3399}, // 880 - {146: 966, 163: 966, 508: 966, 555: 966, 574: 966, 966, 578: 966, 581: 966}, - {146: 965, 163: 965, 508: 965, 555: 965, 574: 965, 965, 578: 965, 581: 965}, - {146: 964, 163: 964, 508: 964, 555: 964, 574: 964, 964, 578: 964, 581: 964}, - {2202, 2202, 2202, 2202, 2202, 2202, 2202, 2202, 2202, 2202, 2202, 2202, 2202, 2202, 2202, 2202, 2202, 2202, 2202, 2202, 2202, 2202, 2202, 2202, 2202, 2202, 2202, 2202, 2202, 2202, 2202, 2202, 2202, 2202, 2202, 2202, 2202, 2202, 2202, 2202, 2202, 2202, 2202, 2202, 2202, 2202, 47: 2202, 130: 2202, 148: 2202, 472: 2202, 2202, 2202, 476: 2202, 2202, 2202, 2202, 2202, 482: 2202, 490: 2202, 2202, 2202, 501: 2202, 503: 2202, 506: 2202, 2202, 569: 2202, 573: 2202, 582: 2202, 586: 2202, 638: 2202, 642: 2202, 2202, 2202, 2202, 2202, 648: 2202}, - {2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 47: 2201, 130: 2201, 148: 2201, 189: 2201, 472: 2201, 2201, 2201, 476: 2201, 2201, 2201, 2201, 2201, 482: 2201, 490: 2201, 2201, 2201, 501: 2201, 503: 2201, 506: 2201, 2201, 569: 2201, 573: 2201, 582: 2201, 586: 2201, 638: 2201, 642: 2201, 2201, 2201, 2201, 2201, 648: 2201}, + {146: 970, 164: 970, 508: 970, 555: 970, 574: 970, 970, 578: 970, 581: 970}, + {146: 969, 164: 969, 508: 969, 555: 969, 574: 969, 969, 578: 969, 581: 969}, + {146: 968, 164: 968, 508: 968, 555: 968, 574: 968, 968, 578: 968, 581: 968}, + {2206, 2206, 2206, 2206, 2206, 2206, 2206, 2206, 2206, 2206, 2206, 2206, 2206, 2206, 2206, 2206, 2206, 2206, 2206, 2206, 2206, 2206, 2206, 2206, 2206, 2206, 2206, 2206, 2206, 2206, 2206, 2206, 2206, 2206, 2206, 2206, 2206, 2206, 2206, 2206, 2206, 2206, 2206, 2206, 2206, 2206, 47: 2206, 130: 2206, 148: 2206, 472: 2206, 2206, 2206, 476: 2206, 2206, 2206, 2206, 2206, 482: 2206, 490: 2206, 2206, 2206, 501: 2206, 503: 2206, 506: 2206, 2206, 569: 2206, 573: 2206, 582: 2206, 586: 2206, 638: 2206, 642: 2206, 2206, 2206, 2206, 2206, 648: 2206}, + {2205, 2205, 2205, 2205, 2205, 2205, 2205, 2205, 2205, 2205, 2205, 2205, 2205, 2205, 2205, 2205, 2205, 2205, 2205, 2205, 2205, 2205, 2205, 2205, 2205, 2205, 2205, 2205, 2205, 2205, 2205, 2205, 2205, 2205, 2205, 2205, 2205, 2205, 2205, 2205, 2205, 2205, 2205, 2205, 2205, 2205, 47: 2205, 130: 2205, 148: 2205, 189: 2205, 472: 2205, 2205, 2205, 476: 2205, 2205, 2205, 2205, 2205, 482: 2205, 490: 2205, 2205, 2205, 501: 2205, 503: 2205, 506: 2205, 2205, 569: 2205, 573: 2205, 582: 2205, 586: 2205, 638: 2205, 642: 2205, 2205, 2205, 2205, 2205, 648: 2205}, // 885 - {2200, 2200, 2200, 2200, 2200, 2200, 2200, 2200, 2200, 2200, 2200, 2200, 2200, 2200, 2200, 2200, 2200, 2200, 2200, 2200, 2200, 2200, 2200, 2200, 2200, 2200, 2200, 2200, 2200, 2200, 2200, 2200, 2200, 2200, 2200, 2200, 2200, 2200, 2200, 2200, 2200, 2200, 2200, 2200, 2200, 2200, 47: 2200, 130: 2200, 148: 2200, 189: 2200, 472: 2200, 2200, 2200, 476: 2200, 2200, 2200, 2200, 2200, 482: 2200, 490: 2200, 2200, 2200, 501: 2200, 503: 2200, 506: 2200, 2200, 569: 2200, 573: 2200, 582: 2200, 586: 2200, 638: 2200, 642: 2200, 2200, 2200, 2200, 2200, 648: 2200}, + {2204, 2204, 2204, 2204, 2204, 2204, 2204, 2204, 2204, 2204, 2204, 2204, 2204, 2204, 2204, 2204, 2204, 2204, 2204, 2204, 2204, 2204, 2204, 2204, 2204, 2204, 2204, 2204, 2204, 2204, 2204, 2204, 2204, 2204, 2204, 2204, 2204, 2204, 2204, 2204, 2204, 2204, 2204, 2204, 2204, 2204, 47: 2204, 130: 2204, 148: 2204, 189: 2204, 472: 2204, 2204, 2204, 476: 2204, 2204, 2204, 2204, 2204, 482: 2204, 490: 2204, 2204, 2204, 501: 2204, 503: 2204, 506: 2204, 2204, 569: 2204, 573: 2204, 582: 2204, 586: 2204, 638: 2204, 642: 2204, 2204, 2204, 2204, 2204, 648: 2204}, + {47: 971}, {47: 967}, - {47: 963}, - {47: 962}, - {130: 3448}, + {47: 966}, + {130: 3453}, // 890 - {130: 3446}, - {130: 3444}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 2724, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 3451}, - {576: 3450}, - {146: 3401, 163: 3403, 508: 3391, 574: 3393, 3392, 578: 3405, 581: 3406, 818: 3404, 977: 3408, 1158: 3407}, + {130: 3451}, + {130: 3449}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 2729, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 3456}, + {576: 3455}, + {146: 3406, 164: 3408, 508: 3396, 574: 3398, 3397, 578: 3410, 581: 3411, 818: 3409, 977: 3413, 1158: 3412}, // 895 - {130: 3448, 148: 3449}, - {130: 3446, 148: 3447}, - {130: 3444, 148: 3445}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 2724, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 3411}, - {505: 3409}, + {130: 3453, 148: 3454}, + {130: 3451, 148: 3452}, + {130: 3449, 148: 3450}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 2729, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 3416}, + {505: 3414}, // 900 - {47: 955, 505: 955}, - {146: 3401, 163: 3403, 508: 3391, 574: 3393, 3392, 578: 3405, 581: 3406, 818: 3404, 977: 3408, 1158: 3410}, - {47: 956}, - {101: 3432, 104: 3428, 108: 3425, 3440, 3427, 3424, 3426, 3430, 3431, 3436, 3435, 3434, 3438, 3439, 3433, 3437, 123: 3429, 505: 3313, 509: 3311, 3312, 3310, 3308, 531: 3422, 3419, 3421, 3420, 3416, 3418, 3417, 3414, 3415, 3413, 3423, 733: 3309, 3307, 802: 3412, 821: 3441}, - {1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 480: 1100, 1100, 483: 1100, 1100, 1100, 1100, 1100, 1100, 1100, 491: 1100, 493: 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 507: 1100, 509: 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 544: 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 569: 1100, 645: 1100}, + {47: 959, 505: 959}, + {146: 3406, 164: 3408, 508: 3396, 574: 3398, 3397, 578: 3410, 581: 3411, 818: 3409, 977: 3413, 1158: 3415}, + {47: 960}, + {101: 3437, 104: 3433, 108: 3430, 3445, 3432, 3429, 3431, 3435, 3436, 3441, 3440, 3439, 3443, 3444, 3438, 3442, 123: 3434, 505: 3318, 509: 3316, 3317, 3315, 3313, 531: 3427, 3424, 3426, 3425, 3421, 3423, 3422, 3419, 3420, 3418, 3428, 733: 3314, 3312, 802: 3417, 821: 3446}, + {1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 480: 1104, 1104, 483: 1104, 1104, 1104, 1104, 1104, 1104, 1104, 491: 1104, 493: 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 507: 1104, 509: 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 544: 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 569: 1104, 645: 1104}, // 905 + {1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 480: 1103, 1103, 483: 1103, 1103, 1103, 1103, 1103, 1103, 1103, 491: 1103, 493: 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 507: 1103, 509: 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 544: 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 569: 1103, 645: 1103}, + {1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 480: 1102, 1102, 483: 1102, 1102, 1102, 1102, 1102, 1102, 1102, 491: 1102, 493: 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 507: 1102, 509: 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 544: 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 569: 1102, 645: 1102}, + {1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 480: 1101, 1101, 483: 1101, 1101, 1101, 1101, 1101, 1101, 1101, 491: 1101, 493: 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 507: 1101, 509: 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 544: 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 569: 1101, 645: 1101}, + {1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 480: 1100, 1100, 483: 1100, 1100, 1100, 1100, 1100, 1100, 1100, 491: 1100, 493: 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 507: 1100, 509: 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 544: 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 569: 1100, 645: 1100}, {1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 480: 1099, 1099, 483: 1099, 1099, 1099, 1099, 1099, 1099, 1099, 491: 1099, 493: 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 507: 1099, 509: 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 544: 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 569: 1099, 645: 1099}, + // 910 {1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 480: 1098, 1098, 483: 1098, 1098, 1098, 1098, 1098, 1098, 1098, 491: 1098, 493: 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 507: 1098, 509: 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 544: 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 569: 1098, 645: 1098}, {1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 480: 1097, 1097, 483: 1097, 1097, 1097, 1097, 1097, 1097, 1097, 491: 1097, 493: 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 507: 1097, 509: 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 544: 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 569: 1097, 645: 1097}, {1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 480: 1096, 1096, 483: 1096, 1096, 1096, 1096, 1096, 1096, 1096, 491: 1096, 493: 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 507: 1096, 509: 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 544: 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 569: 1096, 645: 1096}, {1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 480: 1095, 1095, 483: 1095, 1095, 1095, 1095, 1095, 1095, 1095, 491: 1095, 493: 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 507: 1095, 509: 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 544: 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 569: 1095, 645: 1095}, - // 910 {1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 480: 1094, 1094, 483: 1094, 1094, 1094, 1094, 1094, 1094, 1094, 491: 1094, 493: 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 507: 1094, 509: 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 544: 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 569: 1094, 645: 1094}, + // 915 {1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 480: 1093, 1093, 483: 1093, 1093, 1093, 1093, 1093, 1093, 1093, 491: 1093, 493: 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 507: 1093, 509: 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 544: 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 569: 1093, 645: 1093}, {1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 480: 1092, 1092, 483: 1092, 1092, 1092, 1092, 1092, 1092, 1092, 491: 1092, 493: 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 507: 1092, 509: 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 544: 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 569: 1092, 645: 1092}, {1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 480: 1091, 1091, 483: 1091, 1091, 1091, 1091, 1091, 1091, 1091, 491: 1091, 493: 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 507: 1091, 509: 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 544: 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 569: 1091, 645: 1091}, {1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 480: 1090, 1090, 483: 1090, 1090, 1090, 1090, 1090, 1090, 1090, 491: 1090, 493: 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 507: 1090, 509: 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 544: 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 569: 1090, 645: 1090}, - // 915 {1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 480: 1089, 1089, 483: 1089, 1089, 1089, 1089, 1089, 1089, 1089, 491: 1089, 493: 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 507: 1089, 509: 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 544: 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 569: 1089, 645: 1089}, + // 920 {1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 480: 1088, 1088, 483: 1088, 1088, 1088, 1088, 1088, 1088, 1088, 491: 1088, 493: 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 507: 1088, 509: 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 544: 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 569: 1088, 645: 1088}, {1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 480: 1087, 1087, 483: 1087, 1087, 1087, 1087, 1087, 1087, 1087, 491: 1087, 493: 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 507: 1087, 509: 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 544: 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 569: 1087, 645: 1087}, {1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 480: 1086, 1086, 483: 1086, 1086, 1086, 1086, 1086, 1086, 1086, 491: 1086, 493: 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 507: 1086, 509: 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 544: 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 569: 1086, 645: 1086}, {1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 480: 1085, 1085, 483: 1085, 1085, 1085, 1085, 1085, 1085, 1085, 491: 1085, 493: 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 507: 1085, 509: 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 544: 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 569: 1085, 645: 1085}, - // 920 {1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 480: 1084, 1084, 483: 1084, 1084, 1084, 1084, 1084, 1084, 1084, 491: 1084, 493: 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 507: 1084, 509: 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 544: 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 569: 1084, 645: 1084}, + // 925 {1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 480: 1083, 1083, 483: 1083, 1083, 1083, 1083, 1083, 1083, 1083, 491: 1083, 493: 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 507: 1083, 509: 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 544: 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 569: 1083, 645: 1083}, {1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 480: 1082, 1082, 483: 1082, 1082, 1082, 1082, 1082, 1082, 1082, 491: 1082, 493: 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 507: 1082, 509: 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 544: 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 569: 1082, 645: 1082}, {1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 480: 1081, 1081, 483: 1081, 1081, 1081, 1081, 1081, 1081, 1081, 491: 1081, 493: 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 507: 1081, 509: 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 544: 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 569: 1081, 645: 1081}, {1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 480: 1080, 1080, 483: 1080, 1080, 1080, 1080, 1080, 1080, 1080, 491: 1080, 493: 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 507: 1080, 509: 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 544: 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 569: 1080, 645: 1080}, - // 925 {1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 480: 1079, 1079, 483: 1079, 1079, 1079, 1079, 1079, 1079, 1079, 491: 1079, 493: 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 507: 1079, 509: 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 544: 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 569: 1079, 645: 1079}, + // 930 {1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 480: 1078, 1078, 483: 1078, 1078, 1078, 1078, 1078, 1078, 1078, 491: 1078, 493: 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 507: 1078, 509: 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 544: 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 569: 1078, 645: 1078}, {1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 480: 1077, 1077, 483: 1077, 1077, 1077, 1077, 1077, 1077, 1077, 491: 1077, 493: 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 507: 1077, 509: 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 544: 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 569: 1077, 645: 1077}, {1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 480: 1076, 1076, 483: 1076, 1076, 1076, 1076, 1076, 1076, 1076, 491: 1076, 493: 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 507: 1076, 509: 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 544: 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 569: 1076, 645: 1076}, - {1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 480: 1075, 1075, 483: 1075, 1075, 1075, 1075, 1075, 1075, 1075, 491: 1075, 493: 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 507: 1075, 509: 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 544: 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 569: 1075, 645: 1075}, - // 930 - {1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 480: 1074, 1074, 483: 1074, 1074, 1074, 1074, 1074, 1074, 1074, 491: 1074, 493: 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 507: 1074, 509: 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 544: 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 569: 1074, 645: 1074}, - {1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 480: 1073, 1073, 483: 1073, 1073, 1073, 1073, 1073, 1073, 1073, 491: 1073, 493: 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 507: 1073, 509: 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 544: 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 569: 1073, 645: 1073}, - {1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 480: 1072, 1072, 483: 1072, 1072, 1072, 1072, 1072, 1072, 1072, 491: 1072, 493: 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 507: 1072, 509: 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 544: 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 569: 1072, 645: 1072}, - {130: 3442, 148: 3443}, - {47: 958, 505: 958}, + {130: 3447, 148: 3448}, + {47: 962, 505: 962}, // 935 - {47: 951, 505: 951}, - {47: 959, 505: 959}, - {47: 952, 505: 952}, - {47: 960, 505: 960}, - {47: 953, 505: 953}, + {47: 955, 505: 955}, + {47: 963, 505: 963}, + {47: 956, 505: 956}, + {47: 964, 505: 964}, + {47: 957, 505: 957}, // 940 + {47: 965, 505: 965}, + {47: 958, 505: 958}, {47: 961, 505: 961}, - {47: 954, 505: 954}, - {47: 957, 505: 957}, - {101: 3432, 104: 3428, 108: 3425, 3440, 3427, 3424, 3426, 3430, 3431, 3436, 3435, 3434, 3438, 3439, 3433, 3437, 123: 3429, 505: 3313, 509: 3311, 3312, 3310, 3308, 531: 3422, 3419, 3421, 3420, 3416, 3418, 3417, 3414, 3415, 3413, 3423, 733: 3309, 3307, 802: 3412, 821: 3452}, - {130: 3442}, + {101: 3437, 104: 3433, 108: 3430, 3445, 3432, 3429, 3431, 3435, 3436, 3441, 3440, 3439, 3443, 3444, 3438, 3442, 123: 3434, 505: 3318, 509: 3316, 3317, 3315, 3313, 531: 3427, 3424, 3426, 3425, 3421, 3423, 3422, 3419, 3420, 3418, 3428, 733: 3314, 3312, 802: 3417, 821: 3457}, + {130: 3447}, // 945 - {976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 474: 976, 976, 976, 976, 976, 480: 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 491: 976, 493: 976, 976, 976, 976, 976, 976, 976, 976, 502: 976, 976, 976, 976, 509: 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 544: 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 585: 976}, - {1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 474: 1252, 1252, 1252, 1252, 1252, 480: 1252, 1252, 3318, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 491: 1252, 493: 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 502: 1252, 1252, 1252, 1252, 509: 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 544: 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 585: 1252}, - {1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 474: 1262, 1262, 1262, 1262, 1262, 480: 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 491: 1262, 493: 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 502: 1262, 1262, 1262, 1262, 509: 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 544: 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 585: 1262}, - {746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 509: 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 544: 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 569: 746, 573: 746, 582: 746, 585: 746, 746, 638: 746, 642: 746, 746, 746, 746, 746, 648: 746}, - {745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 509: 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 544: 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 569: 745, 573: 745, 582: 745, 585: 745, 745, 638: 745, 642: 745, 745, 745, 745, 745, 648: 745}, + {980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 474: 980, 980, 980, 980, 980, 480: 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 491: 980, 493: 980, 980, 980, 980, 980, 980, 980, 980, 502: 980, 980, 980, 980, 509: 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 544: 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 585: 980}, + {1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 474: 1256, 1256, 1256, 1256, 1256, 480: 1256, 1256, 3323, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 491: 1256, 493: 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 502: 1256, 1256, 1256, 1256, 509: 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 544: 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 585: 1256}, + {1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 474: 1266, 1266, 1266, 1266, 1266, 480: 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 491: 1266, 493: 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 502: 1266, 1266, 1266, 1266, 509: 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 544: 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 585: 1266}, + {750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 509: 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 544: 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 569: 750, 573: 750, 582: 750, 585: 750, 750, 638: 750, 642: 750, 750, 750, 750, 750, 648: 750}, + {749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 509: 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 544: 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, 569: 749, 573: 749, 582: 749, 585: 749, 749, 638: 749, 642: 749, 749, 749, 749, 749, 648: 749}, // 950 {256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 509: 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 568: 256, 256, 573: 256, 582: 256, 585: 256, 256, 638: 256, 642: 256, 256, 256, 256, 256, 648: 256, 256, 652: 256, 657: 256, 659: 256, 661: 256, 256, 667: 256}, {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 509: 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 568: 255, 255, 573: 255, 582: 255, 585: 255, 255, 638: 255, 642: 255, 255, 255, 255, 255, 648: 255, 255, 652: 255, 657: 255, 659: 255, 661: 255, 255, 667: 255}, - {1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 474: 1931, 1931, 478: 1931, 480: 1931, 1931, 483: 1931, 1931, 488: 1931, 1931, 491: 1931, 493: 1931, 1931, 1931, 1931, 1931, 499: 1931, 1931, 502: 1931, 1931, 1931, 1931, 509: 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 519: 1931, 1931, 1931, 1931, 524: 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 545: 1931, 1931, 733: 3309, 3307}, - {1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 474: 1932, 1932, 478: 1932, 480: 1932, 1932, 483: 1932, 1932, 488: 1932, 1932, 491: 1932, 493: 1932, 1932, 1932, 1932, 1932, 499: 1932, 1932, 502: 1932, 1932, 1932, 3313, 509: 1932, 3312, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 519: 1932, 1932, 1932, 1932, 524: 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 545: 1932, 1932, 733: 3309, 3307}, - {1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 474: 1933, 1933, 478: 1933, 480: 1933, 1933, 483: 1933, 1933, 488: 1933, 1933, 491: 1933, 493: 1933, 1933, 1933, 1933, 1933, 499: 1933, 1933, 502: 1933, 1933, 1933, 3313, 509: 1933, 3312, 1933, 3308, 1933, 1933, 1933, 1933, 1933, 519: 1933, 1933, 1933, 1933, 524: 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 545: 1933, 1933, 733: 3309, 3307}, + {1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 474: 1935, 1935, 478: 1935, 480: 1935, 1935, 483: 1935, 1935, 488: 1935, 1935, 491: 1935, 493: 1935, 1935, 1935, 1935, 1935, 499: 1935, 1935, 502: 1935, 1935, 1935, 1935, 509: 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 519: 1935, 1935, 1935, 1935, 524: 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 545: 1935, 1935, 733: 3314, 3312}, + {1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 474: 1936, 1936, 478: 1936, 480: 1936, 1936, 483: 1936, 1936, 488: 1936, 1936, 491: 1936, 493: 1936, 1936, 1936, 1936, 1936, 499: 1936, 1936, 502: 1936, 1936, 1936, 3318, 509: 1936, 3317, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 519: 1936, 1936, 1936, 1936, 524: 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 1936, 545: 1936, 1936, 733: 3314, 3312}, + {1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 474: 1937, 1937, 478: 1937, 480: 1937, 1937, 483: 1937, 1937, 488: 1937, 1937, 491: 1937, 493: 1937, 1937, 1937, 1937, 1937, 499: 1937, 1937, 502: 1937, 1937, 1937, 3318, 509: 1937, 3317, 1937, 3313, 1937, 1937, 1937, 1937, 1937, 519: 1937, 1937, 1937, 1937, 524: 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 545: 1937, 1937, 733: 3314, 3312}, // 955 - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 2724, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 3464}, - {47: 3465, 505: 3313, 509: 3311, 3312, 3310, 3308, 733: 3309, 3307}, - {144: 3326, 491: 3327, 740: 929, 883: 3466}, - {740: 3330, 746: 3467}, - {936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 474: 936, 936, 936, 936, 936, 480: 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 491: 936, 493: 936, 936, 936, 936, 936, 936, 936, 936, 502: 936, 936, 936, 936, 509: 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 544: 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 585: 936}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 2729, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 3469}, + {47: 3470, 505: 3318, 509: 3316, 3317, 3315, 3313, 733: 3314, 3312}, + {144: 3331, 491: 3332, 740: 933, 883: 3471}, + {740: 3335, 746: 3472}, + {940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 474: 940, 940, 940, 940, 940, 480: 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 491: 940, 493: 940, 940, 940, 940, 940, 940, 940, 940, 502: 940, 940, 940, 940, 509: 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 544: 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 585: 940}, // 960 - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 2724, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 3469}, - {47: 3470, 505: 3313, 509: 3311, 3312, 3310, 3308, 733: 3309, 3307}, - {144: 3326, 491: 3327, 740: 929, 883: 3471}, - {740: 3330, 746: 3472}, - {937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 474: 937, 937, 937, 937, 937, 480: 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 491: 937, 493: 937, 937, 937, 937, 937, 937, 937, 937, 502: 937, 937, 937, 937, 509: 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 544: 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 585: 937}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 2729, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 3474}, + {47: 3475, 505: 3318, 509: 3316, 3317, 3315, 3313, 733: 3314, 3312}, + {144: 3331, 491: 3332, 740: 933, 883: 3476}, + {740: 3335, 746: 3477}, + {941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 474: 941, 941, 941, 941, 941, 480: 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 491: 941, 493: 941, 941, 941, 941, 941, 941, 941, 941, 502: 941, 941, 941, 941, 509: 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 544: 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 585: 941}, // 965 - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 2724, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 3474}, - {7: 3476, 47: 934, 505: 3313, 509: 3311, 3312, 3310, 3308, 733: 3309, 3307, 1092: 3475}, - {47: 3483}, - {508: 3391, 574: 3393, 3392, 578: 3478, 818: 3477}, - {7: 3480, 47: 931, 1093: 3482}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 2729, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 3479}, + {7: 3481, 47: 938, 505: 3318, 509: 3316, 3317, 3315, 3313, 733: 3314, 3312, 1092: 3480}, + {47: 3488}, + {508: 3396, 574: 3398, 3397, 578: 3483, 818: 3482}, + {7: 3485, 47: 935, 1093: 3487}, // 970 - {7: 3480, 47: 931, 1093: 3479}, - {47: 932}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 2724, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 3481}, - {47: 930, 505: 3313, 509: 3311, 3312, 3310, 3308, 733: 3309, 3307}, - {47: 933}, + {7: 3485, 47: 935, 1093: 3484}, + {47: 936}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 2729, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 3486}, + {47: 934, 505: 3318, 509: 3316, 3317, 3315, 3313, 733: 3314, 3312}, + {47: 937}, // 975 - {144: 3326, 491: 3327, 740: 929, 883: 3484}, - {740: 3330, 746: 3485}, - {938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 474: 938, 938, 938, 938, 938, 480: 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 491: 938, 493: 938, 938, 938, 938, 938, 938, 938, 938, 502: 938, 938, 938, 938, 509: 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 544: 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 585: 938}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 2724, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 3487}, - {7: 3476, 47: 934, 505: 3313, 509: 3311, 3312, 3310, 3308, 733: 3309, 3307, 1092: 3488}, + {144: 3331, 491: 3332, 740: 933, 883: 3489}, + {740: 3335, 746: 3490}, + {942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 474: 942, 942, 942, 942, 942, 480: 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 491: 942, 493: 942, 942, 942, 942, 942, 942, 942, 942, 502: 942, 942, 942, 942, 509: 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 544: 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 585: 942}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 2729, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 3492}, + {7: 3481, 47: 938, 505: 3318, 509: 3316, 3317, 3315, 3313, 733: 3314, 3312, 1092: 3493}, // 980 - {47: 3489}, - {144: 3326, 491: 3327, 740: 929, 883: 3490}, - {740: 3330, 746: 3491}, - {939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 474: 939, 939, 939, 939, 939, 480: 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 491: 939, 493: 939, 939, 939, 939, 939, 939, 939, 939, 502: 939, 939, 939, 939, 509: 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 544: 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 585: 939}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 3317, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3316, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3493, 3222, 3302, 3221, 3218}, + {47: 3494}, + {144: 3331, 491: 3332, 740: 933, 883: 3495}, + {740: 3335, 746: 3496}, + {943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 474: 943, 943, 943, 943, 943, 480: 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 491: 943, 493: 943, 943, 943, 943, 943, 943, 943, 943, 502: 943, 943, 943, 943, 509: 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 544: 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 585: 943}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 3322, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3321, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3498, 3227, 3307, 3226, 3223}, // 985 - {47: 3494, 482: 3318, 585: 3319}, - {740: 3330, 746: 3495}, - {940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 474: 940, 940, 940, 940, 940, 480: 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 491: 940, 493: 940, 940, 940, 940, 940, 940, 940, 940, 502: 940, 940, 940, 940, 509: 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 544: 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 585: 940}, - {47: 3497}, - {740: 3330, 746: 3498}, + {47: 3499, 482: 3323, 585: 3324}, + {740: 3335, 746: 3500}, + {944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 474: 944, 944, 944, 944, 944, 480: 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 491: 944, 493: 944, 944, 944, 944, 944, 944, 944, 944, 502: 944, 944, 944, 944, 509: 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 544: 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 585: 944}, + {47: 3502}, + {740: 3335, 746: 3503}, // 990 - {941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 474: 941, 941, 941, 941, 941, 480: 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 491: 941, 493: 941, 941, 941, 941, 941, 941, 941, 941, 502: 941, 941, 941, 941, 509: 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 544: 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 585: 941}, - {47: 3500}, - {740: 3330, 746: 3501}, - {942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 474: 942, 942, 942, 942, 942, 480: 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 491: 942, 493: 942, 942, 942, 942, 942, 942, 942, 942, 502: 942, 942, 942, 942, 509: 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 544: 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 585: 942}, - {47: 3503}, + {945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 474: 945, 945, 945, 945, 945, 480: 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 491: 945, 493: 945, 945, 945, 945, 945, 945, 945, 945, 502: 945, 945, 945, 945, 509: 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 544: 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 585: 945}, + {47: 3505}, + {740: 3335, 746: 3506}, + {946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 474: 946, 946, 946, 946, 946, 480: 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 491: 946, 493: 946, 946, 946, 946, 946, 946, 946, 946, 502: 946, 946, 946, 946, 509: 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 544: 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 585: 946}, + {47: 3508}, // 995 - {740: 3330, 746: 3504}, - {943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 474: 943, 943, 943, 943, 943, 480: 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 491: 943, 493: 943, 943, 943, 943, 943, 943, 943, 943, 502: 943, 943, 943, 943, 509: 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 544: 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 585: 943}, - {47: 3506}, - {740: 3330, 746: 3507}, - {944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 474: 944, 944, 944, 944, 944, 480: 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 491: 944, 493: 944, 944, 944, 944, 944, 944, 944, 944, 502: 944, 944, 944, 944, 509: 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 544: 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 585: 944}, + {740: 3335, 746: 3509}, + {947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 474: 947, 947, 947, 947, 947, 480: 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 491: 947, 493: 947, 947, 947, 947, 947, 947, 947, 947, 502: 947, 947, 947, 947, 509: 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 544: 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 585: 947}, + {47: 3511}, + {740: 3335, 746: 3512}, + {948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 474: 948, 948, 948, 948, 948, 480: 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 491: 948, 493: 948, 948, 948, 948, 948, 948, 948, 948, 502: 948, 948, 948, 948, 509: 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 544: 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 585: 948}, // 1000 - {47: 3509}, - {740: 3330, 746: 3510}, - {945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 474: 945, 945, 945, 945, 945, 480: 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 491: 945, 493: 945, 945, 945, 945, 945, 945, 945, 945, 502: 945, 945, 945, 945, 509: 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 544: 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 585: 945}, - {2: 1231, 1231, 1231, 1231, 1231, 8: 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 48: 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 473: 1231, 475: 1231, 1231, 1231, 479: 1231, 483: 1231, 1231, 1231, 1231, 1231, 492: 1231, 501: 1231, 506: 1231, 1231, 1231, 543: 1231, 566: 1231, 1231, 1231, 570: 1231, 1231, 1231, 574: 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 583: 1231, 1231, 587: 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 639: 1231, 1231, 1231, 647: 1231, 650: 3514, 744: 3512, 3513, 783: 3515, 786: 3516, 813: 3518, 815: 3517}, - {2: 1235, 1235, 1235, 1235, 1235, 8: 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 48: 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 473: 1235, 475: 1235, 1235, 1235, 479: 1235, 483: 1235, 1235, 1235, 1235, 1235, 492: 1235, 501: 1235, 506: 1235, 1235, 1235, 515: 1235, 523: 1235, 543: 1235, 566: 1235, 1235, 1235, 1235, 1235, 1235, 1235, 574: 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 583: 1235, 1235, 587: 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 639: 1235, 1235, 1235, 645: 1235, 647: 1235, 650: 1235, 744: 1235, 1235, 752: 1235, 1235, 1235, 761: 1235, 768: 1235, 1235, 1235}, + {47: 3514}, + {740: 3335, 746: 3515}, + {949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 474: 949, 949, 949, 949, 949, 480: 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 491: 949, 493: 949, 949, 949, 949, 949, 949, 949, 949, 502: 949, 949, 949, 949, 509: 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 544: 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 585: 949}, + {2: 1235, 1235, 1235, 1235, 1235, 8: 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 48: 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 473: 1235, 475: 1235, 1235, 1235, 479: 1235, 483: 1235, 1235, 1235, 1235, 1235, 492: 1235, 501: 1235, 506: 1235, 1235, 1235, 543: 1235, 566: 1235, 1235, 1235, 570: 1235, 1235, 1235, 574: 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 583: 1235, 1235, 587: 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 639: 1235, 1235, 1235, 647: 1235, 650: 3519, 744: 3517, 3518, 783: 3520, 786: 3521, 813: 3523, 815: 3522}, + {2: 1239, 1239, 1239, 1239, 1239, 8: 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 48: 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 473: 1239, 475: 1239, 1239, 1239, 479: 1239, 483: 1239, 1239, 1239, 1239, 1239, 492: 1239, 501: 1239, 506: 1239, 1239, 1239, 515: 1239, 523: 1239, 543: 1239, 566: 1239, 1239, 1239, 1239, 1239, 1239, 1239, 574: 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 583: 1239, 1239, 587: 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 639: 1239, 1239, 1239, 645: 1239, 647: 1239, 650: 1239, 744: 1239, 1239, 752: 1239, 1239, 1239, 761: 1239, 768: 1239, 1239, 1239}, // 1005 - {2: 1234, 1234, 1234, 1234, 1234, 8: 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 48: 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 473: 1234, 475: 1234, 1234, 1234, 479: 1234, 483: 1234, 1234, 1234, 1234, 1234, 492: 1234, 501: 1234, 506: 1234, 1234, 1234, 515: 1234, 523: 1234, 543: 1234, 566: 1234, 1234, 1234, 1234, 1234, 1234, 1234, 574: 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 583: 1234, 1234, 587: 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 639: 1234, 1234, 1234, 645: 1234, 647: 1234, 650: 1234, 744: 1234, 1234, 752: 1234, 1234, 1234, 761: 1234, 768: 1234, 1234, 1234}, - {2: 1233, 1233, 1233, 1233, 1233, 8: 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 48: 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 473: 1233, 475: 1233, 1233, 1233, 479: 1233, 483: 1233, 1233, 1233, 1233, 1233, 492: 1233, 501: 1233, 506: 1233, 1233, 1233, 515: 1233, 523: 1233, 543: 1233, 566: 1233, 1233, 1233, 1233, 1233, 1233, 1233, 574: 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 583: 1233, 1233, 587: 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 639: 1233, 1233, 1233, 645: 1233, 647: 1233, 650: 1233, 744: 1233, 1233, 752: 1233, 1233, 1233, 761: 1233, 768: 1233, 1233, 1233}, - {2: 1232, 1232, 1232, 1232, 1232, 8: 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 48: 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 473: 1232, 475: 1232, 1232, 1232, 479: 1232, 483: 1232, 1232, 1232, 1232, 1232, 492: 1232, 501: 1232, 506: 1232, 1232, 1232, 543: 1232, 566: 1232, 1232, 1232, 570: 1232, 1232, 1232, 574: 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 583: 1232, 1232, 587: 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 639: 1232, 1232, 1232, 647: 1232, 650: 3523}, - {2: 1230, 1230, 1230, 1230, 1230, 8: 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 48: 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 473: 1230, 475: 1230, 1230, 1230, 479: 1230, 483: 1230, 1230, 1230, 1230, 1230, 492: 1230, 501: 1230, 506: 1230, 1230, 1230, 543: 1230, 566: 1230, 1230, 1230, 570: 1230, 1230, 1230, 574: 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 583: 1230, 1230, 587: 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 639: 1230, 1230, 1230, 647: 1230}, - {2: 1227, 1227, 1227, 1227, 1227, 8: 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 48: 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 473: 1227, 475: 1227, 1227, 1227, 479: 1227, 483: 1227, 1227, 1227, 1227, 1227, 492: 1227, 501: 1227, 506: 1227, 1227, 1227, 543: 1227, 566: 1227, 1227, 1227, 570: 1227, 1227, 1227, 574: 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 583: 1227, 1227, 587: 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 639: 1227, 1227, 1227, 647: 1227}, + {2: 1238, 1238, 1238, 1238, 1238, 8: 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 48: 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 473: 1238, 475: 1238, 1238, 1238, 479: 1238, 483: 1238, 1238, 1238, 1238, 1238, 492: 1238, 501: 1238, 506: 1238, 1238, 1238, 515: 1238, 523: 1238, 543: 1238, 566: 1238, 1238, 1238, 1238, 1238, 1238, 1238, 574: 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 583: 1238, 1238, 587: 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 639: 1238, 1238, 1238, 645: 1238, 647: 1238, 650: 1238, 744: 1238, 1238, 752: 1238, 1238, 1238, 761: 1238, 768: 1238, 1238, 1238}, + {2: 1237, 1237, 1237, 1237, 1237, 8: 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 48: 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 473: 1237, 475: 1237, 1237, 1237, 479: 1237, 483: 1237, 1237, 1237, 1237, 1237, 492: 1237, 501: 1237, 506: 1237, 1237, 1237, 515: 1237, 523: 1237, 543: 1237, 566: 1237, 1237, 1237, 1237, 1237, 1237, 1237, 574: 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 583: 1237, 1237, 587: 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 639: 1237, 1237, 1237, 645: 1237, 647: 1237, 650: 1237, 744: 1237, 1237, 752: 1237, 1237, 1237, 761: 1237, 768: 1237, 1237, 1237}, + {2: 1236, 1236, 1236, 1236, 1236, 8: 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 48: 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 473: 1236, 475: 1236, 1236, 1236, 479: 1236, 483: 1236, 1236, 1236, 1236, 1236, 492: 1236, 501: 1236, 506: 1236, 1236, 1236, 543: 1236, 566: 1236, 1236, 1236, 570: 1236, 1236, 1236, 574: 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 583: 1236, 1236, 587: 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 639: 1236, 1236, 1236, 647: 1236, 650: 3528}, + {2: 1234, 1234, 1234, 1234, 1234, 8: 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 48: 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 473: 1234, 475: 1234, 1234, 1234, 479: 1234, 483: 1234, 1234, 1234, 1234, 1234, 492: 1234, 501: 1234, 506: 1234, 1234, 1234, 543: 1234, 566: 1234, 1234, 1234, 570: 1234, 1234, 1234, 574: 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 583: 1234, 1234, 587: 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 639: 1234, 1234, 1234, 647: 1234}, + {2: 1231, 1231, 1231, 1231, 1231, 8: 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 48: 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 473: 1231, 475: 1231, 1231, 1231, 479: 1231, 483: 1231, 1231, 1231, 1231, 1231, 492: 1231, 501: 1231, 506: 1231, 1231, 1231, 543: 1231, 566: 1231, 1231, 1231, 570: 1231, 1231, 1231, 574: 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 583: 1231, 1231, 587: 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 639: 1231, 1231, 1231, 647: 1231}, // 1010 - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 2724, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 3519}, - {47: 3520, 505: 3313, 509: 3311, 3312, 3310, 3308, 733: 3309, 3307}, - {950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 474: 950, 950, 950, 950, 950, 480: 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 491: 950, 493: 950, 950, 950, 950, 950, 950, 950, 950, 502: 950, 950, 950, 950, 509: 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 544: 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 585: 950, 740: 3330, 746: 3522, 764: 3521}, - {1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 474: 1114, 1114, 1114, 1114, 1114, 480: 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 491: 1114, 493: 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 502: 1114, 1114, 1114, 1114, 509: 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 544: 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 585: 1114}, - {949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 474: 949, 949, 949, 949, 949, 480: 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 491: 949, 493: 949, 949, 949, 949, 949, 949, 949, 949, 502: 949, 949, 949, 949, 509: 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 544: 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, 585: 949}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 2729, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 3524}, + {47: 3525, 505: 3318, 509: 3316, 3317, 3315, 3313, 733: 3314, 3312}, + {954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 474: 954, 954, 954, 954, 954, 480: 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 491: 954, 493: 954, 954, 954, 954, 954, 954, 954, 954, 502: 954, 954, 954, 954, 509: 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 544: 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 585: 954, 740: 3335, 746: 3527, 764: 3526}, + {1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 474: 1118, 1118, 1118, 1118, 1118, 480: 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 491: 1118, 493: 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 502: 1118, 1118, 1118, 1118, 509: 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 544: 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 585: 1118}, + {953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 474: 953, 953, 953, 953, 953, 480: 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 491: 953, 493: 953, 953, 953, 953, 953, 953, 953, 953, 502: 953, 953, 953, 953, 509: 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 544: 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 585: 953}, // 1015 - {2: 1226, 1226, 1226, 1226, 1226, 8: 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 48: 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 473: 1226, 475: 1226, 1226, 1226, 479: 1226, 483: 1226, 1226, 1226, 1226, 1226, 492: 1226, 501: 1226, 506: 1226, 1226, 1226, 543: 1226, 566: 1226, 1226, 1226, 570: 1226, 1226, 1226, 574: 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 583: 1226, 1226, 587: 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 639: 1226, 1226, 1226, 647: 1226}, - {2: 1231, 1231, 1231, 1231, 1231, 8: 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 48: 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 473: 1231, 475: 1231, 1231, 1231, 479: 1231, 483: 1231, 1231, 1231, 1231, 1231, 492: 1231, 501: 1231, 506: 1231, 1231, 1231, 543: 1231, 566: 1231, 1231, 1231, 570: 1231, 1231, 1231, 574: 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 583: 1231, 1231, 587: 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 639: 1231, 1231, 1231, 647: 1231, 650: 3514, 744: 3512, 3513, 783: 3515, 786: 3516, 813: 3525, 815: 3517}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 2724, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 3526}, - {47: 3527, 505: 3313, 509: 3311, 3312, 3310, 3308, 733: 3309, 3307}, - {950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 474: 950, 950, 950, 950, 950, 480: 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 491: 950, 493: 950, 950, 950, 950, 950, 950, 950, 950, 502: 950, 950, 950, 950, 509: 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 544: 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 585: 950, 740: 3330, 746: 3522, 764: 3528}, + {2: 1230, 1230, 1230, 1230, 1230, 8: 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 48: 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 473: 1230, 475: 1230, 1230, 1230, 479: 1230, 483: 1230, 1230, 1230, 1230, 1230, 492: 1230, 501: 1230, 506: 1230, 1230, 1230, 543: 1230, 566: 1230, 1230, 1230, 570: 1230, 1230, 1230, 574: 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 583: 1230, 1230, 587: 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 639: 1230, 1230, 1230, 647: 1230}, + {2: 1235, 1235, 1235, 1235, 1235, 8: 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 48: 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 473: 1235, 475: 1235, 1235, 1235, 479: 1235, 483: 1235, 1235, 1235, 1235, 1235, 492: 1235, 501: 1235, 506: 1235, 1235, 1235, 543: 1235, 566: 1235, 1235, 1235, 570: 1235, 1235, 1235, 574: 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 583: 1235, 1235, 587: 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 639: 1235, 1235, 1235, 647: 1235, 650: 3519, 744: 3517, 3518, 783: 3520, 786: 3521, 813: 3530, 815: 3522}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 2729, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 3531}, + {47: 3532, 505: 3318, 509: 3316, 3317, 3315, 3313, 733: 3314, 3312}, + {954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 474: 954, 954, 954, 954, 954, 480: 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 491: 954, 493: 954, 954, 954, 954, 954, 954, 954, 954, 502: 954, 954, 954, 954, 509: 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 544: 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 585: 954, 740: 3335, 746: 3527, 764: 3533}, // 1020 - {1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 474: 1115, 1115, 1115, 1115, 1115, 480: 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 491: 1115, 493: 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 502: 1115, 1115, 1115, 1115, 509: 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 544: 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 585: 1115}, - {2: 1231, 1231, 1231, 1231, 1231, 8: 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 48: 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 473: 1231, 475: 1231, 1231, 1231, 479: 1231, 483: 1231, 1231, 1231, 1231, 1231, 492: 1231, 501: 1231, 506: 1231, 1231, 1231, 543: 1231, 566: 1231, 1231, 1231, 570: 1231, 1231, 1231, 574: 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 583: 1231, 1231, 587: 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 639: 1231, 1231, 1231, 647: 1231, 650: 3514, 744: 3512, 3513, 783: 3515, 786: 3516, 813: 3530, 815: 3517}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 2724, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 3531}, - {47: 3532, 505: 3313, 509: 3311, 3312, 3310, 3308, 733: 3309, 3307}, - {950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 474: 950, 950, 950, 950, 950, 480: 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 491: 950, 493: 950, 950, 950, 950, 950, 950, 950, 950, 502: 950, 950, 950, 950, 509: 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 544: 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 585: 950, 740: 3330, 746: 3522, 764: 3533}, + {1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 474: 1119, 1119, 1119, 1119, 1119, 480: 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 491: 1119, 493: 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 502: 1119, 1119, 1119, 1119, 509: 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 544: 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 585: 1119}, + {2: 1235, 1235, 1235, 1235, 1235, 8: 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 48: 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 473: 1235, 475: 1235, 1235, 1235, 479: 1235, 483: 1235, 1235, 1235, 1235, 1235, 492: 1235, 501: 1235, 506: 1235, 1235, 1235, 543: 1235, 566: 1235, 1235, 1235, 570: 1235, 1235, 1235, 574: 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 583: 1235, 1235, 587: 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 639: 1235, 1235, 1235, 647: 1235, 650: 3519, 744: 3517, 3518, 783: 3520, 786: 3521, 813: 3535, 815: 3522}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 2729, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 3536}, + {47: 3537, 505: 3318, 509: 3316, 3317, 3315, 3313, 733: 3314, 3312}, + {954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 474: 954, 954, 954, 954, 954, 480: 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 491: 954, 493: 954, 954, 954, 954, 954, 954, 954, 954, 502: 954, 954, 954, 954, 509: 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 544: 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 585: 954, 740: 3335, 746: 3527, 764: 3538}, // 1025 - {1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 474: 1116, 1116, 1116, 1116, 1116, 480: 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 491: 1116, 493: 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 502: 1116, 1116, 1116, 1116, 509: 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 544: 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 585: 1116}, - {2: 1231, 1231, 1231, 1231, 1231, 8: 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 48: 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 473: 1231, 475: 1231, 1231, 1231, 479: 1231, 483: 1231, 1231, 1231, 1231, 1231, 492: 1231, 501: 1231, 506: 1231, 1231, 1231, 543: 1231, 566: 1231, 1231, 1231, 570: 1231, 1231, 1231, 574: 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 583: 1231, 1231, 587: 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 639: 1231, 1231, 1231, 647: 1231, 650: 3514, 744: 3512, 3513, 783: 3515, 786: 3516, 813: 3535, 815: 3517}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 2724, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 3536}, - {47: 3537, 505: 3313, 509: 3311, 3312, 3310, 3308, 733: 3309, 3307}, - {950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 474: 950, 950, 950, 950, 950, 480: 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 491: 950, 493: 950, 950, 950, 950, 950, 950, 950, 950, 502: 950, 950, 950, 950, 509: 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 544: 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 585: 950, 740: 3330, 746: 3522, 764: 3538}, + {1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 474: 1120, 1120, 1120, 1120, 1120, 480: 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 491: 1120, 493: 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 502: 1120, 1120, 1120, 1120, 509: 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 544: 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 585: 1120}, + {2: 1235, 1235, 1235, 1235, 1235, 8: 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 48: 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 473: 1235, 475: 1235, 1235, 1235, 479: 1235, 483: 1235, 1235, 1235, 1235, 1235, 492: 1235, 501: 1235, 506: 1235, 1235, 1235, 543: 1235, 566: 1235, 1235, 1235, 570: 1235, 1235, 1235, 574: 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 583: 1235, 1235, 587: 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 639: 1235, 1235, 1235, 647: 1235, 650: 3519, 744: 3517, 3518, 783: 3520, 786: 3521, 813: 3540, 815: 3522}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 2729, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 3541}, + {47: 3542, 505: 3318, 509: 3316, 3317, 3315, 3313, 733: 3314, 3312}, + {954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 474: 954, 954, 954, 954, 954, 480: 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 491: 954, 493: 954, 954, 954, 954, 954, 954, 954, 954, 502: 954, 954, 954, 954, 509: 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 544: 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 585: 954, 740: 3335, 746: 3527, 764: 3543}, // 1030 - {1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 474: 1117, 1117, 1117, 1117, 1117, 480: 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 491: 1117, 493: 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 502: 1117, 1117, 1117, 1117, 509: 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 544: 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 585: 1117}, - {2: 1231, 1231, 1231, 1231, 1231, 8: 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 48: 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 473: 1231, 475: 1231, 1231, 1231, 479: 1231, 483: 1231, 1231, 1231, 1231, 1231, 492: 1231, 501: 1231, 506: 1231, 1231, 1231, 543: 1231, 566: 1231, 1231, 1231, 570: 1231, 1231, 1231, 574: 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 583: 1231, 1231, 587: 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 639: 1231, 1231, 1231, 647: 1231, 650: 3514, 744: 3512, 3513, 783: 3515, 786: 3516, 813: 3540, 815: 3517}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 2724, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 3541}, - {47: 3542, 505: 3313, 509: 3311, 3312, 3310, 3308, 733: 3309, 3307}, - {950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 474: 950, 950, 950, 950, 950, 480: 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 491: 950, 493: 950, 950, 950, 950, 950, 950, 950, 950, 502: 950, 950, 950, 950, 509: 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 544: 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 585: 950, 740: 3330, 746: 3522, 764: 3543}, + {1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 474: 1121, 1121, 1121, 1121, 1121, 480: 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 491: 1121, 493: 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 502: 1121, 1121, 1121, 1121, 509: 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 544: 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 585: 1121}, + {2: 1235, 1235, 1235, 1235, 1235, 8: 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 48: 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 473: 1235, 475: 1235, 1235, 1235, 479: 1235, 483: 1235, 1235, 1235, 1235, 1235, 492: 1235, 501: 1235, 506: 1235, 1235, 1235, 543: 1235, 566: 1235, 1235, 1235, 570: 1235, 1235, 1235, 574: 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 583: 1235, 1235, 587: 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 639: 1235, 1235, 1235, 647: 1235, 650: 3519, 744: 3517, 3518, 783: 3520, 786: 3521, 813: 3545, 815: 3522}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 2729, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 3546}, + {47: 3547, 505: 3318, 509: 3316, 3317, 3315, 3313, 733: 3314, 3312}, + {954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 474: 954, 954, 954, 954, 954, 480: 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 491: 954, 493: 954, 954, 954, 954, 954, 954, 954, 954, 502: 954, 954, 954, 954, 509: 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 544: 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 585: 954, 740: 3335, 746: 3527, 764: 3548}, // 1035 - {1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 474: 1118, 1118, 1118, 1118, 1118, 480: 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 491: 1118, 493: 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 502: 1118, 1118, 1118, 1118, 509: 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 544: 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 585: 1118}, - {2: 1231, 1231, 1231, 1231, 1231, 8: 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 48: 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 473: 1231, 475: 1231, 1231, 1231, 479: 1231, 483: 1231, 1231, 1231, 1231, 1231, 492: 1231, 501: 1231, 506: 1231, 1231, 1231, 543: 1231, 566: 1231, 1231, 1231, 570: 1231, 1231, 1231, 574: 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 583: 1231, 1231, 587: 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 639: 1231, 1231, 1231, 647: 1231, 650: 3514, 744: 3512, 3513, 783: 3515, 786: 3516, 813: 3545, 815: 3517}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 2724, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 3546}, - {47: 3547, 505: 3313, 509: 3311, 3312, 3310, 3308, 733: 3309, 3307}, - {950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 474: 950, 950, 950, 950, 950, 480: 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 491: 950, 493: 950, 950, 950, 950, 950, 950, 950, 950, 502: 950, 950, 950, 950, 509: 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 544: 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 585: 950, 740: 3330, 746: 3522, 764: 3548}, + {1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 474: 1122, 1122, 1122, 1122, 1122, 480: 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 491: 1122, 493: 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 502: 1122, 1122, 1122, 1122, 509: 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 544: 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 585: 1122}, + {2: 1235, 1235, 1235, 1235, 1235, 8: 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 48: 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 473: 1235, 475: 1235, 1235, 1235, 479: 1235, 483: 1235, 1235, 1235, 1235, 1235, 492: 1235, 501: 1235, 506: 1235, 1235, 1235, 543: 1235, 566: 1235, 1235, 1235, 570: 1235, 1235, 1235, 574: 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 583: 1235, 1235, 587: 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 639: 1235, 1235, 1235, 647: 1235, 650: 3519, 744: 3517, 3518, 783: 3520, 786: 3521, 813: 3550, 815: 3522}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 2729, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 3551}, + {47: 3552, 505: 3318, 509: 3316, 3317, 3315, 3313, 733: 3314, 3312}, + {954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 474: 954, 954, 954, 954, 954, 480: 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 491: 954, 493: 954, 954, 954, 954, 954, 954, 954, 954, 502: 954, 954, 954, 954, 509: 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 544: 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 585: 954, 740: 3335, 746: 3527, 764: 3553}, // 1040 - {1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 474: 1119, 1119, 1119, 1119, 1119, 480: 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 491: 1119, 493: 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 502: 1119, 1119, 1119, 1119, 509: 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 544: 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 585: 1119}, - {2: 1231, 1231, 1231, 1231, 1231, 8: 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 48: 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 473: 1231, 475: 1231, 1231, 1231, 479: 1231, 483: 1231, 1231, 1231, 1231, 1231, 492: 1231, 501: 1231, 506: 1231, 1231, 1231, 543: 1231, 566: 1231, 1231, 1231, 570: 1231, 1231, 1231, 574: 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 583: 1231, 1231, 587: 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 639: 1231, 1231, 1231, 647: 1231, 650: 3514, 744: 3512, 3513, 783: 3515, 786: 3516, 813: 3550, 815: 3517}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 2724, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 3551}, - {47: 3552, 505: 3313, 509: 3311, 3312, 3310, 3308, 733: 3309, 3307}, - {950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 474: 950, 950, 950, 950, 950, 480: 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 491: 950, 493: 950, 950, 950, 950, 950, 950, 950, 950, 502: 950, 950, 950, 950, 509: 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 544: 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 585: 950, 740: 3330, 746: 3522, 764: 3553}, + {1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 474: 1123, 1123, 1123, 1123, 1123, 480: 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 491: 1123, 493: 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 502: 1123, 1123, 1123, 1123, 509: 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 544: 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 585: 1123}, + {2: 1235, 1235, 1235, 1235, 1235, 8: 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 48: 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 473: 1235, 475: 1235, 1235, 1235, 479: 1235, 483: 1235, 1235, 1235, 1235, 1235, 492: 1235, 501: 1235, 506: 1235, 1235, 1235, 543: 1235, 566: 1235, 1235, 1235, 570: 1235, 1235, 1235, 574: 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 583: 1235, 1235, 587: 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 639: 1235, 1235, 1235, 647: 1235, 650: 3519, 744: 3517, 3518, 783: 3520, 786: 3521, 813: 3555, 815: 3522}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 2729, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 3556}, + {47: 3557, 505: 3318, 509: 3316, 3317, 3315, 3313, 733: 3314, 3312}, + {954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 474: 954, 954, 954, 954, 954, 480: 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 491: 954, 493: 954, 954, 954, 954, 954, 954, 954, 954, 502: 954, 954, 954, 954, 509: 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 544: 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 585: 954, 740: 3335, 746: 3527, 764: 3558}, // 1045 - {1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 474: 1120, 1120, 1120, 1120, 1120, 480: 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 491: 1120, 493: 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 502: 1120, 1120, 1120, 1120, 509: 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 544: 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 585: 1120}, - {2: 1231, 1231, 1231, 1231, 1231, 8: 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 48: 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 473: 1231, 475: 1231, 1231, 1231, 479: 1231, 483: 1231, 1231, 1231, 1231, 1231, 492: 1231, 501: 1231, 506: 1231, 1231, 1231, 543: 1231, 566: 1231, 1231, 1231, 570: 1231, 1231, 1231, 574: 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 583: 1231, 1231, 587: 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 639: 1231, 1231, 1231, 647: 1231, 650: 3514, 744: 3512, 3513, 783: 3515, 786: 3516, 813: 3555, 815: 3517}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 2724, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 3556, 777: 3557}, - {1913, 1913, 7: 1913, 47: 1913, 125: 1913, 481: 1913, 502: 1913, 505: 3313, 509: 3311, 3312, 3310, 3308, 733: 3309, 3307}, - {7: 3558, 47: 1287, 125: 1287, 502: 2694, 766: 2695, 810: 3559}, + {1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 474: 1124, 1124, 1124, 1124, 1124, 480: 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 491: 1124, 493: 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 502: 1124, 1124, 1124, 1124, 509: 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 544: 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 585: 1124}, + {2: 1235, 1235, 1235, 1235, 1235, 8: 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 48: 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 473: 1235, 475: 1235, 1235, 1235, 479: 1235, 483: 1235, 1235, 1235, 1235, 1235, 492: 1235, 501: 1235, 506: 1235, 1235, 1235, 543: 1235, 566: 1235, 1235, 1235, 570: 1235, 1235, 1235, 574: 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 583: 1235, 1235, 587: 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 639: 1235, 1235, 1235, 647: 1235, 650: 3519, 744: 3517, 3518, 783: 3520, 786: 3521, 813: 3560, 815: 3522}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 2729, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 3561, 777: 3562}, + {1917, 1917, 7: 1917, 47: 1917, 125: 1917, 481: 1917, 502: 1917, 505: 3318, 509: 3316, 3317, 3315, 3313, 733: 3314, 3312}, + {7: 3563, 47: 1291, 125: 1291, 502: 2699, 766: 2700, 810: 3564}, // 1050 - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 2724, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 3565}, - {47: 1107, 125: 3561, 1257: 3560}, - {47: 3563}, - {475: 3562}, - {47: 1106}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 2729, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 3570}, + {47: 1111, 125: 3566, 1258: 3565}, + {47: 3568}, + {475: 3567}, + {47: 1110}, // 1055 - {950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 474: 950, 950, 950, 950, 950, 480: 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 491: 950, 493: 950, 950, 950, 950, 950, 950, 950, 950, 502: 950, 950, 950, 950, 509: 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 544: 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 585: 950, 740: 3330, 746: 3522, 764: 3564}, - {1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 474: 1121, 1121, 1121, 1121, 1121, 480: 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 491: 1121, 493: 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 502: 1121, 1121, 1121, 1121, 509: 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 544: 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 585: 1121}, - {1912, 1912, 7: 1912, 47: 1912, 125: 1912, 481: 1912, 502: 1912, 505: 3313, 509: 3311, 3312, 3310, 3308, 733: 3309, 3307}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 2724, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 523: 3570, 543: 3233, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 650: 3569, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 3567, 744: 3512, 3513, 783: 3568}, - {47: 3578, 505: 3313, 509: 3311, 3312, 3310, 3308, 733: 3309, 3307}, + {954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 474: 954, 954, 954, 954, 954, 480: 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 491: 954, 493: 954, 954, 954, 954, 954, 954, 954, 954, 502: 954, 954, 954, 954, 509: 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 544: 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 585: 954, 740: 3335, 746: 3527, 764: 3569}, + {1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 474: 1125, 1125, 1125, 1125, 1125, 480: 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 491: 1125, 493: 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 502: 1125, 1125, 1125, 1125, 509: 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 544: 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 585: 1125}, + {1916, 1916, 7: 1916, 47: 1916, 125: 1916, 481: 1916, 502: 1916, 505: 3318, 509: 3316, 3317, 3315, 3313, 733: 3314, 3312}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 2729, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 523: 3575, 543: 3238, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 650: 3574, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 3572, 744: 3517, 3518, 783: 3573}, + {47: 3583, 505: 3318, 509: 3316, 3317, 3315, 3313, 733: 3314, 3312}, // 1060 - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 2724, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 3556, 777: 3576}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 2724, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 3573}, - {47: 3571}, - {950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 474: 950, 950, 950, 950, 950, 480: 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 491: 950, 493: 950, 950, 950, 950, 950, 950, 950, 950, 502: 950, 950, 950, 950, 509: 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 544: 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 585: 950, 740: 3330, 746: 3522, 764: 3572}, - {1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 474: 1122, 1122, 1122, 1122, 1122, 480: 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 491: 1122, 493: 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 502: 1122, 1122, 1122, 1122, 509: 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 544: 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 585: 1122}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 2729, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 3561, 777: 3581}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 2729, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 3578}, + {47: 3576}, + {954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 474: 954, 954, 954, 954, 954, 480: 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 491: 954, 493: 954, 954, 954, 954, 954, 954, 954, 954, 502: 954, 954, 954, 954, 509: 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 544: 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 585: 954, 740: 3335, 746: 3527, 764: 3577}, + {1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 474: 1126, 1126, 1126, 1126, 1126, 480: 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 491: 1126, 493: 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 502: 1126, 1126, 1126, 1126, 509: 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 544: 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 585: 1126}, // 1065 - {47: 3574, 505: 3313, 509: 3311, 3312, 3310, 3308, 733: 3309, 3307}, - {950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 474: 950, 950, 950, 950, 950, 480: 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 491: 950, 493: 950, 950, 950, 950, 950, 950, 950, 950, 502: 950, 950, 950, 950, 509: 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 544: 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 585: 950, 740: 3330, 746: 3522, 764: 3575}, - {1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 474: 1124, 1124, 1124, 1124, 1124, 480: 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 491: 1124, 493: 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 502: 1124, 1124, 1124, 1124, 509: 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 544: 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 585: 1124}, - {7: 3558, 47: 3577}, - {1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 474: 1125, 1125, 1125, 1125, 1125, 480: 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 491: 1125, 493: 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 502: 1125, 1125, 1125, 1125, 509: 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 544: 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 585: 1125}, + {47: 3579, 505: 3318, 509: 3316, 3317, 3315, 3313, 733: 3314, 3312}, + {954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 474: 954, 954, 954, 954, 954, 480: 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 491: 954, 493: 954, 954, 954, 954, 954, 954, 954, 954, 502: 954, 954, 954, 954, 509: 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 544: 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 585: 954, 740: 3335, 746: 3527, 764: 3580}, + {1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 474: 1128, 1128, 1128, 1128, 1128, 480: 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 491: 1128, 493: 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 502: 1128, 1128, 1128, 1128, 509: 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 544: 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 585: 1128}, + {7: 3563, 47: 3582}, + {1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 474: 1129, 1129, 1129, 1129, 1129, 480: 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 491: 1129, 493: 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 502: 1129, 1129, 1129, 1129, 509: 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 544: 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 585: 1129}, // 1070 - {950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 474: 950, 950, 950, 950, 950, 480: 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 491: 950, 493: 950, 950, 950, 950, 950, 950, 950, 950, 502: 950, 950, 950, 950, 509: 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 544: 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 585: 950, 740: 3330, 746: 3522, 764: 3579}, - {1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 474: 1123, 1123, 1123, 1123, 1123, 480: 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 491: 1123, 493: 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 502: 1123, 1123, 1123, 1123, 509: 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 544: 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 585: 1123}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 2724, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 650: 3582, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 3581}, - {47: 3586, 505: 3313, 509: 3311, 3312, 3310, 3308, 733: 3309, 3307}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 2724, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 3583}, - // 1075 - {47: 3584, 505: 3313, 509: 3311, 3312, 3310, 3308, 733: 3309, 3307}, - {950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 474: 950, 950, 950, 950, 950, 480: 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 491: 950, 493: 950, 950, 950, 950, 950, 950, 950, 950, 502: 950, 950, 950, 950, 509: 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 544: 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 585: 950, 740: 3330, 746: 3522, 764: 3585}, - {1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 474: 1126, 1126, 1126, 1126, 1126, 480: 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 491: 1126, 493: 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 502: 1126, 1126, 1126, 1126, 509: 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 544: 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 585: 1126}, - {950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 474: 950, 950, 950, 950, 950, 480: 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 491: 950, 493: 950, 950, 950, 950, 950, 950, 950, 950, 502: 950, 950, 950, 950, 509: 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 544: 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 585: 950, 740: 3330, 746: 3522, 764: 3587}, + {954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 474: 954, 954, 954, 954, 954, 480: 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 491: 954, 493: 954, 954, 954, 954, 954, 954, 954, 954, 502: 954, 954, 954, 954, 509: 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 544: 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 585: 954, 740: 3335, 746: 3527, 764: 3584}, {1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 474: 1127, 1127, 1127, 1127, 1127, 480: 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 491: 1127, 493: 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 502: 1127, 1127, 1127, 1127, 509: 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 544: 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 585: 1127}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 2729, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 650: 3587, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 3586}, + {47: 3591, 505: 3318, 509: 3316, 3317, 3315, 3313, 733: 3314, 3312}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 2729, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 3588}, + // 1075 + {47: 3589, 505: 3318, 509: 3316, 3317, 3315, 3313, 733: 3314, 3312}, + {954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 474: 954, 954, 954, 954, 954, 480: 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 491: 954, 493: 954, 954, 954, 954, 954, 954, 954, 954, 502: 954, 954, 954, 954, 509: 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 544: 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 585: 954, 740: 3335, 746: 3527, 764: 3590}, + {1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 474: 1130, 1130, 1130, 1130, 1130, 480: 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 491: 1130, 493: 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 502: 1130, 1130, 1130, 1130, 509: 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 544: 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 585: 1130}, + {954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 474: 954, 954, 954, 954, 954, 480: 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 491: 954, 493: 954, 954, 954, 954, 954, 954, 954, 954, 502: 954, 954, 954, 954, 509: 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 544: 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 585: 954, 740: 3335, 746: 3527, 764: 3592}, + {1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 474: 1131, 1131, 1131, 1131, 1131, 480: 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 491: 1131, 493: 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 502: 1131, 1131, 1131, 1131, 509: 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 544: 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 585: 1131}, // 1080 - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 2724, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 650: 3590, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 3589}, - {47: 3594, 505: 3313, 509: 3311, 3312, 3310, 3308, 733: 3309, 3307}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 2724, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 3591}, - {47: 3592, 505: 3313, 509: 3311, 3312, 3310, 3308, 733: 3309, 3307}, - {950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 474: 950, 950, 950, 950, 950, 480: 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 491: 950, 493: 950, 950, 950, 950, 950, 950, 950, 950, 502: 950, 950, 950, 950, 509: 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 544: 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 585: 950, 740: 3330, 746: 3522, 764: 3593}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 2729, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 650: 3595, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 3594}, + {47: 3599, 505: 3318, 509: 3316, 3317, 3315, 3313, 733: 3314, 3312}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 2729, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 3596}, + {47: 3597, 505: 3318, 509: 3316, 3317, 3315, 3313, 733: 3314, 3312}, + {954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 474: 954, 954, 954, 954, 954, 480: 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 491: 954, 493: 954, 954, 954, 954, 954, 954, 954, 954, 502: 954, 954, 954, 954, 509: 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 544: 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 585: 954, 740: 3335, 746: 3527, 764: 3598}, // 1085 - {1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 474: 1128, 1128, 1128, 1128, 1128, 480: 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 491: 1128, 493: 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 502: 1128, 1128, 1128, 1128, 509: 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 544: 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 585: 1128}, - {950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 474: 950, 950, 950, 950, 950, 480: 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 491: 950, 493: 950, 950, 950, 950, 950, 950, 950, 950, 502: 950, 950, 950, 950, 509: 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 544: 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 585: 950, 740: 3330, 746: 3522, 764: 3595}, - {1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 474: 1129, 1129, 1129, 1129, 1129, 480: 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 491: 1129, 493: 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 502: 1129, 1129, 1129, 1129, 509: 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 544: 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 585: 1129}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 2724, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 650: 3598, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 3597}, - {47: 3602, 505: 3313, 509: 3311, 3312, 3310, 3308, 733: 3309, 3307}, + {1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 474: 1132, 1132, 1132, 1132, 1132, 480: 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 491: 1132, 493: 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 502: 1132, 1132, 1132, 1132, 509: 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 544: 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 585: 1132}, + {954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 474: 954, 954, 954, 954, 954, 480: 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 491: 954, 493: 954, 954, 954, 954, 954, 954, 954, 954, 502: 954, 954, 954, 954, 509: 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 544: 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 585: 954, 740: 3335, 746: 3527, 764: 3600}, + {1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 474: 1133, 1133, 1133, 1133, 1133, 480: 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 491: 1133, 493: 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 502: 1133, 1133, 1133, 1133, 509: 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 544: 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 585: 1133}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 2729, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 650: 3603, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 3602}, + {47: 3607, 505: 3318, 509: 3316, 3317, 3315, 3313, 733: 3314, 3312}, // 1090 - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 2724, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 3599}, - {47: 3600, 505: 3313, 509: 3311, 3312, 3310, 3308, 733: 3309, 3307}, - {950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 474: 950, 950, 950, 950, 950, 480: 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 491: 950, 493: 950, 950, 950, 950, 950, 950, 950, 950, 502: 950, 950, 950, 950, 509: 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 544: 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 585: 950, 740: 3330, 746: 3522, 764: 3601}, - {1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 474: 1130, 1130, 1130, 1130, 1130, 480: 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 491: 1130, 493: 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 502: 1130, 1130, 1130, 1130, 509: 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 544: 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 585: 1130}, - {950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 474: 950, 950, 950, 950, 950, 480: 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 491: 950, 493: 950, 950, 950, 950, 950, 950, 950, 950, 502: 950, 950, 950, 950, 509: 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 544: 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 585: 950, 740: 3330, 746: 3522, 764: 3603}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 2729, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 3604}, + {47: 3605, 505: 3318, 509: 3316, 3317, 3315, 3313, 733: 3314, 3312}, + {954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 474: 954, 954, 954, 954, 954, 480: 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 491: 954, 493: 954, 954, 954, 954, 954, 954, 954, 954, 502: 954, 954, 954, 954, 509: 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 544: 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 585: 954, 740: 3335, 746: 3527, 764: 3606}, + {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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 474: 1134, 1134, 1134, 1134, 1134, 480: 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 491: 1134, 493: 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 502: 1134, 1134, 1134, 1134, 509: 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, 1134, 1134, 1134, 1134, 544: 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 585: 1134}, + {954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 474: 954, 954, 954, 954, 954, 480: 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 491: 954, 493: 954, 954, 954, 954, 954, 954, 954, 954, 502: 954, 954, 954, 954, 509: 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 544: 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 585: 954, 740: 3335, 746: 3527, 764: 3608}, // 1095 - {1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 474: 1131, 1131, 1131, 1131, 1131, 480: 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 491: 1131, 493: 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 502: 1131, 1131, 1131, 1131, 509: 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 544: 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 585: 1131}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 2724, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 3556, 777: 3605}, - {7: 3558, 47: 3606}, - {1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 474: 1132, 1132, 1132, 1132, 1132, 480: 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 491: 1132, 493: 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 502: 1132, 1132, 1132, 1132, 509: 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 544: 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 585: 1132}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 2724, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 3556, 777: 3608}, + {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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 1135, 1135, 1135, 1135, 1135, 474: 1135, 1135, 1135, 1135, 1135, 480: 1135, 1135, 1135, 1135, 1135, 1135, 1135, 1135, 1135, 1135, 491: 1135, 493: 1135, 1135, 1135, 1135, 1135, 1135, 1135, 1135, 502: 1135, 1135, 1135, 1135, 509: 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, 1135, 1135, 1135, 1135, 1135, 1135, 1135, 1135, 544: 1135, 1135, 1135, 1135, 1135, 1135, 1135, 1135, 1135, 1135, 1135, 1135, 1135, 1135, 1135, 1135, 1135, 1135, 1135, 1135, 1135, 1135, 585: 1135}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 2729, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 3561, 777: 3610}, + {7: 3563, 47: 3611}, + {1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 474: 1136, 1136, 1136, 1136, 1136, 480: 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 491: 1136, 493: 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 502: 1136, 1136, 1136, 1136, 509: 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 544: 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 585: 1136}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 2729, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 3561, 777: 3613}, // 1100 - {7: 3558, 47: 3609}, - {1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 474: 1133, 1133, 1133, 1133, 1133, 480: 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 491: 1133, 493: 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 502: 1133, 1133, 1133, 1133, 509: 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 544: 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 585: 1133}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 2724, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 3611}, - {7: 3612, 505: 3313, 509: 3311, 3312, 3310, 3308, 733: 3309, 3307}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 2724, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 3613}, + {7: 3563, 47: 3614}, + {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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 474: 1137, 1137, 1137, 1137, 1137, 480: 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137, 491: 1137, 493: 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137, 502: 1137, 1137, 1137, 1137, 509: 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, 1137, 1137, 1137, 1137, 1137, 1137, 544: 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137, 585: 1137}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 2729, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 3616}, + {7: 3617, 505: 3318, 509: 3316, 3317, 3315, 3313, 733: 3314, 3312}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 2729, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 3618}, // 1105 - {7: 3614, 505: 3313, 509: 3311, 3312, 3310, 3308, 733: 3309, 3307}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 2724, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 3615}, - {47: 3616, 505: 3313, 509: 3311, 3312, 3310, 3308, 733: 3309, 3307}, - {1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 474: 1149, 1149, 1149, 1149, 1149, 480: 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 491: 1149, 493: 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 502: 1149, 1149, 1149, 1149, 509: 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 544: 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 585: 1149}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 2724, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 3618, 1180: 3620, 1234: 3621, 1319: 3622, 3619}, + {7: 3619, 505: 3318, 509: 3316, 3317, 3315, 3313, 733: 3314, 3312}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 2729, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 3620}, + {47: 3621, 505: 3318, 509: 3316, 3317, 3315, 3313, 733: 3314, 3312}, + {1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 474: 1153, 1153, 1153, 1153, 1153, 480: 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 491: 1153, 493: 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 502: 1153, 1153, 1153, 1153, 509: 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 544: 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 585: 1153}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 2729, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 3623, 1181: 3625, 1235: 3626, 1320: 3627, 3624}, // 1110 - {47: 3630, 499: 3631, 505: 3313, 509: 3311, 3312, 3310, 3308, 733: 3309, 3307}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 2724, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 499: 3624, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 3623}, - {2: 1140, 1140, 1140, 1140, 1140, 8: 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 48: 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 473: 1140, 475: 1140, 1140, 1140, 479: 1140, 483: 1140, 1140, 1140, 1140, 1140, 492: 1140, 499: 1140, 501: 1140, 506: 1140, 1140, 1140, 543: 1140, 566: 1140, 1140, 1140, 570: 1140, 1140, 1140, 574: 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 583: 1140, 1140, 587: 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 639: 1140, 1140, 1140, 647: 1140}, - {2: 1139, 1139, 1139, 1139, 1139, 8: 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 48: 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 473: 1139, 475: 1139, 1139, 1139, 479: 1139, 483: 1139, 1139, 1139, 1139, 1139, 492: 1139, 499: 1139, 501: 1139, 506: 1139, 1139, 1139, 543: 1139, 566: 1139, 1139, 1139, 570: 1139, 1139, 1139, 574: 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 583: 1139, 1139, 587: 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 639: 1139, 1139, 1139, 647: 1139}, - {2: 1138, 1138, 1138, 1138, 1138, 8: 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 48: 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 473: 1138, 475: 1138, 1138, 1138, 479: 1138, 483: 1138, 1138, 1138, 1138, 1138, 492: 1138, 499: 1138, 501: 1138, 506: 1138, 1138, 1138, 543: 1138, 566: 1138, 1138, 1138, 570: 1138, 1138, 1138, 574: 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 583: 1138, 1138, 587: 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 639: 1138, 1138, 1138, 647: 1138}, + {47: 3635, 499: 3636, 505: 3318, 509: 3316, 3317, 3315, 3313, 733: 3314, 3312}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 2729, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 499: 3629, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 3628}, + {2: 1144, 1144, 1144, 1144, 1144, 8: 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 48: 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 473: 1144, 475: 1144, 1144, 1144, 479: 1144, 483: 1144, 1144, 1144, 1144, 1144, 492: 1144, 499: 1144, 501: 1144, 506: 1144, 1144, 1144, 543: 1144, 566: 1144, 1144, 1144, 570: 1144, 1144, 1144, 574: 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 583: 1144, 1144, 587: 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 639: 1144, 1144, 1144, 647: 1144}, + {2: 1143, 1143, 1143, 1143, 1143, 8: 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 48: 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 473: 1143, 475: 1143, 1143, 1143, 479: 1143, 483: 1143, 1143, 1143, 1143, 1143, 492: 1143, 499: 1143, 501: 1143, 506: 1143, 1143, 1143, 543: 1143, 566: 1143, 1143, 1143, 570: 1143, 1143, 1143, 574: 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 583: 1143, 1143, 587: 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 639: 1143, 1143, 1143, 647: 1143}, + {2: 1142, 1142, 1142, 1142, 1142, 8: 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 48: 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 473: 1142, 475: 1142, 1142, 1142, 479: 1142, 483: 1142, 1142, 1142, 1142, 1142, 492: 1142, 499: 1142, 501: 1142, 506: 1142, 1142, 1142, 543: 1142, 566: 1142, 1142, 1142, 570: 1142, 1142, 1142, 574: 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 583: 1142, 1142, 587: 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 639: 1142, 1142, 1142, 647: 1142}, // 1115 - {499: 3627, 505: 3313, 509: 3311, 3312, 3310, 3308, 733: 3309, 3307}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 2724, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 3625}, - {47: 3626, 505: 3313, 509: 3311, 3312, 3310, 3308, 733: 3309, 3307}, - {1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 474: 1155, 1155, 1155, 1155, 1155, 480: 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 491: 1155, 493: 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 502: 1155, 1155, 1155, 1155, 509: 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 544: 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 585: 1155}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 2724, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 3628}, + {499: 3632, 505: 3318, 509: 3316, 3317, 3315, 3313, 733: 3314, 3312}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 2729, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 3630}, + {47: 3631, 505: 3318, 509: 3316, 3317, 3315, 3313, 733: 3314, 3312}, + {1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 474: 1159, 1159, 1159, 1159, 1159, 480: 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 491: 1159, 493: 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 502: 1159, 1159, 1159, 1159, 509: 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 544: 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 585: 1159}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 2729, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 3633}, // 1120 - {47: 3629, 505: 3313, 509: 3311, 3312, 3310, 3308, 733: 3309, 3307}, - {1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 474: 1154, 1154, 1154, 1154, 1154, 480: 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 491: 1154, 493: 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 502: 1154, 1154, 1154, 1154, 509: 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 544: 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 585: 1154}, - {1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 474: 1157, 1157, 1157, 1157, 1157, 480: 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 491: 1157, 493: 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 502: 1157, 1157, 1157, 1157, 509: 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 544: 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 585: 1157}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 2724, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 3632}, - {47: 3633, 505: 3313, 509: 3311, 3312, 3310, 3308, 733: 3309, 3307}, + {47: 3634, 505: 3318, 509: 3316, 3317, 3315, 3313, 733: 3314, 3312}, + {1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 474: 1158, 1158, 1158, 1158, 1158, 480: 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 491: 1158, 493: 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 502: 1158, 1158, 1158, 1158, 509: 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 544: 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 585: 1158}, + {1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 474: 1161, 1161, 1161, 1161, 1161, 480: 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 491: 1161, 493: 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 502: 1161, 1161, 1161, 1161, 509: 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 544: 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 585: 1161}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 2729, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 3637}, + {47: 3638, 505: 3318, 509: 3316, 3317, 3315, 3313, 733: 3314, 3312}, // 1125 - {1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 474: 1156, 1156, 1156, 1156, 1156, 480: 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 491: 1156, 493: 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 502: 1156, 1156, 1156, 1156, 509: 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 544: 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 585: 1156}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 2724, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 3635}, - {7: 3636, 499: 3637, 505: 3313, 509: 3311, 3312, 3310, 3308, 733: 3309, 3307}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 2724, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 3643}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 2724, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 3638}, - // 1130 - {47: 3639, 494: 3640, 505: 3313, 509: 3311, 3312, 3310, 3308, 733: 3309, 3307}, - {1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 474: 1162, 1162, 1162, 1162, 1162, 480: 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 491: 1162, 493: 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 502: 1162, 1162, 1162, 1162, 509: 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 544: 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 585: 1162}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 2724, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 3641}, - {47: 3642, 505: 3313, 509: 3311, 3312, 3310, 3308, 733: 3309, 3307}, {1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 474: 1160, 1160, 1160, 1160, 1160, 480: 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 491: 1160, 493: 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 502: 1160, 1160, 1160, 1160, 509: 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 544: 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 585: 1160}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 2729, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 3640}, + {7: 3641, 499: 3642, 505: 3318, 509: 3316, 3317, 3315, 3313, 733: 3314, 3312}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 2729, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 3648}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 2729, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 3643}, + // 1130 + {47: 3644, 494: 3645, 505: 3318, 509: 3316, 3317, 3315, 3313, 733: 3314, 3312}, + {1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 474: 1166, 1166, 1166, 1166, 1166, 480: 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 491: 1166, 493: 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 502: 1166, 1166, 1166, 1166, 509: 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 544: 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 585: 1166}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 2729, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 3646}, + {47: 3647, 505: 3318, 509: 3316, 3317, 3315, 3313, 733: 3314, 3312}, + {1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 474: 1164, 1164, 1164, 1164, 1164, 480: 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 491: 1164, 493: 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 502: 1164, 1164, 1164, 1164, 509: 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 544: 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 585: 1164}, // 1135 - {7: 3645, 47: 3644, 505: 3313, 509: 3311, 3312, 3310, 3308, 733: 3309, 3307}, - {1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 474: 1163, 1163, 1163, 1163, 1163, 480: 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 491: 1163, 493: 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 502: 1163, 1163, 1163, 1163, 509: 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 544: 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 585: 1163}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 2724, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 3646}, - {47: 3647, 505: 3313, 509: 3311, 3312, 3310, 3308, 733: 3309, 3307}, - {1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 474: 1161, 1161, 1161, 1161, 1161, 480: 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 491: 1161, 493: 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 502: 1161, 1161, 1161, 1161, 509: 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 544: 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 585: 1161}, + {7: 3650, 47: 3649, 505: 3318, 509: 3316, 3317, 3315, 3313, 733: 3314, 3312}, + {1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 474: 1167, 1167, 1167, 1167, 1167, 480: 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 491: 1167, 493: 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 502: 1167, 1167, 1167, 1167, 509: 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 544: 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 585: 1167}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 2729, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 3651}, + {47: 3652, 505: 3318, 509: 3316, 3317, 3315, 3313, 733: 3314, 3312}, + {1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 474: 1165, 1165, 1165, 1165, 1165, 480: 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 491: 1165, 493: 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 502: 1165, 1165, 1165, 1165, 509: 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 544: 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 585: 1165}, // 1140 - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 3317, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 3649}, - {485: 3654, 3655, 3660, 523: 3656, 544: 3662, 556: 3657, 3658, 3651, 3661, 3650, 3659, 3652, 3653}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 3317, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 3684}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 3317, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 3683}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 3317, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 3682}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 3322, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 3654}, + {485: 3659, 3660, 3665, 523: 3661, 544: 3667, 556: 3662, 3663, 3656, 3666, 3655, 3664, 3657, 3658}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 3322, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 3689}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 3322, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 3688}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 3322, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 3687}, // 1145 - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 3317, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 3681}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 3317, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3678, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 3677}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 3317, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3672, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 3671}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 3317, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 3670}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 3317, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 3669}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 3322, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 3686}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 3322, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3683, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 3682}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 3322, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3677, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 3676}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 3322, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 3675}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 3322, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 3674}, // 1150 - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 3317, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 3668}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 3317, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 3667}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 3317, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 3666}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 3317, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 3665}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 2724, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 3663}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 3322, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 3673}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 3322, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 3672}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 3322, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 3671}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 3322, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 3670}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 2729, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 3668}, // 1155 - {47: 3664, 505: 3313, 509: 3311, 3312, 3310, 3308, 733: 3309, 3307}, - {1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 474: 1164, 1164, 1164, 1164, 1164, 480: 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 491: 1164, 493: 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 502: 1164, 1164, 1164, 1164, 509: 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 544: 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 585: 1164}, - {1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 474: 1271, 1271, 1271, 1271, 1271, 480: 1271, 1271, 483: 1271, 1271, 1271, 1271, 1271, 1271, 1271, 491: 1271, 493: 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 502: 1271, 1271, 1271, 1271, 509: 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 544: 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271}, - {1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 474: 1272, 1272, 1272, 1272, 1272, 480: 1272, 1272, 483: 1272, 1272, 1272, 1272, 1272, 1272, 1272, 491: 1272, 493: 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 502: 1272, 1272, 1272, 1272, 509: 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 544: 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 3661, 1272, 1272, 1272, 1272, 1272, 1272}, - {1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 474: 1273, 1273, 1273, 1273, 1273, 480: 1273, 1273, 483: 1273, 1273, 1273, 1273, 1273, 1273, 1273, 491: 1273, 493: 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 502: 1273, 1273, 1273, 1273, 509: 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 544: 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 3661, 1273, 1273, 1273, 1273, 1273, 1273}, + {47: 3669, 505: 3318, 509: 3316, 3317, 3315, 3313, 733: 3314, 3312}, + {1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 474: 1168, 1168, 1168, 1168, 1168, 480: 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 491: 1168, 493: 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 502: 1168, 1168, 1168, 1168, 509: 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 544: 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 585: 1168}, + {1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 474: 1275, 1275, 1275, 1275, 1275, 480: 1275, 1275, 483: 1275, 1275, 1275, 1275, 1275, 1275, 1275, 491: 1275, 493: 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 502: 1275, 1275, 1275, 1275, 509: 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 544: 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275}, + {1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 474: 1276, 1276, 1276, 1276, 1276, 480: 1276, 1276, 483: 1276, 1276, 1276, 1276, 1276, 1276, 1276, 491: 1276, 493: 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 502: 1276, 1276, 1276, 1276, 509: 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 544: 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 3666, 1276, 1276, 1276, 1276, 1276, 1276}, + {1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 474: 1277, 1277, 1277, 1277, 1277, 480: 1277, 1277, 483: 1277, 1277, 1277, 1277, 1277, 1277, 1277, 491: 1277, 493: 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 502: 1277, 1277, 1277, 1277, 509: 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 544: 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 3666, 1277, 1277, 1277, 1277, 1277, 1277}, // 1160 - {1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 474: 1274, 1274, 1274, 1274, 1274, 480: 1274, 1274, 483: 1274, 1274, 1274, 1274, 1274, 1274, 1274, 491: 1274, 493: 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 502: 1274, 1274, 1274, 1274, 509: 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 544: 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 3661, 1274, 1274, 1274, 1274, 1274, 1274}, - {1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 474: 1275, 1275, 1275, 1275, 1275, 480: 1275, 1275, 483: 1275, 1275, 1275, 1275, 1275, 1275, 1275, 491: 1275, 493: 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 502: 1275, 1275, 1275, 1275, 509: 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 544: 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 3661, 1275, 1275, 1275, 1275, 1275, 1275}, - {1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 474: 1276, 1276, 1276, 1276, 1276, 480: 1276, 1276, 483: 1276, 1276, 1276, 1276, 1276, 1276, 1276, 491: 1276, 493: 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 502: 1276, 1276, 1276, 1276, 509: 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 544: 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 3661, 1276, 1276, 1276, 1276, 1276, 1276}, - {1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 474: 1280, 1280, 1280, 1280, 1280, 480: 1280, 1280, 483: 1280, 1280, 1280, 1280, 3660, 1280, 1280, 491: 1280, 493: 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 502: 1280, 1280, 1280, 1280, 509: 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 3656, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 544: 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 3657, 3658, 1280, 3661, 1280, 3659, 1280, 1280, 1280, 1280}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 1216, 475: 3208, 3227, 2724, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 3673}, + {1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 474: 1278, 1278, 1278, 1278, 1278, 480: 1278, 1278, 483: 1278, 1278, 1278, 1278, 1278, 1278, 1278, 491: 1278, 493: 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 502: 1278, 1278, 1278, 1278, 509: 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 544: 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 3666, 1278, 1278, 1278, 1278, 1278, 1278}, + {1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 474: 1279, 1279, 1279, 1279, 1279, 480: 1279, 1279, 483: 1279, 1279, 1279, 1279, 1279, 1279, 1279, 491: 1279, 493: 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 502: 1279, 1279, 1279, 1279, 509: 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 544: 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 3666, 1279, 1279, 1279, 1279, 1279, 1279}, + {1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 474: 1280, 1280, 1280, 1280, 1280, 480: 1280, 1280, 483: 1280, 1280, 1280, 1280, 1280, 1280, 1280, 491: 1280, 493: 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 502: 1280, 1280, 1280, 1280, 509: 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 544: 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 3666, 1280, 1280, 1280, 1280, 1280, 1280}, + {1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 474: 1284, 1284, 1284, 1284, 1284, 480: 1284, 1284, 483: 1284, 1284, 1284, 1284, 3665, 1284, 1284, 491: 1284, 493: 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 502: 1284, 1284, 1284, 1284, 509: 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 3661, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 544: 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 3662, 3663, 1284, 3666, 1284, 3664, 1284, 1284, 1284, 1284}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 1220, 475: 3213, 3232, 2729, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 3678}, // 1165 - {101: 3432, 104: 3428, 108: 3425, 3440, 3427, 3424, 3426, 3430, 3431, 3436, 3435, 3434, 3438, 3439, 3433, 3437, 123: 3429, 505: 3313, 509: 3311, 3312, 3310, 3308, 531: 3422, 3419, 3421, 3420, 3416, 3418, 3417, 3414, 3415, 3413, 3423, 733: 3309, 3307, 802: 3412, 821: 3674}, - {1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 474: 1278, 1278, 1278, 1278, 1278, 480: 1278, 1278, 483: 1278, 1278, 1278, 1278, 1278, 1278, 1278, 491: 1278, 493: 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 502: 1278, 1278, 1278, 1278, 509: 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 544: 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 3317, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 3676}, - {1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 474: 1277, 1277, 1277, 1277, 1277, 480: 1277, 1277, 483: 1277, 1277, 1277, 1277, 3660, 1277, 1277, 491: 1277, 493: 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 502: 1277, 1277, 1277, 1277, 509: 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 3656, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 544: 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 3657, 3658, 1277, 3661, 1277, 3659, 1277, 1277, 1277, 1277}, - {1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 474: 1281, 1281, 1281, 1281, 1281, 480: 1281, 1281, 483: 1281, 1281, 1281, 1281, 3660, 1281, 1281, 491: 1281, 493: 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 502: 1281, 1281, 1281, 1281, 509: 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 3656, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 544: 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 3657, 3658, 1281, 3661, 1281, 3659, 1281, 1281, 1281, 1281}, + {101: 3437, 104: 3433, 108: 3430, 3445, 3432, 3429, 3431, 3435, 3436, 3441, 3440, 3439, 3443, 3444, 3438, 3442, 123: 3434, 505: 3318, 509: 3316, 3317, 3315, 3313, 531: 3427, 3424, 3426, 3425, 3421, 3423, 3422, 3419, 3420, 3418, 3428, 733: 3314, 3312, 802: 3417, 821: 3679}, + {1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 474: 1282, 1282, 1282, 1282, 1282, 480: 1282, 1282, 483: 1282, 1282, 1282, 1282, 1282, 1282, 1282, 491: 1282, 493: 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 502: 1282, 1282, 1282, 1282, 509: 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 544: 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 3322, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 3681}, + {1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 474: 1281, 1281, 1281, 1281, 1281, 480: 1281, 1281, 483: 1281, 1281, 1281, 1281, 3665, 1281, 1281, 491: 1281, 493: 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 502: 1281, 1281, 1281, 1281, 509: 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 3661, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 544: 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 3662, 3663, 1281, 3666, 1281, 3664, 1281, 1281, 1281, 1281}, + {1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 474: 1285, 1285, 1285, 1285, 1285, 480: 1285, 1285, 483: 1285, 1285, 1285, 1285, 3665, 1285, 1285, 491: 1285, 493: 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 502: 1285, 1285, 1285, 1285, 509: 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 3661, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 544: 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 3662, 3663, 1285, 3666, 1285, 3664, 1285, 1285, 1285, 1285}, // 1170 - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 1216, 475: 3208, 3227, 2724, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 3679}, - {101: 3432, 104: 3428, 108: 3425, 3440, 3427, 3424, 3426, 3430, 3431, 3436, 3435, 3434, 3438, 3439, 3433, 3437, 123: 3429, 505: 3313, 509: 3311, 3312, 3310, 3308, 531: 3422, 3419, 3421, 3420, 3416, 3418, 3417, 3414, 3415, 3413, 3423, 733: 3309, 3307, 802: 3412, 821: 3680}, - {1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 474: 1279, 1279, 1279, 1279, 1279, 480: 1279, 1279, 483: 1279, 1279, 1279, 1279, 1279, 1279, 1279, 491: 1279, 493: 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 502: 1279, 1279, 1279, 1279, 509: 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 544: 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279}, - {1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 474: 1282, 1282, 1282, 1282, 1282, 480: 1282, 1282, 483: 1282, 1282, 3654, 3655, 3660, 1282, 1282, 491: 1282, 493: 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 502: 1282, 1282, 1282, 1282, 509: 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 3656, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 544: 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 3657, 3658, 1282, 3661, 1282, 3659, 1282, 1282, 1282, 1282}, - {1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 474: 1283, 1283, 1283, 1283, 1283, 480: 1283, 1283, 483: 1283, 1283, 3654, 3655, 3660, 1283, 1283, 491: 1283, 493: 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 502: 1283, 1283, 1283, 1283, 509: 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 3656, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 544: 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 3657, 3658, 1283, 3661, 1283, 3659, 1283, 1283, 1283, 1283}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 1220, 475: 3213, 3232, 2729, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 3684}, + {101: 3437, 104: 3433, 108: 3430, 3445, 3432, 3429, 3431, 3435, 3436, 3441, 3440, 3439, 3443, 3444, 3438, 3442, 123: 3434, 505: 3318, 509: 3316, 3317, 3315, 3313, 531: 3427, 3424, 3426, 3425, 3421, 3423, 3422, 3419, 3420, 3418, 3428, 733: 3314, 3312, 802: 3417, 821: 3685}, + {1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 474: 1283, 1283, 1283, 1283, 1283, 480: 1283, 1283, 483: 1283, 1283, 1283, 1283, 1283, 1283, 1283, 491: 1283, 493: 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 502: 1283, 1283, 1283, 1283, 509: 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 544: 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283}, + {1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 474: 1286, 1286, 1286, 1286, 1286, 480: 1286, 1286, 483: 1286, 1286, 3659, 3660, 3665, 1286, 1286, 491: 1286, 493: 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 502: 1286, 1286, 1286, 1286, 509: 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 3661, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 544: 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 3662, 3663, 1286, 3666, 1286, 3664, 1286, 1286, 1286, 1286}, + {1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 474: 1287, 1287, 1287, 1287, 1287, 480: 1287, 1287, 483: 1287, 1287, 3659, 3660, 3665, 1287, 1287, 491: 1287, 493: 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 502: 1287, 1287, 1287, 1287, 509: 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 3661, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 544: 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 3662, 3663, 1287, 3666, 1287, 3664, 1287, 1287, 1287, 1287}, // 1175 - {1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 474: 1284, 1284, 1284, 1284, 1284, 480: 1284, 1284, 483: 1284, 1284, 3654, 3655, 3660, 1284, 1284, 491: 1284, 493: 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 502: 1284, 1284, 1284, 1284, 509: 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 3656, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 544: 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 3657, 3658, 1284, 3661, 1284, 3659, 3652, 3653, 1284, 1284}, - {1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 474: 1285, 1285, 1285, 1285, 1285, 480: 1285, 1285, 483: 1285, 1285, 3654, 3655, 3660, 1285, 1285, 491: 1285, 493: 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 502: 1285, 1285, 1285, 1285, 509: 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 3656, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 544: 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 3657, 3658, 3651, 3661, 1285, 3659, 3652, 3653, 1285, 1285}, - {101: 3432, 104: 3428, 108: 3425, 3440, 3427, 3424, 3426, 3430, 3431, 3436, 3435, 3434, 3438, 3439, 3433, 3437, 123: 3429, 531: 3422, 3419, 3421, 3420, 3416, 3418, 3417, 3414, 3415, 3413, 3423, 802: 3412, 821: 3686}, - {499: 3687}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 2724, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 3688}, + {1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 474: 1288, 1288, 1288, 1288, 1288, 480: 1288, 1288, 483: 1288, 1288, 3659, 3660, 3665, 1288, 1288, 491: 1288, 493: 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 502: 1288, 1288, 1288, 1288, 509: 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 3661, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 544: 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 3662, 3663, 1288, 3666, 1288, 3664, 3657, 3658, 1288, 1288}, + {1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 474: 1289, 1289, 1289, 1289, 1289, 480: 1289, 1289, 483: 1289, 1289, 3659, 3660, 3665, 1289, 1289, 491: 1289, 493: 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 502: 1289, 1289, 1289, 1289, 509: 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 3661, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 544: 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 3662, 3663, 3656, 3666, 1289, 3664, 3657, 3658, 1289, 1289}, + {101: 3437, 104: 3433, 108: 3430, 3445, 3432, 3429, 3431, 3435, 3436, 3441, 3440, 3439, 3443, 3444, 3438, 3442, 123: 3434, 531: 3427, 3424, 3426, 3425, 3421, 3423, 3422, 3419, 3420, 3418, 3428, 802: 3417, 821: 3691}, + {499: 3692}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 2729, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 3693}, // 1180 - {47: 3689, 505: 3313, 509: 3311, 3312, 3310, 3308, 733: 3309, 3307}, - {1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 474: 1166, 1166, 1166, 1166, 1166, 480: 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 491: 1166, 493: 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 502: 1166, 1166, 1166, 1166, 509: 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 544: 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 585: 1166}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 2724, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 3691}, - {7: 3692, 505: 3313, 509: 3311, 3312, 3310, 3308, 733: 3309, 3307}, - {581: 3693}, + {47: 3694, 505: 3318, 509: 3316, 3317, 3315, 3313, 733: 3314, 3312}, + {1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 474: 1170, 1170, 1170, 1170, 1170, 480: 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 491: 1170, 493: 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 502: 1170, 1170, 1170, 1170, 509: 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 544: 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 585: 1170}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 2729, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 3696}, + {7: 3697, 505: 3318, 509: 3316, 3317, 3315, 3313, 733: 3314, 3312}, + {581: 3698}, // 1185 - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 2724, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 3694}, - {101: 3432, 104: 3428, 108: 3425, 3440, 3427, 3424, 3426, 3430, 3431, 3436, 3435, 3434, 3438, 3439, 3433, 3437, 123: 3429, 505: 3313, 509: 3311, 3312, 3310, 3308, 531: 3422, 3419, 3421, 3420, 3416, 3418, 3417, 3414, 3415, 3413, 3423, 733: 3309, 3307, 802: 3412, 821: 3695}, - {47: 3696}, - {1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 474: 1167, 1167, 1167, 1167, 1167, 480: 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 491: 1167, 493: 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 502: 1167, 1167, 1167, 1167, 509: 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 544: 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 585: 1167}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 2724, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 3698}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 2729, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 3699}, + {101: 3437, 104: 3433, 108: 3430, 3445, 3432, 3429, 3431, 3435, 3436, 3441, 3440, 3439, 3443, 3444, 3438, 3442, 123: 3434, 505: 3318, 509: 3316, 3317, 3315, 3313, 531: 3427, 3424, 3426, 3425, 3421, 3423, 3422, 3419, 3420, 3418, 3428, 733: 3314, 3312, 802: 3417, 821: 3700}, + {47: 3701}, + {1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 474: 1171, 1171, 1171, 1171, 1171, 480: 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 491: 1171, 493: 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 502: 1171, 1171, 1171, 1171, 509: 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 544: 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 585: 1171}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 2729, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 3703}, // 1190 - {7: 3699, 505: 3313, 509: 3311, 3312, 3310, 3308, 733: 3309, 3307}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 2724, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3701, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 3700}, - {47: 3705, 505: 3313, 509: 3311, 3312, 3310, 3308, 733: 3309, 3307}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 1216, 475: 3208, 3227, 2724, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 3702}, - {101: 3432, 104: 3428, 108: 3425, 3440, 3427, 3424, 3426, 3430, 3431, 3436, 3435, 3434, 3438, 3439, 3433, 3437, 123: 3429, 505: 3313, 509: 3311, 3312, 3310, 3308, 531: 3422, 3419, 3421, 3420, 3416, 3418, 3417, 3414, 3415, 3413, 3423, 733: 3309, 3307, 802: 3412, 821: 3703}, + {7: 3704, 505: 3318, 509: 3316, 3317, 3315, 3313, 733: 3314, 3312}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 2729, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3706, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 3705}, + {47: 3710, 505: 3318, 509: 3316, 3317, 3315, 3313, 733: 3314, 3312}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 1220, 475: 3213, 3232, 2729, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 3707}, + {101: 3437, 104: 3433, 108: 3430, 3445, 3432, 3429, 3431, 3435, 3436, 3441, 3440, 3439, 3443, 3444, 3438, 3442, 123: 3434, 505: 3318, 509: 3316, 3317, 3315, 3313, 531: 3427, 3424, 3426, 3425, 3421, 3423, 3422, 3419, 3420, 3418, 3428, 733: 3314, 3312, 802: 3417, 821: 3708}, // 1195 - {47: 3704, 485: 3675}, - {1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 474: 1168, 1168, 1168, 1168, 1168, 480: 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 491: 1168, 493: 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 502: 1168, 1168, 1168, 1168, 509: 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 544: 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 585: 1168}, - {1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 474: 1169, 1169, 1169, 1169, 1169, 480: 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 491: 1169, 493: 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 502: 1169, 1169, 1169, 1169, 509: 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 544: 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 585: 1169}, - {47: 1907, 508: 3708, 1050: 3707, 3709}, - {47: 1906}, + {47: 3709, 485: 3680}, + {1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 474: 1172, 1172, 1172, 1172, 1172, 480: 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 491: 1172, 493: 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 502: 1172, 1172, 1172, 1172, 509: 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 544: 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 585: 1172}, + {1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 474: 1173, 1173, 1173, 1173, 1173, 480: 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 491: 1173, 493: 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 502: 1173, 1173, 1173, 1173, 509: 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 544: 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 585: 1173}, + {47: 1911, 508: 3713, 1050: 3712, 3714}, + {47: 1910}, // 1200 - {47: 1905}, - {47: 3710}, - {1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 474: 1170, 1170, 1170, 1170, 1170, 480: 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 491: 1170, 493: 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 502: 1170, 1170, 1170, 1170, 509: 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 544: 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 585: 1170}, - {47: 1907, 508: 3708, 1050: 3707, 3712}, - {47: 3713}, + {47: 1909}, + {47: 3715}, + {1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 474: 1174, 1174, 1174, 1174, 1174, 480: 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 491: 1174, 493: 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 502: 1174, 1174, 1174, 1174, 509: 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 544: 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 585: 1174}, + {47: 1911, 508: 3713, 1050: 3712, 3717}, + {47: 3718}, // 1205 - {1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 474: 1171, 1171, 1171, 1171, 1171, 480: 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 491: 1171, 493: 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 502: 1171, 1171, 1171, 1171, 509: 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 544: 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 585: 1171}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 3317, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 3715}, - {7: 3716, 485: 3654, 3655, 3660, 523: 3656, 556: 3657, 3658, 3651, 3661, 3650, 3659, 3652, 3653}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 3317, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 3717}, - {47: 3718, 485: 3654, 3655, 3660, 523: 3656, 556: 3657, 3658, 3651, 3661, 3650, 3659, 3652, 3653}, + {1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 474: 1175, 1175, 1175, 1175, 1175, 480: 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 491: 1175, 493: 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 502: 1175, 1175, 1175, 1175, 509: 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 544: 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 585: 1175}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 3322, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 3720}, + {7: 3721, 485: 3659, 3660, 3665, 523: 3661, 556: 3662, 3663, 3656, 3666, 3655, 3664, 3657, 3658}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 3322, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 3722}, + {47: 3723, 485: 3659, 3660, 3665, 523: 3661, 556: 3662, 3663, 3656, 3666, 3655, 3664, 3657, 3658}, // 1210 - {1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 474: 1173, 1173, 1173, 1173, 1173, 480: 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 491: 1173, 493: 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 502: 1173, 1173, 1173, 1173, 509: 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 544: 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 585: 1173}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 1909, 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 2724, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 3556, 777: 3720, 825: 3721}, - {7: 3558, 47: 1908}, - {47: 3722}, - {1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 474: 1174, 1174, 1174, 1174, 1174, 480: 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 491: 1174, 493: 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 502: 1174, 1174, 1174, 1174, 509: 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 544: 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 585: 1174}, + {1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 474: 1177, 1177, 1177, 1177, 1177, 480: 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 491: 1177, 493: 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 502: 1177, 1177, 1177, 1177, 509: 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 544: 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 585: 1177}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 1913, 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 2729, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 3561, 777: 3725, 825: 3726}, + {7: 3563, 47: 1912}, + {47: 3727}, + {1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 474: 1178, 1178, 1178, 1178, 1178, 480: 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 491: 1178, 493: 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 502: 1178, 1178, 1178, 1178, 509: 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 544: 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 585: 1178}, // 1215 - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 2724, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 3556, 777: 3724}, - {7: 3558, 47: 3725, 481: 3726}, - {1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 474: 1179, 1179, 1179, 1179, 1179, 480: 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 491: 1179, 493: 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 502: 1179, 1179, 1179, 1179, 509: 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 544: 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 585: 1179}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 475: 3458, 543: 3729, 663: 3459, 2731, 2732, 2730, 737: 3728, 806: 3727}, - {47: 3730}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 2729, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 3561, 777: 3729}, + {7: 3563, 47: 3730, 481: 3731}, + {1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 474: 1183, 1183, 1183, 1183, 1183, 480: 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 491: 1183, 493: 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 502: 1183, 1183, 1183, 1183, 509: 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 544: 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 585: 1183}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 475: 3463, 543: 3734, 663: 3464, 2736, 2737, 2735, 737: 3733, 806: 3732}, + {47: 3735}, // 1220 - {748, 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, 47: 748, 98: 748, 107: 748, 472: 748, 748, 748, 476: 748, 748, 748, 748, 748, 482: 748, 490: 748, 748, 748, 501: 748, 503: 748, 748, 506: 748, 748, 543: 748, 569: 748, 573: 748, 582: 748, 586: 748, 638: 748, 642: 748, 748, 748, 748, 748, 648: 748, 657: 748}, - {747, 747, 747, 747, 747, 747, 747, 747, 747, 747, 747, 747, 747, 747, 747, 747, 747, 747, 747, 747, 747, 747, 747, 747, 747, 747, 747, 747, 747, 747, 747, 747, 747, 747, 747, 747, 747, 747, 747, 747, 747, 747, 747, 747, 747, 747, 47: 747, 98: 747, 107: 747, 472: 747, 747, 747, 476: 747, 747, 747, 747, 747, 482: 747, 490: 747, 747, 747, 501: 747, 503: 747, 747, 506: 747, 747, 543: 747, 569: 747, 573: 747, 582: 747, 586: 747, 638: 747, 642: 747, 747, 747, 747, 747, 648: 747, 657: 747}, - {1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 474: 1178, 1178, 1178, 1178, 1178, 480: 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 491: 1178, 493: 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 502: 1178, 1178, 1178, 1178, 509: 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 544: 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 585: 1178}, - {1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 474: 1180, 1180, 1180, 1180, 1180, 480: 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 491: 1180, 493: 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 502: 1180, 1180, 1180, 1180, 509: 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 544: 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 585: 1180}, - {47: 3733, 508: 3734}, + {752, 752, 752, 752, 752, 752, 752, 752, 752, 752, 752, 752, 752, 752, 752, 752, 752, 752, 752, 752, 752, 752, 752, 752, 752, 752, 752, 752, 752, 752, 752, 752, 752, 752, 752, 752, 752, 752, 752, 752, 752, 752, 752, 752, 752, 752, 47: 752, 98: 752, 107: 752, 472: 752, 752, 752, 476: 752, 752, 752, 752, 752, 482: 752, 490: 752, 752, 752, 501: 752, 503: 752, 752, 506: 752, 752, 543: 752, 569: 752, 573: 752, 582: 752, 586: 752, 638: 752, 642: 752, 752, 752, 752, 752, 648: 752, 657: 752}, + {751, 751, 751, 751, 751, 751, 751, 751, 751, 751, 751, 751, 751, 751, 751, 751, 751, 751, 751, 751, 751, 751, 751, 751, 751, 751, 751, 751, 751, 751, 751, 751, 751, 751, 751, 751, 751, 751, 751, 751, 751, 751, 751, 751, 751, 751, 47: 751, 98: 751, 107: 751, 472: 751, 751, 751, 476: 751, 751, 751, 751, 751, 482: 751, 490: 751, 751, 751, 501: 751, 503: 751, 751, 506: 751, 751, 543: 751, 569: 751, 573: 751, 582: 751, 586: 751, 638: 751, 642: 751, 751, 751, 751, 751, 648: 751, 657: 751}, + {1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 474: 1182, 1182, 1182, 1182, 1182, 480: 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 491: 1182, 493: 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 502: 1182, 1182, 1182, 1182, 509: 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 544: 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 585: 1182}, + {1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 474: 1184, 1184, 1184, 1184, 1184, 480: 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 491: 1184, 493: 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 502: 1184, 1184, 1184, 1184, 509: 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 544: 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 585: 1184}, + {47: 3738, 508: 3739}, // 1225 - {1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 474: 1102, 1102, 1102, 1102, 1102, 480: 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 491: 1102, 493: 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 502: 1102, 1102, 1102, 1102, 509: 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 544: 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 585: 1102}, - {47: 3735}, - {1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 474: 1101, 1101, 1101, 1101, 1101, 480: 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 491: 1101, 493: 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 502: 1101, 1101, 1101, 1101, 509: 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 544: 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 585: 1101}, - {47: 3737}, - {1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 474: 1181, 1181, 1181, 1181, 1181, 480: 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 491: 1181, 493: 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 502: 1181, 1181, 1181, 1181, 509: 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 544: 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 585: 1181}, - // 1230 + {1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 474: 1106, 1106, 1106, 1106, 1106, 480: 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 491: 1106, 493: 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 502: 1106, 1106, 1106, 1106, 509: 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 544: 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 585: 1106}, {47: 3740}, - {1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 474: 1182, 1182, 1182, 1182, 1182, 480: 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 491: 1182, 493: 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 502: 1182, 1182, 1182, 1182, 509: 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 544: 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 585: 1182}, - {1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 474: 1195, 1195, 1195, 1195, 1195, 480: 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 491: 1195, 493: 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 502: 1195, 1195, 1195, 1195, 509: 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 544: 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 585: 1195, 649: 1195, 661: 1195, 667: 1195}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 1909, 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 2724, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 3556, 777: 3720, 825: 3742}, - {47: 3743}, + {1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 474: 1105, 1105, 1105, 1105, 1105, 480: 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 491: 1105, 493: 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 502: 1105, 1105, 1105, 1105, 509: 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 544: 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 585: 1105}, + {47: 3742}, + {1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 474: 1185, 1185, 1185, 1185, 1185, 480: 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 491: 1185, 493: 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 502: 1185, 1185, 1185, 1185, 509: 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 544: 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 585: 1185}, + // 1230 + {47: 3745}, + {1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 474: 1186, 1186, 1186, 1186, 1186, 480: 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 491: 1186, 493: 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 502: 1186, 1186, 1186, 1186, 509: 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 544: 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 585: 1186}, + {1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 474: 1199, 1199, 1199, 1199, 1199, 480: 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 491: 1199, 493: 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 502: 1199, 1199, 1199, 1199, 509: 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 544: 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 585: 1199, 649: 1199, 661: 1199, 667: 1199}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 1913, 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 2729, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 3561, 777: 3725, 825: 3747}, + {47: 3748}, // 1235 - {1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 474: 1183, 1183, 1183, 1183, 1183, 480: 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 491: 1183, 493: 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 502: 1183, 1183, 1183, 1183, 509: 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 544: 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 585: 1183}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 1909, 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 2724, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 3556, 777: 3720, 825: 3745}, - {47: 3746}, - {1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 474: 1184, 1184, 1184, 1184, 1184, 480: 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 491: 1184, 493: 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 502: 1184, 1184, 1184, 1184, 509: 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 544: 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 585: 1184}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 3748, 2731, 2732, 2730, 710: 3749}, + {1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 474: 1187, 1187, 1187, 1187, 1187, 480: 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 491: 1187, 493: 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 502: 1187, 1187, 1187, 1187, 509: 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 544: 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 585: 1187}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 1913, 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 2729, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 3561, 777: 3725, 825: 3750}, + {47: 3751}, + {1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 474: 1188, 1188, 1188, 1188, 1188, 480: 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 491: 1188, 493: 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 502: 1188, 1188, 1188, 1188, 509: 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 544: 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 585: 1188}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 3753, 2736, 2737, 2735, 710: 3754}, // 1240 - {47: 1269, 498: 1269, 651: 3751}, - {47: 3750}, - {1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 474: 1238, 1238, 1238, 1238, 1238, 480: 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 491: 1238, 493: 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 502: 1238, 1238, 1238, 1238, 509: 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 544: 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 585: 1238}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 3752, 2731, 2732, 2730}, - {47: 1268, 498: 1268, 651: 3753}, + {47: 1273, 498: 1273, 651: 3756}, + {47: 3755}, + {1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 474: 1242, 1242, 1242, 1242, 1242, 480: 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 491: 1242, 493: 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 502: 1242, 1242, 1242, 1242, 509: 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 544: 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 585: 1242}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 3757, 2736, 2737, 2735}, + {47: 1272, 498: 1272, 651: 3758}, // 1245 - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 3754, 2731, 2732, 2730}, - {1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 474: 1267, 1267, 1267, 1267, 1267, 480: 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 491: 1267, 493: 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 502: 1267, 1267, 1267, 1267, 509: 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 544: 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 585: 1267, 654: 1267, 1267}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 3748, 2731, 2732, 2730, 710: 3756}, - {47: 3757}, - {1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 474: 1239, 1239, 1239, 1239, 1239, 480: 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 491: 1239, 493: 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 502: 1239, 1239, 1239, 1239, 509: 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 544: 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 585: 1239}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 3759, 2736, 2737, 2735}, + {1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 474: 1271, 1271, 1271, 1271, 1271, 480: 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 491: 1271, 493: 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 502: 1271, 1271, 1271, 1271, 509: 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 544: 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 585: 1271, 654: 1271, 1271}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 3753, 2736, 2737, 2735, 710: 3761}, + {47: 3762}, + {1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 474: 1243, 1243, 1243, 1243, 1243, 480: 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 491: 1243, 493: 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 502: 1243, 1243, 1243, 1243, 509: 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 544: 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 585: 1243}, // 1250 - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 2724, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 3759}, - {7: 3760, 481: 3761, 505: 3313, 509: 3311, 3312, 3310, 3308, 733: 3309, 3307}, - {49: 3772, 101: 3768, 165: 3774, 173: 3769, 3767, 193: 3771, 506: 3779, 543: 3765, 646: 3778, 679: 3770, 3775, 3776, 684: 3777, 739: 3773, 899: 3766, 997: 3764}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 475: 3458, 543: 3729, 663: 3459, 2731, 2732, 2730, 737: 3728, 806: 3762}, - {47: 3763}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 2729, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 3764}, + {7: 3765, 481: 3766, 505: 3318, 509: 3316, 3317, 3315, 3313, 733: 3314, 3312}, + {49: 3777, 101: 3773, 166: 3779, 173: 3774, 3772, 193: 3776, 506: 3784, 543: 3770, 646: 3783, 679: 3775, 3780, 3781, 684: 3782, 739: 3778, 899: 3771, 997: 3769}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 475: 3463, 543: 3734, 663: 3464, 2736, 2737, 2735, 737: 3733, 806: 3767}, + {47: 3768}, // 1255 - {1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 474: 1240, 1240, 1240, 1240, 1240, 480: 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 491: 1240, 493: 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 502: 1240, 1240, 1240, 1240, 509: 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 544: 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 585: 1240}, - {47: 3815}, - {47: 286, 473: 3794, 762: 3795, 785: 3814}, - {14: 286, 47: 286, 473: 3794, 506: 286, 543: 286, 646: 286, 762: 3795, 785: 3799}, - {47: 1062}, + {1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 474: 1244, 1244, 1244, 1244, 1244, 480: 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 491: 1244, 493: 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 502: 1244, 1244, 1244, 1244, 509: 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 544: 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 585: 1244}, + {47: 3820}, + {47: 286, 473: 3799, 762: 3800, 785: 3819}, + {14: 286, 47: 286, 473: 3799, 506: 286, 543: 286, 646: 286, 762: 3800, 785: 3804}, + {47: 1066}, // 1260 - {47: 1061}, - {47: 286, 473: 3794, 762: 3795, 785: 3798}, - {47: 279, 473: 3781, 762: 3782, 902: 3797, 907: 3783}, - {47: 286, 473: 3794, 762: 3795, 785: 3793}, - {47: 350, 682: 3790, 3791, 1089: 3792}, + {47: 1065}, + {47: 286, 473: 3799, 762: 3800, 785: 3803}, + {47: 279, 473: 3786, 762: 3787, 902: 3802, 907: 3788}, + {47: 286, 473: 3799, 762: 3800, 785: 3798}, + {47: 350, 682: 3795, 3796, 1089: 3797}, // 1265 - {47: 350, 682: 3790, 3791, 1089: 3789}, - {47: 1055}, - {47: 1054}, - {47: 279, 473: 3781, 762: 3782, 902: 3780, 907: 3783}, - {47: 1052}, + {47: 350, 682: 3795, 3796, 1089: 3794}, + {47: 1059}, + {47: 1058}, + {47: 279, 473: 3786, 762: 3787, 902: 3785, 907: 3788}, + {47: 1056}, // 1270 {14: 324, 47: 324, 473: 324, 506: 324, 543: 324, 646: 324}, {14: 323, 47: 323, 473: 323, 506: 323, 543: 323, 646: 323}, - {47: 1053}, - {508: 2705, 732: 2704, 743: 3784}, + {47: 1057}, + {508: 2710, 732: 2709, 742: 3789}, {278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 47: 278, 49: 278, 472: 278, 476: 278, 278, 278, 278, 482: 278, 490: 278, 492: 278, 573: 278, 582: 278, 586: 278, 638: 278, 642: 278, 278, 278, 739: 278, 741: 278}, // 1275 {277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 47: 277, 49: 277, 472: 277, 476: 277, 277, 277, 277, 482: 277, 490: 277, 492: 277, 573: 277, 582: 277, 586: 277, 638: 277, 642: 277, 277, 277, 739: 277, 741: 277}, - {7: 3786, 47: 3785}, + {7: 3791, 47: 3790}, {287, 287, 287, 287, 287, 287, 287, 287, 287, 287, 287, 287, 287, 14: 287, 47: 287, 49: 287, 102: 287, 287, 106: 287, 472: 287, 476: 287, 287, 287, 287, 482: 287, 490: 287, 492: 287, 506: 287, 529: 287, 287, 543: 287, 573: 287, 582: 287, 586: 287, 638: 287, 642: 287, 287, 287, 646: 287, 739: 287, 741: 287}, - {508: 2705, 732: 2704, 743: 3787}, - {47: 3788}, + {508: 2710, 732: 2709, 742: 3792}, + {47: 3793}, // 1280 {276, 276, 276, 276, 276, 276, 276, 276, 276, 276, 276, 276, 276, 47: 276, 49: 276, 472: 276, 476: 276, 276, 276, 276, 482: 276, 490: 276, 492: 276, 573: 276, 582: 276, 586: 276, 638: 276, 642: 276, 276, 276, 739: 276, 741: 276}, - {47: 1056}, + {47: 1060}, {47: 349}, {47: 348}, - {47: 1057}, + {47: 1061}, // 1285 - {47: 1058}, - {508: 2705, 732: 2704, 743: 3796}, + {47: 1062}, + {508: 2710, 732: 2709, 742: 3801}, {285, 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, 14: 285, 47: 285, 49: 285, 102: 285, 285, 106: 285, 472: 285, 476: 285, 285, 285, 285, 482: 285, 490: 285, 492: 285, 506: 285, 529: 285, 285, 543: 285, 573: 285, 582: 285, 586: 285, 638: 285, 642: 285, 285, 285, 646: 285, 739: 285, 741: 285}, - {47: 3785}, - {47: 1059}, - // 1290 - {47: 1060}, - {14: 3804, 47: 273, 506: 3805, 543: 3801, 646: 3803, 772: 3802, 797: 3800}, + {47: 3790}, {47: 1063}, - {270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 14: 3804, 47: 270, 472: 270, 476: 270, 270, 270, 270, 482: 270, 490: 270, 492: 270, 506: 3805, 573: 270, 582: 270, 586: 270, 638: 270, 642: 270, 270, 270, 646: 3803, 772: 3812, 1253: 3811}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 475: 3458, 543: 3729, 663: 3459, 2731, 2732, 2730, 737: 3728, 806: 3808}, + // 1290 + {47: 1064}, + {14: 3809, 47: 273, 506: 3810, 543: 3806, 646: 3808, 772: 3807, 797: 3805}, + {47: 1067}, + {270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 14: 3809, 47: 270, 472: 270, 476: 270, 270, 270, 270, 482: 270, 490: 270, 492: 270, 506: 3810, 573: 270, 582: 270, 586: 270, 638: 270, 642: 270, 270, 270, 646: 3808, 772: 3817, 1254: 3816}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 475: 3463, 543: 3734, 663: 3464, 2736, 2737, 2735, 737: 3733, 806: 3813}, // 1295 - {504: 3807}, + {504: 3812}, {267, 267, 267, 267, 267, 267, 267, 8: 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 48: 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 475: 267, 479: 267, 497: 267, 267, 518: 267, 543: 267}, - {504: 3806}, + {504: 3811}, {266, 266, 266, 266, 266, 266, 266, 8: 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 48: 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 475: 266, 479: 266, 497: 266, 266, 518: 266, 543: 266}, {268, 268, 268, 268, 268, 268, 268, 8: 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 48: 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 475: 268, 479: 268, 497: 268, 268, 518: 268, 543: 268}, // 1300 - {275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 47: 275, 472: 275, 476: 275, 275, 275, 275, 482: 275, 490: 275, 492: 275, 543: 3809, 573: 275, 582: 275, 586: 275, 638: 275, 642: 275, 275, 275, 1252: 3810}, + {275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 47: 275, 472: 275, 476: 275, 275, 275, 275, 482: 275, 490: 275, 492: 275, 543: 3814, 573: 275, 582: 275, 586: 275, 638: 275, 642: 275, 275, 275, 1253: 3815}, {274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 47: 274, 472: 274, 476: 274, 274, 274, 274, 482: 274, 490: 274, 492: 274, 573: 274, 582: 274, 586: 274, 638: 274, 642: 274, 274, 274}, {271, 271, 271, 271, 271, 271, 271, 271, 271, 271, 271, 271, 271, 47: 271, 472: 271, 476: 271, 271, 271, 271, 482: 271, 490: 271, 492: 271, 573: 271, 582: 271, 586: 271, 638: 271, 642: 271, 271, 271}, {272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 47: 272, 472: 272, 476: 272, 272, 272, 272, 482: 272, 490: 272, 492: 272, 573: 272, 582: 272, 586: 272, 638: 272, 642: 272, 272, 272}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 475: 3458, 543: 3729, 663: 3459, 2731, 2732, 2730, 737: 3728, 806: 3813}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 475: 3463, 543: 3734, 663: 3464, 2736, 2737, 2735, 737: 3733, 806: 3818}, // 1305 {269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 47: 269, 472: 269, 476: 269, 269, 269, 269, 482: 269, 490: 269, 492: 269, 573: 269, 582: 269, 586: 269, 638: 269, 642: 269, 269, 269}, - {47: 1064}, - {1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 474: 1241, 1241, 1241, 1241, 1241, 480: 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 491: 1241, 493: 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 502: 1241, 1241, 1241, 1241, 509: 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 544: 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 585: 1241}, - {505: 3313, 509: 3311, 3312, 3310, 3308, 542: 1070, 733: 3309, 3307}, - {542: 3820, 1156: 3819, 1335: 3818}, + {47: 1068}, + {1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 474: 1245, 1245, 1245, 1245, 1245, 480: 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 491: 1245, 493: 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 502: 1245, 1245, 1245, 1245, 509: 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 544: 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 585: 1245}, + {505: 3318, 509: 3316, 3317, 3315, 3313, 542: 1074, 733: 3314, 3312}, + {542: 3825, 1156: 3824, 1336: 3823}, // 1310 - {157: 1066, 542: 3820, 545: 3826, 1156: 3825, 1202: 3824}, - {157: 1069, 542: 1069, 545: 1069}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 2724, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 3821}, - {505: 3313, 509: 3311, 3312, 3310, 3308, 546: 3822, 733: 3309, 3307}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 2724, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 3823}, + {157: 1070, 542: 3825, 545: 3831, 1156: 3830, 1203: 3829}, + {157: 1073, 542: 1073, 545: 1073}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 2729, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 3826}, + {505: 3318, 509: 3316, 3317, 3315, 3313, 546: 3827, 733: 3314, 3312}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 2729, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 3828}, // 1315 - {157: 1067, 505: 3313, 509: 3311, 3312, 3310, 3308, 542: 1067, 545: 1067, 733: 3309, 3307}, - {157: 3828}, - {157: 1068, 542: 1068, 545: 1068}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 2724, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 3827}, - {157: 1065, 505: 3313, 509: 3311, 3312, 3310, 3308, 733: 3309, 3307}, + {157: 1071, 505: 3318, 509: 3316, 3317, 3315, 3313, 542: 1071, 545: 1071, 733: 3314, 3312}, + {157: 3833}, + {157: 1072, 542: 1072, 545: 1072}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 2729, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 3832}, + {157: 1069, 505: 3318, 509: 3316, 3317, 3315, 3313, 733: 3314, 3312}, // 1320 - {1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 474: 1242, 1242, 1242, 1242, 1242, 480: 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 491: 1242, 493: 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 502: 1242, 1242, 1242, 1242, 509: 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 544: 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 585: 1242}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 2724, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 3830}, - {478: 3831, 505: 3313, 509: 3311, 3312, 3310, 3308, 733: 3309, 3307}, - {49: 3772, 101: 3768, 165: 3774, 173: 3769, 3767, 193: 3771, 506: 3779, 543: 3765, 646: 3778, 679: 3770, 3775, 3776, 684: 3777, 739: 3773, 899: 3766, 997: 3832}, - {47: 3833}, + {1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 474: 1246, 1246, 1246, 1246, 1246, 480: 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 491: 1246, 493: 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 502: 1246, 1246, 1246, 1246, 509: 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 544: 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 585: 1246}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 2729, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 3835}, + {478: 3836, 505: 3318, 509: 3316, 3317, 3315, 3313, 733: 3314, 3312}, + {49: 3777, 101: 3773, 166: 3779, 173: 3774, 3772, 193: 3776, 506: 3784, 543: 3770, 646: 3783, 679: 3775, 3780, 3781, 684: 3782, 739: 3778, 899: 3771, 997: 3837}, + {47: 3838}, // 1325 - {1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 474: 1243, 1243, 1243, 1243, 1243, 480: 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 491: 1243, 493: 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 502: 1243, 1243, 1243, 1243, 509: 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 544: 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 585: 1243}, - {1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 474: 1244, 1244, 1244, 1244, 1244, 480: 1244, 1244, 3318, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 491: 1244, 493: 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 502: 1244, 1244, 1244, 1244, 509: 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 544: 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 585: 1244}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 2724, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 3836}, - {505: 3313, 509: 3311, 3312, 3310, 3308, 522: 3837, 733: 3309, 3307}, - {1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 474: 1245, 1245, 1245, 1245, 1245, 480: 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 491: 1245, 493: 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 502: 1245, 1245, 1245, 1245, 509: 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 544: 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 585: 1245}, + {1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 474: 1247, 1247, 1247, 1247, 1247, 480: 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 491: 1247, 493: 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 502: 1247, 1247, 1247, 1247, 509: 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 544: 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 585: 1247}, + {1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 474: 1248, 1248, 1248, 1248, 1248, 480: 1248, 1248, 3323, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 491: 1248, 493: 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 502: 1248, 1248, 1248, 1248, 509: 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 544: 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 585: 1248}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 2729, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 3841}, + {505: 3318, 509: 3316, 3317, 3315, 3313, 522: 3842, 733: 3314, 3312}, + {1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 474: 1249, 1249, 1249, 1249, 1249, 480: 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 491: 1249, 493: 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 502: 1249, 1249, 1249, 1249, 509: 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 544: 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 585: 1249}, // 1330 - {1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 474: 1246, 1246, 1246, 1246, 1246, 480: 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 491: 1246, 493: 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 502: 1246, 1246, 1246, 1246, 509: 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 544: 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 585: 1246}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 2724, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 3556, 777: 3840}, - {7: 3841}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 2724, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 3842}, - {7: 1912, 47: 3843, 505: 3313, 509: 3311, 3312, 3310, 3308, 733: 3309, 3307}, + {1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 474: 1250, 1250, 1250, 1250, 1250, 480: 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 491: 1250, 493: 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 502: 1250, 1250, 1250, 1250, 509: 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 544: 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 585: 1250}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 2729, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 3561, 777: 3845}, + {7: 3846}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 2729, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 3847}, + {7: 1916, 47: 3848, 505: 3318, 509: 3316, 3317, 3315, 3313, 733: 3314, 3312}, // 1335 - {1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 474: 1247, 1247, 1247, 1247, 1247, 480: 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 491: 1247, 493: 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 502: 1247, 1247, 1247, 1247, 509: 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 544: 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 585: 1247}, - {7: 1913, 47: 3946, 505: 3313, 509: 3311, 3312, 3310, 3308, 733: 3309, 3307}, - {7: 3943}, - {7: 1250, 47: 1250, 476: 1250, 1250, 480: 805, 482: 1250, 485: 1250, 1250, 1250, 805, 805, 493: 2697, 498: 1250, 500: 2698, 502: 2694, 505: 1250, 509: 1250, 1250, 1250, 1250, 518: 1250, 523: 1250, 544: 1250, 547: 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 585: 1250, 766: 3859, 3860}, - {473: 3747, 576: 3864, 910: 3863, 974: 3862}, + {1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 474: 1251, 1251, 1251, 1251, 1251, 480: 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 491: 1251, 493: 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 502: 1251, 1251, 1251, 1251, 509: 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 544: 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 585: 1251}, + {7: 1917, 47: 3951, 505: 3318, 509: 3316, 3317, 3315, 3313, 733: 3314, 3312}, + {7: 3948}, + {7: 1254, 47: 1254, 476: 1254, 1254, 480: 809, 482: 1254, 485: 1254, 1254, 1254, 809, 809, 493: 2702, 498: 1254, 500: 2703, 502: 2699, 505: 1254, 509: 1254, 1254, 1254, 1254, 518: 1254, 523: 1254, 544: 1254, 547: 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 585: 1254, 766: 3864, 3865}, + {473: 3752, 576: 3869, 910: 3868, 974: 3867}, // 1340 - {473: 2559, 501: 2557, 569: 2556, 645: 2552, 708: 3856, 747: 3855, 2553, 2554, 2555, 2564, 755: 2562, 3857, 3858}, - {47: 3854, 480: 806, 488: 806, 806}, - {47: 3853}, - {47: 3852}, - {833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 480: 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 491: 833, 493: 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 509: 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 544: 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 569: 833, 585: 833, 645: 833, 653: 833, 738: 833}, + {473: 2564, 501: 2562, 569: 2561, 645: 2557, 708: 3861, 747: 3860, 2558, 2559, 2560, 2569, 755: 2567, 3862, 3863}, + {47: 3859, 480: 810, 488: 810, 810}, + {47: 3858}, + {47: 3857}, + {837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 480: 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 491: 837, 493: 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 509: 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 544: 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 569: 837, 585: 837, 645: 837, 653: 837, 738: 837}, // 1345 - {834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 480: 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 491: 834, 493: 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 509: 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 544: 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, 569: 834, 585: 834, 645: 834, 653: 834, 738: 834}, - {835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 480: 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 491: 835, 493: 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 509: 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 544: 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 569: 835, 585: 835, 645: 835, 653: 835, 738: 835}, - {990, 990, 47: 990, 472: 990, 474: 990, 480: 806, 990, 488: 806, 806}, - {989, 989, 47: 989, 472: 989, 474: 989, 480: 805, 989, 488: 805, 805, 493: 2697, 500: 2698, 502: 2694, 766: 3859, 3860}, - {818, 818, 47: 818, 472: 818, 474: 818, 481: 818}, + {838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 480: 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 491: 838, 493: 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 509: 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 544: 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, 569: 838, 585: 838, 645: 838, 653: 838, 738: 838}, + {839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 480: 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 491: 839, 493: 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 509: 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 544: 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 569: 839, 585: 839, 645: 839, 653: 839, 738: 839}, + {994, 994, 47: 994, 472: 994, 474: 994, 480: 810, 994, 488: 810, 810}, + {993, 993, 47: 993, 472: 993, 474: 993, 480: 809, 993, 488: 809, 809, 493: 2702, 500: 2703, 502: 2699, 766: 3864, 3865}, + {822, 822, 47: 822, 472: 822, 474: 822, 481: 822}, // 1350 - {817, 817, 47: 817, 472: 817, 474: 817, 481: 817}, - {811, 811, 47: 811, 472: 811, 474: 811, 481: 811, 493: 2697, 500: 2698, 767: 3861}, - {810, 810, 47: 810, 472: 810, 474: 810, 481: 810}, - {809, 809, 47: 809, 472: 809, 474: 809, 481: 809}, - {1287, 1287, 7: 3876, 47: 1287, 472: 1287, 474: 1287, 480: 1287, 1287, 488: 1287, 1287, 493: 1287, 1287, 1287, 1287, 500: 1287, 502: 2694, 766: 2695, 810: 3875}, + {821, 821, 47: 821, 472: 821, 474: 821, 481: 821}, + {815, 815, 47: 815, 472: 815, 474: 815, 481: 815, 493: 2702, 500: 2703, 767: 3866}, + {814, 814, 47: 814, 472: 814, 474: 814, 481: 814}, + {813, 813, 47: 813, 472: 813, 474: 813, 481: 813}, + {1291, 1291, 7: 3881, 47: 1291, 472: 1291, 474: 1291, 480: 1291, 1291, 488: 1291, 1291, 493: 1291, 1291, 1291, 1291, 500: 1291, 502: 2699, 766: 2700, 810: 3880}, // 1355 {8, 8, 7: 8, 47: 8, 472: 8, 474: 8, 480: 8, 8, 488: 8, 8, 493: 8, 8, 8, 8, 500: 8, 502: 8}, - {473: 3865, 838: 3866}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 1327, 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 2724, 479: 3871, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 3867, 795: 3870, 1325: 3869, 3868}, + {473: 3870, 838: 3871}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 1331, 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 2729, 479: 3876, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 3872, 795: 3875, 1326: 3874, 3873}, {6, 6, 7: 6, 47: 6, 472: 6, 474: 6, 480: 6, 6, 488: 6, 6, 493: 6, 6, 6, 6, 500: 6, 502: 6}, - {1323, 1323, 7: 1323, 47: 1323, 472: 1323, 481: 1323, 493: 1323, 497: 1323, 502: 1323, 505: 3313, 509: 3311, 3312, 3310, 3308, 733: 3309, 3307}, + {1327, 1327, 7: 1327, 47: 1327, 472: 1327, 481: 1327, 493: 1327, 497: 1327, 502: 1327, 505: 3318, 509: 3316, 3317, 3315, 3313, 733: 3314, 3312}, // 1360 - {47: 3874}, - {7: 3872, 47: 1326}, - {7: 1324, 47: 1324}, - {1322, 1322, 7: 1322, 47: 1322, 472: 1322, 3755, 481: 1322, 493: 1322, 497: 1322, 502: 1322}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 2724, 479: 3871, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 3867, 795: 3873}, + {47: 3879}, + {7: 3877, 47: 1330}, + {7: 1328, 47: 1328}, + {1326, 1326, 7: 1326, 47: 1326, 472: 1326, 3760, 481: 1326, 493: 1326, 497: 1326, 502: 1326}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 2729, 479: 3876, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 3872, 795: 3878}, // 1365 - {7: 1325, 47: 1325}, - {1328, 1328, 7: 1328, 47: 1328, 86: 1328, 472: 1328, 474: 1328, 480: 1328, 1328, 488: 1328, 1328, 493: 1328, 1328, 1328, 1328, 500: 1328, 502: 1328, 505: 1328}, - {860, 860, 47: 860, 472: 860, 474: 860, 480: 860, 860, 488: 860, 860, 493: 2697, 860, 860, 860, 500: 2698, 767: 2699, 828: 3878}, - {576: 3864, 910: 3877}, + {7: 1329, 47: 1329}, + {1332, 1332, 7: 1332, 47: 1332, 86: 1332, 472: 1332, 474: 1332, 480: 1332, 1332, 488: 1332, 1332, 493: 1332, 1332, 1332, 1332, 500: 1332, 502: 1332, 505: 1332}, + {864, 864, 47: 864, 472: 864, 474: 864, 480: 864, 864, 488: 864, 864, 493: 2702, 864, 864, 864, 500: 2703, 767: 2704, 828: 3883}, + {576: 3869, 910: 3882}, {7, 7, 7: 7, 47: 7, 472: 7, 474: 7, 480: 7, 7, 488: 7, 7, 493: 7, 7, 7, 7, 500: 7, 502: 7}, // 1370 - {831, 831, 47: 831, 472: 831, 474: 831, 480: 831, 831, 488: 831, 831, 494: 3880, 831, 3881, 886: 3879}, - {837, 837, 47: 837, 472: 837, 474: 837, 480: 837, 837, 488: 837, 837, 495: 3906, 887: 3905}, - {281: 3886, 653: 3885}, - {544: 3882}, - {281: 3883}, + {835, 835, 47: 835, 472: 835, 474: 835, 480: 835, 835, 488: 835, 835, 494: 3885, 835, 3886, 886: 3884}, + {841, 841, 47: 841, 472: 841, 474: 841, 480: 841, 841, 488: 841, 841, 495: 3911, 887: 3910}, + {281: 3891, 653: 3890}, + {544: 3887}, + {281: 3888}, // 1375 - {181: 3884}, - {823, 823, 47: 823, 472: 823, 474: 823, 480: 823, 823, 488: 823, 823, 495: 823}, - {822, 822, 47: 822, 138: 822, 150: 822, 171: 822, 472: 822, 474: 822, 480: 822, 822, 488: 822, 822, 495: 822, 1082: 3888, 3899}, - {822, 822, 47: 822, 138: 822, 150: 822, 472: 822, 474: 822, 480: 822, 822, 488: 822, 822, 495: 822, 1082: 3888, 3887}, - {829, 829, 47: 829, 138: 3897, 150: 3896, 472: 829, 474: 829, 480: 829, 829, 488: 829, 829, 495: 829}, + {181: 3889}, + {827, 827, 47: 827, 472: 827, 474: 827, 480: 827, 827, 488: 827, 827, 495: 827}, + {826, 826, 47: 826, 138: 826, 150: 826, 171: 826, 472: 826, 474: 826, 480: 826, 826, 488: 826, 826, 495: 826, 1082: 3893, 3904}, + {826, 826, 47: 826, 138: 826, 150: 826, 472: 826, 474: 826, 480: 826, 826, 488: 826, 826, 495: 826, 1082: 3893, 3892}, + {833, 833, 47: 833, 138: 3902, 150: 3901, 472: 833, 474: 833, 480: 833, 833, 488: 833, 833, 495: 833}, // 1380 - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 3889, 2731, 2732, 2730, 736: 3890, 794: 3891}, - {1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 544: 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 569: 1046, 573: 1046, 582: 1046, 585: 1046, 1046, 1046, 638: 1046, 642: 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 3894, 1046, 1046, 656: 1046, 1046, 659: 1046, 1046, 668: 1046, 1046, 1046, 1046, 1046, 1046, 678: 1046, 685: 1046, 1046, 688: 1046, 703: 1046}, - {1044, 1044, 7: 1044, 47: 1044, 138: 1044, 150: 1044, 171: 1044, 472: 1044, 474: 1044, 480: 1044, 1044, 488: 1044, 1044, 495: 1044, 499: 1044, 649: 1044, 669: 1044, 671: 1044}, - {821, 821, 7: 3892, 47: 821, 138: 821, 150: 821, 171: 821, 472: 821, 474: 821, 480: 821, 821, 488: 821, 821, 495: 821}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 3889, 2731, 2732, 2730, 736: 3893}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 3894, 2736, 2737, 2735, 736: 3895, 794: 3896}, + {1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 544: 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 569: 1050, 573: 1050, 582: 1050, 585: 1050, 1050, 1050, 638: 1050, 642: 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 3899, 1050, 1050, 656: 1050, 1050, 659: 1050, 1050, 668: 1050, 1050, 1050, 1050, 1050, 1050, 678: 1050, 685: 1050, 1050, 688: 1050, 703: 1050}, + {1048, 1048, 7: 1048, 47: 1048, 138: 1048, 150: 1048, 171: 1048, 472: 1048, 474: 1048, 480: 1048, 1048, 488: 1048, 1048, 495: 1048, 499: 1048, 649: 1048, 669: 1048, 671: 1048}, + {825, 825, 7: 3897, 47: 825, 138: 825, 150: 825, 171: 825, 472: 825, 474: 825, 480: 825, 825, 488: 825, 825, 495: 825}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 3894, 2736, 2737, 2735, 736: 3898}, // 1385 - {1043, 1043, 7: 1043, 47: 1043, 138: 1043, 150: 1043, 161: 1043, 171: 1043, 472: 1043, 474: 1043, 480: 1043, 1043, 488: 1043, 1043, 495: 1043, 499: 1043, 649: 1043, 1043, 669: 1043, 671: 1043}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 3895, 2731, 2732, 2730}, - {1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 544: 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 569: 1045, 573: 1045, 582: 1045, 585: 1045, 1045, 1045, 638: 1045, 642: 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 652: 1045, 1045, 656: 1045, 1045, 659: 1045, 1045, 668: 1045, 1045, 1045, 1045, 1045, 1045, 678: 1045, 685: 1045, 1045, 688: 1045, 703: 1045}, - {826, 826, 47: 826, 472: 826, 474: 826, 480: 826, 826, 488: 826, 826, 495: 826}, - {263: 3898}, + {1047, 1047, 7: 1047, 47: 1047, 138: 1047, 150: 1047, 162: 1047, 171: 1047, 472: 1047, 474: 1047, 480: 1047, 1047, 488: 1047, 1047, 495: 1047, 499: 1047, 649: 1047, 1047, 669: 1047, 671: 1047}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 3900, 2736, 2737, 2735}, + {1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 544: 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 569: 1049, 573: 1049, 582: 1049, 585: 1049, 1049, 1049, 638: 1049, 642: 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 652: 1049, 1049, 656: 1049, 1049, 659: 1049, 1049, 668: 1049, 1049, 1049, 1049, 1049, 1049, 678: 1049, 685: 1049, 1049, 688: 1049, 703: 1049}, + {830, 830, 47: 830, 472: 830, 474: 830, 480: 830, 830, 488: 830, 830, 495: 830}, + {263: 3903}, // 1390 - {824, 824, 47: 824, 472: 824, 474: 824, 480: 824, 824, 488: 824, 824, 495: 824}, - {830, 830, 47: 830, 138: 3902, 150: 3900, 171: 3901, 472: 830, 474: 830, 480: 830, 830, 488: 830, 830, 495: 830}, {828, 828, 47: 828, 472: 828, 474: 828, 480: 828, 828, 488: 828, 828, 495: 828}, - {508: 2705, 732: 3904}, - {263: 3903}, + {834, 834, 47: 834, 138: 3907, 150: 3905, 171: 3906, 472: 834, 474: 834, 480: 834, 834, 488: 834, 834, 495: 834}, + {832, 832, 47: 832, 472: 832, 474: 832, 480: 832, 832, 488: 832, 832, 495: 832}, + {508: 2710, 732: 3909}, + {263: 3908}, // 1395 - {825, 825, 47: 825, 472: 825, 474: 825, 480: 825, 825, 488: 825, 825, 495: 825}, - {827, 827, 47: 827, 472: 827, 474: 827, 480: 827, 827, 488: 827, 827, 495: 827}, - {991, 991, 47: 991, 472: 991, 474: 991, 480: 991, 991, 488: 991, 991}, - {1265: 3907}, - {475: 3908}, + {829, 829, 47: 829, 472: 829, 474: 829, 480: 829, 829, 488: 829, 829, 495: 829}, + {831, 831, 47: 831, 472: 831, 474: 831, 480: 831, 831, 488: 831, 831, 495: 831}, + {995, 995, 47: 995, 472: 995, 474: 995, 480: 995, 995, 488: 995, 995}, + {1266: 3912}, + {475: 3913}, // 1400 - {100, 100, 47: 100, 98: 3912, 107: 3911, 472: 100, 474: 100, 480: 100, 100, 488: 100, 100, 657: 100, 832: 3910, 1047: 3909}, - {87, 87, 47: 87, 472: 87, 474: 87, 480: 87, 87, 488: 87, 87, 657: 3933, 942: 3932}, - {781: 3915, 787: 3917, 792: 3918, 3916, 1046: 3914, 1208: 3913}, + {100, 100, 47: 100, 98: 3917, 107: 3916, 472: 100, 474: 100, 480: 100, 100, 488: 100, 100, 657: 100, 832: 3915, 1047: 3914}, + {87, 87, 47: 87, 472: 87, 474: 87, 480: 87, 87, 488: 87, 87, 657: 3938, 942: 3937}, + {781: 3920, 787: 3922, 792: 3923, 3921, 1046: 3919, 1209: 3918}, {98, 98, 15: 98, 48: 98, 50: 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 472: 98, 98, 499: 98, 544: 98, 652: 98, 781: 98, 787: 98, 792: 98, 98}, {97, 97, 15: 97, 48: 97, 50: 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 472: 97, 97, 499: 97, 544: 97, 652: 97, 781: 97, 787: 97, 792: 97, 97}, // 1405 - {99, 99, 47: 99, 472: 99, 99, 99, 480: 99, 99, 488: 99, 99, 491: 99, 504: 99, 657: 99, 781: 3915, 787: 3917, 792: 3918, 3916, 1046: 3931}, + {99, 99, 47: 99, 472: 99, 99, 99, 480: 99, 99, 488: 99, 99, 491: 99, 504: 99, 657: 99, 781: 3920, 787: 3922, 792: 3923, 3921, 1046: 3936}, {95, 95, 47: 95, 472: 95, 95, 95, 480: 95, 95, 488: 95, 95, 491: 95, 504: 95, 657: 95, 781: 95, 787: 95, 792: 95, 95}, + {659: 3934}, + {787: 3931}, {659: 3929}, - {787: 3926}, - {659: 3924}, // 1410 - {659: 3919}, - {475: 3921, 577: 3922, 580: 3923, 851: 3920}, + {659: 3924}, + {475: 3926, 577: 3927, 580: 3928, 851: 3925}, {91, 91, 47: 91, 472: 91, 91, 91, 480: 91, 91, 488: 91, 91, 491: 91, 504: 91, 657: 91, 781: 91, 787: 91, 792: 91, 91}, {90, 90, 47: 90, 472: 90, 90, 90, 480: 90, 90, 488: 90, 90, 491: 90, 504: 90, 657: 90, 781: 90, 787: 90, 792: 90, 90}, {89, 89, 47: 89, 472: 89, 89, 89, 480: 89, 89, 488: 89, 89, 491: 89, 504: 89, 657: 89, 781: 89, 787: 89, 792: 89, 89}, // 1415 {88, 88, 47: 88, 472: 88, 88, 88, 480: 88, 88, 488: 88, 88, 491: 88, 504: 88, 657: 88, 781: 88, 787: 88, 792: 88, 88}, - {475: 3921, 577: 3922, 580: 3923, 851: 3925}, + {475: 3926, 577: 3927, 580: 3928, 851: 3930}, {92, 92, 47: 92, 472: 92, 92, 92, 480: 92, 92, 488: 92, 92, 491: 92, 504: 92, 657: 92, 781: 92, 787: 92, 792: 92, 92}, - {659: 3927}, - {475: 3921, 577: 3922, 580: 3923, 851: 3928}, + {659: 3932}, + {475: 3926, 577: 3927, 580: 3928, 851: 3933}, // 1420 {93, 93, 47: 93, 472: 93, 93, 93, 480: 93, 93, 488: 93, 93, 491: 93, 504: 93, 657: 93, 781: 93, 787: 93, 792: 93, 93}, - {475: 3921, 577: 3922, 580: 3923, 851: 3930}, + {475: 3926, 577: 3927, 580: 3928, 851: 3935}, {94, 94, 47: 94, 472: 94, 94, 94, 480: 94, 94, 488: 94, 94, 491: 94, 504: 94, 657: 94, 781: 94, 787: 94, 792: 94, 94}, {96, 96, 47: 96, 472: 96, 96, 96, 480: 96, 96, 488: 96, 96, 491: 96, 504: 96, 657: 96, 781: 96, 787: 96, 792: 96, 96}, - {836, 836, 47: 836, 472: 836, 474: 836, 480: 836, 836, 488: 836, 836}, + {840, 840, 47: 840, 472: 840, 474: 840, 480: 840, 840, 488: 840, 840}, // 1425 - {85, 85, 47: 85, 472: 85, 85, 85, 480: 85, 85, 488: 85, 85, 491: 85, 504: 85, 781: 85, 1298: 3934, 3935}, - {83, 83, 47: 83, 472: 83, 83, 83, 480: 83, 83, 488: 83, 83, 491: 83, 504: 83, 781: 3939, 1238: 3938}, - {659: 3936}, - {475: 3921, 577: 3922, 580: 3923, 851: 3937}, + {85, 85, 47: 85, 472: 85, 85, 85, 480: 85, 85, 488: 85, 85, 491: 85, 504: 85, 781: 85, 1299: 3939, 3940}, + {83, 83, 47: 83, 472: 83, 83, 83, 480: 83, 83, 488: 83, 83, 491: 83, 504: 83, 781: 3944, 1239: 3943}, + {659: 3941}, + {475: 3926, 577: 3927, 580: 3928, 851: 3942}, {84, 84, 47: 84, 472: 84, 84, 84, 480: 84, 84, 488: 84, 84, 491: 84, 504: 84, 781: 84}, // 1430 {86, 86, 47: 86, 472: 86, 86, 86, 480: 86, 86, 488: 86, 86, 491: 86, 504: 86}, - {659: 3940}, - {475: 3921, 577: 3922, 580: 3923, 851: 3941}, + {659: 3945}, + {475: 3926, 577: 3927, 580: 3928, 851: 3946}, {82, 82, 47: 82, 472: 82, 82, 82, 480: 82, 82, 488: 82, 82, 491: 82, 504: 82}, - {832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 480: 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 491: 832, 493: 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 509: 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 544: 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 569: 832, 585: 832, 645: 832, 653: 832, 738: 832}, + {836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 480: 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 491: 836, 493: 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 509: 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 544: 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 836, 569: 836, 585: 836, 645: 836, 653: 836, 738: 836}, // 1435 - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 2724, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 3944}, - {7: 1912, 47: 3945, 505: 3313, 509: 3311, 3312, 3310, 3308, 733: 3309, 3307}, - {1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 474: 1248, 1248, 1248, 1248, 1248, 480: 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 491: 1248, 493: 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 502: 1248, 1248, 1248, 1248, 509: 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 544: 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 585: 1248}, - {1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 474: 1249, 1249, 1249, 1249, 1249, 480: 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 491: 1249, 493: 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 502: 1249, 1249, 1249, 1249, 509: 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 544: 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 585: 1249}, - {1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 474: 1251, 1251, 1251, 1251, 1251, 480: 1251, 1251, 3318, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 491: 1251, 493: 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 502: 1251, 1251, 1251, 1251, 509: 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 544: 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 585: 1251}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 2729, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 3949}, + {7: 1916, 47: 3950, 505: 3318, 509: 3316, 3317, 3315, 3313, 733: 3314, 3312}, + {1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 474: 1252, 1252, 1252, 1252, 1252, 480: 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 491: 1252, 493: 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 502: 1252, 1252, 1252, 1252, 509: 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 544: 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 585: 1252}, + {1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 474: 1253, 1253, 1253, 1253, 1253, 480: 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 491: 1253, 493: 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 502: 1253, 1253, 1253, 1253, 509: 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 544: 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 585: 1253}, + {1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 474: 1255, 1255, 1255, 1255, 1255, 480: 1255, 1255, 3323, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 491: 1255, 493: 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 502: 1255, 1255, 1255, 1255, 509: 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 544: 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 585: 1255}, // 1440 - {1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 474: 1253, 1253, 1253, 1253, 1253, 480: 1253, 1253, 3318, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 491: 1253, 493: 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 502: 1253, 1253, 1253, 1253, 509: 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 544: 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 585: 1253}, - {1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 474: 1254, 1254, 1254, 1254, 1254, 480: 1254, 1254, 3318, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 491: 1254, 493: 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 502: 1254, 1254, 1254, 1254, 509: 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 544: 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 585: 1254}, - {1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 474: 1255, 1255, 1255, 1255, 1255, 480: 1255, 1255, 3318, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 491: 1255, 493: 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 502: 1255, 1255, 1255, 1255, 509: 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 544: 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 585: 1255}, - {1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 474: 1256, 1256, 1256, 1256, 1256, 480: 1256, 1256, 3318, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 491: 1256, 493: 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 502: 1256, 1256, 1256, 1256, 509: 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 544: 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 585: 1256}, - {475: 3955}, + {1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 474: 1257, 1257, 1257, 1257, 1257, 480: 1257, 1257, 3323, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 491: 1257, 493: 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 502: 1257, 1257, 1257, 1257, 509: 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 544: 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 585: 1257}, + {1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 474: 1258, 1258, 1258, 1258, 1258, 480: 1258, 1258, 3323, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 491: 1258, 493: 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 502: 1258, 1258, 1258, 1258, 509: 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 544: 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 585: 1258}, + {1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 474: 1259, 1259, 1259, 1259, 1259, 480: 1259, 1259, 3323, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 491: 1259, 493: 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 502: 1259, 1259, 1259, 1259, 509: 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 544: 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 585: 1259}, + {1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 474: 1260, 1260, 1260, 1260, 1260, 480: 1260, 1260, 3323, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 491: 1260, 493: 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 502: 1260, 1260, 1260, 1260, 509: 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 544: 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 585: 1260}, + {475: 3960}, // 1445 - {475: 3954}, - {1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 474: 1236, 1236, 1236, 1236, 1236, 480: 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 491: 1236, 493: 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 502: 1236, 1236, 1236, 1236, 509: 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 544: 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 585: 1236}, - {1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 474: 1237, 1237, 1237, 1237, 1237, 480: 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 491: 1237, 493: 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 502: 1237, 1237, 1237, 1237, 509: 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 544: 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 585: 1237}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 3957, 2731, 2732, 2730}, - {1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 3958, 1268, 1268, 1268, 1268, 1268, 480: 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 491: 1268, 493: 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 502: 1268, 1268, 1268, 1268, 509: 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 544: 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 585: 1268, 651: 3753, 654: 1268, 1268}, + {475: 3959}, + {1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 474: 1240, 1240, 1240, 1240, 1240, 480: 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 491: 1240, 493: 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 502: 1240, 1240, 1240, 1240, 509: 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 544: 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 585: 1240}, + {1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 474: 1241, 1241, 1241, 1241, 1241, 480: 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 491: 1241, 493: 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 502: 1241, 1241, 1241, 1241, 509: 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 544: 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 585: 1241}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 3962, 2736, 2737, 2735}, + {1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 3963, 1272, 1272, 1272, 1272, 1272, 480: 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 491: 1272, 493: 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 502: 1272, 1272, 1272, 1272, 509: 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 544: 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 585: 1272, 651: 3758, 654: 1272, 1272}, // 1450 - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 1909, 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 2724, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 3556, 777: 3720, 825: 3959}, - {47: 3960}, - {1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 474: 1104, 1104, 1104, 1104, 1104, 480: 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 491: 1104, 493: 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 502: 1104, 1104, 1104, 1104, 509: 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 544: 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 585: 1104}, - {101: 3432, 104: 3428, 108: 3425, 3440, 3427, 3424, 3426, 3430, 3431, 3436, 3435, 3434, 3438, 3439, 3433, 3437, 123: 3429, 505: 3313, 509: 3311, 3312, 3310, 3308, 531: 3422, 3419, 3421, 3420, 3416, 3418, 3417, 3414, 3415, 3413, 3423, 733: 3309, 3307, 802: 3412, 821: 3962}, - {485: 3675}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 1913, 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 2729, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 3561, 777: 3725, 825: 3964}, + {47: 3965}, + {1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 474: 1108, 1108, 1108, 1108, 1108, 480: 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 491: 1108, 493: 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 502: 1108, 1108, 1108, 1108, 509: 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 544: 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 585: 1108}, + {101: 3437, 104: 3433, 108: 3430, 3445, 3432, 3429, 3431, 3435, 3436, 3441, 3440, 3439, 3443, 3444, 3438, 3442, 123: 3434, 505: 3318, 509: 3316, 3317, 3315, 3313, 531: 3427, 3424, 3426, 3425, 3421, 3423, 3422, 3419, 3420, 3418, 3428, 733: 3314, 3312, 802: 3417, 821: 3967}, + {485: 3680}, // 1455 + {1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 474: 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 502: 1311, 1311, 1311, 1311, 509: 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 544: 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 573: 1311, 582: 1311, 585: 1311, 1311, 638: 1311, 642: 1311, 1311, 1311}, + {1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 474: 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 502: 1308, 1308, 1308, 1308, 509: 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 544: 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 573: 1308, 582: 1308, 585: 1308, 1308, 638: 1308, 642: 1308, 1308, 1308}, {1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 474: 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 502: 1307, 1307, 1307, 1307, 509: 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 544: 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 573: 1307, 582: 1307, 585: 1307, 1307, 638: 1307, 642: 1307, 1307, 1307}, - {1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 474: 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 502: 1304, 1304, 1304, 1304, 509: 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 544: 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 573: 1304, 582: 1304, 585: 1304, 1304, 638: 1304, 642: 1304, 1304, 1304}, - {1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 474: 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 502: 1303, 1303, 1303, 1303, 509: 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 544: 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 573: 1303, 582: 1303, 585: 1303, 1303, 638: 1303, 642: 1303, 1303, 1303}, - {1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 474: 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 502: 1301, 1301, 1301, 1301, 509: 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 544: 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 573: 1301, 582: 1301, 585: 1301, 1301, 638: 1301, 642: 1301, 1301, 1301}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 2724, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 650: 3969, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 3968}, + {1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 474: 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 502: 1305, 1305, 1305, 1305, 509: 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 544: 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 573: 1305, 582: 1305, 585: 1305, 1305, 638: 1305, 642: 1305, 1305, 1305}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 2729, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 650: 3974, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 3973}, // 1460 - {47: 3973, 505: 3313, 509: 3311, 3312, 3310, 3308, 733: 3309, 3307}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 2724, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 3970}, - {47: 3971, 505: 3313, 509: 3311, 3312, 3310, 3308, 733: 3309, 3307}, - {950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 474: 950, 950, 950, 950, 950, 480: 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 491: 950, 493: 950, 950, 950, 950, 950, 950, 950, 950, 502: 950, 950, 950, 950, 509: 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 544: 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 585: 950, 740: 3330, 746: 3522, 764: 3972}, - {1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 474: 1112, 1112, 1112, 1112, 1112, 480: 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 491: 1112, 493: 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 502: 1112, 1112, 1112, 1112, 509: 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 544: 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 585: 1112}, + {47: 3978, 505: 3318, 509: 3316, 3317, 3315, 3313, 733: 3314, 3312}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 2729, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 3975}, + {47: 3976, 505: 3318, 509: 3316, 3317, 3315, 3313, 733: 3314, 3312}, + {954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 474: 954, 954, 954, 954, 954, 480: 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 491: 954, 493: 954, 954, 954, 954, 954, 954, 954, 954, 502: 954, 954, 954, 954, 509: 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 544: 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 585: 954, 740: 3335, 746: 3527, 764: 3977}, + {1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 474: 1116, 1116, 1116, 1116, 1116, 480: 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 491: 1116, 493: 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 502: 1116, 1116, 1116, 1116, 509: 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 544: 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 585: 1116}, // 1465 - {950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 474: 950, 950, 950, 950, 950, 480: 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 491: 950, 493: 950, 950, 950, 950, 950, 950, 950, 950, 502: 950, 950, 950, 950, 509: 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 544: 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 585: 950, 740: 3330, 746: 3522, 764: 3974}, - {1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 474: 1113, 1113, 1113, 1113, 1113, 480: 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 491: 1113, 493: 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 502: 1113, 1113, 1113, 1113, 509: 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 544: 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 585: 1113}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 2724, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 650: 3977, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 3976}, - {7: 3987, 505: 3313, 509: 3311, 3312, 3310, 3308, 733: 3309, 3307}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 2724, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 3978}, + {954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 474: 954, 954, 954, 954, 954, 480: 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 491: 954, 493: 954, 954, 954, 954, 954, 954, 954, 954, 502: 954, 954, 954, 954, 509: 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 544: 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 585: 954, 740: 3335, 746: 3527, 764: 3979}, + {1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 474: 1117, 1117, 1117, 1117, 1117, 480: 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 491: 1117, 493: 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 502: 1117, 1117, 1117, 1117, 509: 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 544: 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 585: 1117}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 2729, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 650: 3982, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 3981}, + {7: 3992, 505: 3318, 509: 3316, 3317, 3315, 3313, 733: 3314, 3312}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 2729, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 3983}, // 1470 - {7: 3979, 505: 3313, 509: 3311, 3312, 3310, 3308, 733: 3309, 3307}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 2724, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 650: 3981, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 3980}, - {47: 3985, 505: 3313, 509: 3311, 3312, 3310, 3308, 733: 3309, 3307}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 2724, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 3982}, - {47: 3983, 505: 3313, 509: 3311, 3312, 3310, 3308, 733: 3309, 3307}, + {7: 3984, 505: 3318, 509: 3316, 3317, 3315, 3313, 733: 3314, 3312}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 2729, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 650: 3986, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 3985}, + {47: 3990, 505: 3318, 509: 3316, 3317, 3315, 3313, 733: 3314, 3312}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 2729, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 3987}, + {47: 3988, 505: 3318, 509: 3316, 3317, 3315, 3313, 733: 3314, 3312}, // 1475 - {950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 474: 950, 950, 950, 950, 950, 480: 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 491: 950, 493: 950, 950, 950, 950, 950, 950, 950, 950, 502: 950, 950, 950, 950, 509: 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 544: 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 585: 950, 740: 3330, 746: 3522, 764: 3984}, - {1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 474: 1108, 1108, 1108, 1108, 1108, 480: 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 491: 1108, 493: 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 502: 1108, 1108, 1108, 1108, 509: 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 544: 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 585: 1108}, - {950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 474: 950, 950, 950, 950, 950, 480: 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 491: 950, 493: 950, 950, 950, 950, 950, 950, 950, 950, 502: 950, 950, 950, 950, 509: 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 544: 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 585: 950, 740: 3330, 746: 3522, 764: 3986}, - {1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 474: 1110, 1110, 1110, 1110, 1110, 480: 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 491: 1110, 493: 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 502: 1110, 1110, 1110, 1110, 509: 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 544: 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 585: 1110}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 2724, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 650: 3989, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 3988}, + {954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 474: 954, 954, 954, 954, 954, 480: 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 491: 954, 493: 954, 954, 954, 954, 954, 954, 954, 954, 502: 954, 954, 954, 954, 509: 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 544: 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 585: 954, 740: 3335, 746: 3527, 764: 3989}, + {1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 474: 1112, 1112, 1112, 1112, 1112, 480: 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 491: 1112, 493: 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 502: 1112, 1112, 1112, 1112, 509: 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 544: 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 585: 1112}, + {954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 474: 954, 954, 954, 954, 954, 480: 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 491: 954, 493: 954, 954, 954, 954, 954, 954, 954, 954, 502: 954, 954, 954, 954, 509: 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 544: 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 585: 954, 740: 3335, 746: 3527, 764: 3991}, + {1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 474: 1114, 1114, 1114, 1114, 1114, 480: 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 491: 1114, 493: 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 502: 1114, 1114, 1114, 1114, 509: 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 544: 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 585: 1114}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 2729, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 650: 3994, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 3993}, // 1480 - {47: 3993, 505: 3313, 509: 3311, 3312, 3310, 3308, 733: 3309, 3307}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 2724, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 3990}, - {47: 3991, 505: 3313, 509: 3311, 3312, 3310, 3308, 733: 3309, 3307}, - {950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 474: 950, 950, 950, 950, 950, 480: 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 491: 950, 493: 950, 950, 950, 950, 950, 950, 950, 950, 502: 950, 950, 950, 950, 509: 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 544: 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 585: 950, 740: 3330, 746: 3522, 764: 3992}, - {1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 474: 1109, 1109, 1109, 1109, 1109, 480: 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 491: 1109, 493: 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 502: 1109, 1109, 1109, 1109, 509: 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 544: 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 585: 1109}, + {47: 3998, 505: 3318, 509: 3316, 3317, 3315, 3313, 733: 3314, 3312}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 2729, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 3995}, + {47: 3996, 505: 3318, 509: 3316, 3317, 3315, 3313, 733: 3314, 3312}, + {954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 474: 954, 954, 954, 954, 954, 480: 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 491: 954, 493: 954, 954, 954, 954, 954, 954, 954, 954, 502: 954, 954, 954, 954, 509: 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 544: 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 585: 954, 740: 3335, 746: 3527, 764: 3997}, + {1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 474: 1113, 1113, 1113, 1113, 1113, 480: 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 491: 1113, 493: 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 502: 1113, 1113, 1113, 1113, 509: 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 544: 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 585: 1113}, // 1485 - {950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 474: 950, 950, 950, 950, 950, 480: 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 491: 950, 493: 950, 950, 950, 950, 950, 950, 950, 950, 502: 950, 950, 950, 950, 509: 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 544: 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 585: 950, 740: 3330, 746: 3522, 764: 3994}, - {1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 474: 1111, 1111, 1111, 1111, 1111, 480: 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 491: 1111, 493: 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 502: 1111, 1111, 1111, 1111, 509: 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 544: 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 585: 1111}, - {101: 3432, 104: 3428, 108: 3425, 3440, 3427, 3424, 3426, 3430, 3431, 3436, 3435, 3434, 3438, 3439, 3433, 3437, 123: 3429, 802: 3996}, - {7: 3997}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 2724, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 3998}, + {954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 474: 954, 954, 954, 954, 954, 480: 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 491: 954, 493: 954, 954, 954, 954, 954, 954, 954, 954, 502: 954, 954, 954, 954, 509: 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 544: 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 585: 954, 740: 3335, 746: 3527, 764: 3999}, + {1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 474: 1115, 1115, 1115, 1115, 1115, 480: 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 491: 1115, 493: 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 502: 1115, 1115, 1115, 1115, 509: 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 544: 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 585: 1115}, + {101: 3437, 104: 3433, 108: 3430, 3445, 3432, 3429, 3431, 3435, 3436, 3441, 3440, 3439, 3443, 3444, 3438, 3442, 123: 3434, 802: 4001}, + {7: 4002}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 2729, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 4003}, // 1490 - {7: 3999, 505: 3313, 509: 3311, 3312, 3310, 3308, 733: 3309, 3307}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 2724, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 4000}, - {47: 4001, 505: 3313, 509: 3311, 3312, 3310, 3308, 733: 3309, 3307}, - {1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 474: 1158, 1158, 1158, 1158, 1158, 480: 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 491: 1158, 493: 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 502: 1158, 1158, 1158, 1158, 509: 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 544: 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 585: 1158}, - {101: 3432, 104: 3428, 108: 3425, 3440, 3427, 3424, 3426, 3430, 3431, 3436, 3435, 3434, 3438, 3439, 3433, 3437, 123: 3429, 802: 4003}, + {7: 4004, 505: 3318, 509: 3316, 3317, 3315, 3313, 733: 3314, 3312}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 2729, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 4005}, + {47: 4006, 505: 3318, 509: 3316, 3317, 3315, 3313, 733: 3314, 3312}, + {1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 474: 1162, 1162, 1162, 1162, 1162, 480: 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 491: 1162, 493: 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 502: 1162, 1162, 1162, 1162, 509: 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 544: 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 585: 1162}, + {101: 3437, 104: 3433, 108: 3430, 3445, 3432, 3429, 3431, 3435, 3436, 3441, 3440, 3439, 3443, 3444, 3438, 3442, 123: 3434, 802: 4008}, // 1495 - {7: 4004}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 2724, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 4005}, - {7: 4006, 505: 3313, 509: 3311, 3312, 3310, 3308, 733: 3309, 3307}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 2724, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 4007}, - {47: 4008, 505: 3313, 509: 3311, 3312, 3310, 3308, 733: 3309, 3307}, + {7: 4009}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 2729, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 4010}, + {7: 4011, 505: 3318, 509: 3316, 3317, 3315, 3313, 733: 3314, 3312}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 2729, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 4012}, + {47: 4013, 505: 3318, 509: 3316, 3317, 3315, 3313, 733: 3314, 3312}, // 1500 - {1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 474: 1159, 1159, 1159, 1159, 1159, 480: 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 491: 1159, 493: 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 502: 1159, 1159, 1159, 1159, 509: 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 544: 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 585: 1159}, - {173: 4012, 4011, 193: 4013, 218: 4014, 1218: 4010}, - {7: 4015}, - {7: 1148}, - {7: 1147}, + {1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 474: 1163, 1163, 1163, 1163, 1163, 480: 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 491: 1163, 493: 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 502: 1163, 1163, 1163, 1163, 509: 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 544: 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 585: 1163}, + {173: 4017, 4016, 193: 4018, 218: 4019, 1219: 4015}, + {7: 4020}, + {7: 1152}, + {7: 1151}, // 1505 - {7: 1146}, - {7: 1145}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 2724, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 4016}, - {47: 4017, 505: 3313, 509: 3311, 3312, 3310, 3308, 733: 3309, 3307}, - {1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 474: 1165, 1165, 1165, 1165, 1165, 480: 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 491: 1165, 493: 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 502: 1165, 1165, 1165, 1165, 509: 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 544: 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 585: 1165}, + {7: 1150}, + {7: 1149}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 2729, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 4021}, + {47: 4022, 505: 3318, 509: 3316, 3317, 3315, 3313, 733: 3314, 3312}, + {1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 474: 1169, 1169, 1169, 1169, 1169, 480: 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 491: 1169, 493: 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 502: 1169, 1169, 1169, 1169, 509: 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 544: 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 585: 1169}, // 1510 - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 3889, 2731, 2732, 2730, 736: 4019}, - {7: 4020}, - {485: 4024, 4025, 508: 2705, 732: 4021, 763: 4023, 812: 4022}, - {1964, 1964, 4: 1964, 1964, 1964, 1964, 13: 1964, 1964, 1964, 1964, 1964, 1964, 1964, 1964, 1964, 1964, 1964, 1964, 1964, 1964, 1964, 1964, 1964, 1964, 1964, 1964, 1964, 1964, 1964, 1964, 1964, 1964, 1964, 1964, 1964, 1964, 1964, 1964, 1964, 1964, 1964, 70: 1964, 1964, 1964, 1964, 1964, 1964, 1964, 1964, 1964, 1964, 1964, 104: 1964, 126: 1964, 1964, 1964, 1964, 479: 1964, 1964, 482: 1964, 493: 1964, 497: 1964, 500: 1964, 503: 1964, 506: 1964, 646: 1964, 648: 1964, 656: 1964}, - {47: 4028}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 3894, 2736, 2737, 2735, 736: 4024}, + {7: 4025}, + {485: 4029, 4030, 508: 2710, 732: 4026, 763: 4028, 812: 4027}, + {1968, 1968, 4: 1968, 1968, 1968, 1968, 13: 1968, 1968, 1968, 1968, 1968, 1968, 1968, 1968, 1968, 1968, 1968, 1968, 1968, 1968, 1968, 1968, 1968, 1968, 1968, 1968, 1968, 1968, 1968, 1968, 1968, 1968, 1968, 1968, 1968, 1968, 1968, 1968, 1968, 1968, 1968, 70: 1968, 1968, 1968, 1968, 1968, 1968, 1968, 1968, 1968, 1968, 1968, 104: 1968, 126: 1968, 1968, 1968, 1968, 479: 1968, 1968, 482: 1968, 493: 1968, 497: 1968, 500: 1968, 503: 1968, 506: 1968, 646: 1968, 648: 1968, 656: 1968}, + {47: 4033}, // 1515 {29, 29, 4: 29, 29, 29, 13: 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 47: 29, 70: 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 479: 29, 29, 482: 29, 503: 29, 506: 29, 646: 29, 648: 29, 656: 29}, - {508: 2705, 732: 4021, 763: 4027}, - {508: 2705, 732: 4026}, + {508: 2710, 732: 4026, 763: 4032}, + {508: 2710, 732: 4031}, {27, 27, 4: 27, 27, 27, 13: 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 47: 27, 70: 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 479: 27, 27, 482: 27, 503: 27, 506: 27, 646: 27, 648: 27, 656: 27}, {28, 28, 4: 28, 28, 28, 13: 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 47: 28, 70: 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 479: 28, 28, 482: 28, 503: 28, 506: 28, 646: 28, 648: 28, 656: 28}, // 1520 - {1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 474: 1136, 1136, 1136, 1136, 1136, 480: 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 491: 1136, 493: 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 502: 1136, 1136, 1136, 1136, 509: 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 544: 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 585: 1136}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 3889, 2731, 2732, 2730, 736: 4030}, - {47: 4031}, - {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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 474: 1137, 1137, 1137, 1137, 1137, 480: 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137, 491: 1137, 493: 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137, 502: 1137, 1137, 1137, 1137, 509: 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, 1137, 1137, 1137, 1137, 1137, 1137, 544: 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137, 585: 1137}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 2724, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 4033}, + {1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 474: 1140, 1140, 1140, 1140, 1140, 480: 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 491: 1140, 493: 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 502: 1140, 1140, 1140, 1140, 509: 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 544: 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 585: 1140}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 3894, 2736, 2737, 2735, 736: 4035}, + {47: 4036}, + {1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 474: 1141, 1141, 1141, 1141, 1141, 480: 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 491: 1141, 493: 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 502: 1141, 1141, 1141, 1141, 509: 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 544: 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 585: 1141}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 2729, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 4038}, // 1525 - {47: 4034, 478: 4035, 505: 3313, 509: 3311, 3312, 3310, 3308, 733: 3309, 3307}, - {1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 474: 1153, 1153, 1153, 1153, 1153, 480: 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 491: 1153, 493: 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 502: 1153, 1153, 1153, 1153, 509: 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 544: 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 585: 1153}, - {506: 3779, 543: 4037, 646: 3778, 899: 4036}, - {473: 3794, 762: 4040}, - {473: 3794, 762: 4038}, + {47: 4039, 478: 4040, 505: 3318, 509: 3316, 3317, 3315, 3313, 733: 3314, 3312}, + {1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 474: 1157, 1157, 1157, 1157, 1157, 480: 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 491: 1157, 493: 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 502: 1157, 1157, 1157, 1157, 509: 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 544: 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 585: 1157}, + {506: 3784, 543: 4042, 646: 3783, 899: 4041}, + {473: 3799, 762: 4045}, + {473: 3799, 762: 4043}, // 1530 - {47: 4039}, - {1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 474: 1151, 1151, 1151, 1151, 1151, 480: 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 491: 1151, 493: 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 502: 1151, 1151, 1151, 1151, 509: 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 544: 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 585: 1151}, - {47: 4041}, - {1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 474: 1152, 1152, 1152, 1152, 1152, 480: 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 491: 1152, 493: 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 502: 1152, 1152, 1152, 1152, 509: 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 544: 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 585: 1152}, - {1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 474: 1175, 1175, 1175, 1175, 1175, 480: 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 491: 1175, 493: 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 502: 1175, 1175, 1175, 1175, 509: 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 544: 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 585: 1175}, + {47: 4044}, + {1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 474: 1155, 1155, 1155, 1155, 1155, 480: 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 491: 1155, 493: 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 502: 1155, 1155, 1155, 1155, 509: 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 544: 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 585: 1155}, + {47: 4046}, + {1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 474: 1156, 1156, 1156, 1156, 1156, 480: 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 491: 1156, 493: 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 502: 1156, 1156, 1156, 1156, 509: 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 544: 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 585: 1156}, + {1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 474: 1179, 1179, 1179, 1179, 1179, 480: 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 491: 1179, 493: 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 502: 1179, 1179, 1179, 1179, 509: 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 544: 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 585: 1179}, // 1535 + {1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 474: 1180, 1180, 1180, 1180, 1180, 480: 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 491: 1180, 493: 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 502: 1180, 1180, 1180, 1180, 509: 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 544: 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 585: 1180}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 1913, 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 2729, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 3561, 777: 3725, 825: 4050}, + {47: 4051}, {1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 474: 1176, 1176, 1176, 1176, 1176, 480: 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 491: 1176, 493: 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 502: 1176, 1176, 1176, 1176, 509: 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 544: 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 585: 1176}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 1909, 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 2724, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 3556, 777: 3720, 825: 4045}, - {47: 4046}, - {1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 474: 1172, 1172, 1172, 1172, 1172, 480: 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 491: 1172, 493: 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 502: 1172, 1172, 1172, 1172, 509: 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 544: 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 585: 1172}, - {1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 474: 1177, 1177, 1177, 1177, 1177, 480: 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 491: 1177, 493: 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 502: 1177, 1177, 1177, 1177, 509: 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 544: 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 585: 1177}, + {1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 474: 1181, 1181, 1181, 1181, 1181, 480: 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 491: 1181, 493: 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 502: 1181, 1181, 1181, 1181, 509: 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 544: 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 585: 1181}, // 1540 - {2: 1231, 1231, 1231, 1231, 1231, 8: 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 48: 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 473: 1231, 475: 1231, 1231, 1231, 479: 1231, 483: 1231, 1231, 1231, 1231, 1231, 492: 1231, 501: 1231, 506: 1231, 1231, 1231, 543: 1231, 566: 1231, 1231, 1231, 570: 1231, 1231, 1231, 574: 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 583: 1231, 1231, 587: 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 639: 1231, 1231, 1231, 647: 1231, 650: 3514, 744: 3512, 3513, 783: 3515, 786: 3516, 813: 4049, 815: 3517}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 2724, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 4050}, - {47: 4051, 505: 3313, 509: 3311, 3312, 3310, 3308, 733: 3309, 3307}, - {950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 474: 950, 950, 950, 950, 950, 480: 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 491: 950, 493: 950, 950, 950, 950, 950, 950, 950, 950, 502: 950, 950, 950, 950, 509: 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 544: 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 585: 950, 740: 3330, 746: 3522, 764: 4052}, - {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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 474: 1134, 1134, 1134, 1134, 1134, 480: 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 491: 1134, 493: 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 502: 1134, 1134, 1134, 1134, 509: 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, 1134, 1134, 1134, 1134, 544: 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 585: 1134}, + {2: 1235, 1235, 1235, 1235, 1235, 8: 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 48: 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 473: 1235, 475: 1235, 1235, 1235, 479: 1235, 483: 1235, 1235, 1235, 1235, 1235, 492: 1235, 501: 1235, 506: 1235, 1235, 1235, 543: 1235, 566: 1235, 1235, 1235, 570: 1235, 1235, 1235, 574: 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 583: 1235, 1235, 587: 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 639: 1235, 1235, 1235, 647: 1235, 650: 3519, 744: 3517, 3518, 783: 3520, 786: 3521, 813: 4054, 815: 3522}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 2729, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 4055}, + {47: 4056, 505: 3318, 509: 3316, 3317, 3315, 3313, 733: 3314, 3312}, + {954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 474: 954, 954, 954, 954, 954, 480: 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 491: 954, 493: 954, 954, 954, 954, 954, 954, 954, 954, 502: 954, 954, 954, 954, 509: 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 544: 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 585: 954, 740: 3335, 746: 3527, 764: 4057}, + {1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 474: 1138, 1138, 1138, 1138, 1138, 480: 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 491: 1138, 493: 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 502: 1138, 1138, 1138, 1138, 509: 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 544: 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 585: 1138}, // 1545 - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 1909, 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 2724, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 3556, 777: 3720, 825: 4054}, - {47: 4055}, - {1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 474: 1105, 1105, 1105, 1105, 1105, 480: 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 491: 1105, 493: 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 502: 1105, 1105, 1105, 1105, 509: 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 544: 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 585: 1105}, - {147: 2291, 170: 2291, 188: 2291, 492: 2291, 518: 2291, 544: 2291, 555: 2291, 564: 2291, 2291, 571: 2291, 2291, 584: 2291}, - {147: 2290, 170: 2290, 188: 2290, 492: 2290, 518: 2290, 544: 2290, 555: 2290, 564: 2290, 2290, 571: 2290, 2290, 584: 2290}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 1913, 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 2729, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 3561, 777: 3725, 825: 4059}, + {47: 4060}, + {1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 474: 1109, 1109, 1109, 1109, 1109, 480: 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 491: 1109, 493: 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 502: 1109, 1109, 1109, 1109, 509: 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 544: 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 585: 1109}, + {147: 2295, 170: 2295, 188: 2295, 492: 2295, 518: 2295, 544: 2295, 555: 2295, 564: 2295, 2295, 571: 2295, 2295, 584: 2295}, + {147: 2294, 170: 2294, 188: 2294, 492: 2294, 518: 2294, 544: 2294, 555: 2294, 564: 2294, 2294, 571: 2294, 2294, 584: 2294}, // 1550 - {2: 1891, 1891, 1891, 1891, 1891, 8: 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 48: 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 473: 1891, 475: 1891, 1891, 479: 1891, 483: 1891, 1891, 1891, 1891, 1891, 492: 1891, 501: 1891, 506: 1891, 1891, 1891, 543: 1891, 566: 1891, 1891, 1891, 570: 1891, 1891, 1891, 574: 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 583: 1891, 1891, 587: 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 639: 1891, 1891, 1891}, - {518: 4083, 544: 4082, 555: 4081, 564: 4067, 4068, 1109: 4084}, - {473: 1887}, - {2: 1885, 1885, 1885, 1885, 1885, 8: 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 48: 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 473: 1885, 475: 1885, 1885, 479: 1885, 483: 1885, 1885, 1885, 1885, 1885, 492: 1885, 501: 1885, 506: 1885, 1885, 1885, 543: 1885, 566: 1885, 1885, 1885, 570: 1885, 1885, 1885, 574: 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 583: 1885, 1885, 587: 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 639: 1885, 1885, 1885}, - {2: 1883, 1883, 1883, 1883, 1883, 8: 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 48: 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 473: 1883, 475: 1883, 1883, 479: 1883, 483: 1883, 1883, 1883, 1883, 1883, 492: 1883, 501: 1883, 506: 1883, 1883, 1883, 543: 1883, 566: 1883, 1883, 1883, 570: 1883, 1883, 1883, 574: 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 583: 1883, 1883, 587: 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 639: 1883, 1883, 1883}, + {2: 1895, 1895, 1895, 1895, 1895, 8: 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 48: 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 473: 1895, 475: 1895, 1895, 479: 1895, 483: 1895, 1895, 1895, 1895, 1895, 492: 1895, 501: 1895, 506: 1895, 1895, 1895, 543: 1895, 566: 1895, 1895, 1895, 570: 1895, 1895, 1895, 574: 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 583: 1895, 1895, 587: 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 639: 1895, 1895, 1895}, + {518: 4088, 544: 4087, 555: 4086, 564: 4072, 4073, 1109: 4089}, + {473: 1891}, + {2: 1889, 1889, 1889, 1889, 1889, 8: 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 48: 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 473: 1889, 475: 1889, 1889, 479: 1889, 483: 1889, 1889, 1889, 1889, 1889, 492: 1889, 501: 1889, 506: 1889, 1889, 1889, 543: 1889, 566: 1889, 1889, 1889, 570: 1889, 1889, 1889, 574: 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 583: 1889, 1889, 587: 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 1889, 639: 1889, 1889, 1889}, + {2: 1887, 1887, 1887, 1887, 1887, 8: 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 48: 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 473: 1887, 475: 1887, 1887, 479: 1887, 483: 1887, 1887, 1887, 1887, 1887, 492: 1887, 501: 1887, 506: 1887, 1887, 1887, 543: 1887, 566: 1887, 1887, 1887, 570: 1887, 1887, 1887, 574: 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 583: 1887, 1887, 587: 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 639: 1887, 1887, 1887}, // 1555 - {473: 4077, 708: 4078}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 3317, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 4074}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 3317, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3316, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 4070, 3222, 3302, 3221, 3218}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 3317, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3316, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 4069, 3222, 3302, 3221, 3218}, - {2: 1872, 1872, 1872, 1872, 1872, 8: 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 48: 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 473: 1872, 475: 1872, 1872, 479: 1872, 483: 1872, 1872, 1872, 1872, 1872, 492: 1872, 501: 1872, 506: 1872, 1872, 1872, 543: 1872, 566: 1872, 1872, 1872, 570: 1872, 1872, 1872, 574: 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 583: 1872, 1872, 587: 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 639: 1872, 1872, 1872}, + {473: 4082, 708: 4083}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 3322, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 4079}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 3322, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3321, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 4075, 3227, 3307, 3226, 3223}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 3322, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3321, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 4074, 3227, 3307, 3226, 3223}, + {2: 1876, 1876, 1876, 1876, 1876, 8: 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 48: 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 473: 1876, 475: 1876, 1876, 479: 1876, 483: 1876, 1876, 1876, 1876, 1876, 492: 1876, 501: 1876, 506: 1876, 1876, 1876, 543: 1876, 566: 1876, 1876, 1876, 570: 1876, 1876, 1876, 574: 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 583: 1876, 1876, 587: 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 639: 1876, 1876, 1876}, // 1560 - {2: 1871, 1871, 1871, 1871, 1871, 8: 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 48: 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 473: 1871, 475: 1871, 1871, 479: 1871, 483: 1871, 1871, 1871, 1871, 1871, 492: 1871, 501: 1871, 506: 1871, 1871, 1871, 543: 1871, 566: 1871, 1871, 1871, 570: 1871, 1871, 1871, 574: 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 583: 1871, 1871, 587: 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 639: 1871, 1871, 1871}, - {1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 474: 1874, 1874, 478: 1874, 480: 1874, 1874, 3318, 1874, 1874, 488: 1874, 1874, 491: 1874, 493: 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 502: 1874, 1874, 1874, 1874, 509: 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 519: 1874, 1874, 1874, 1874, 524: 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 545: 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 585: 3319}, - {1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 4072, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 474: 1870, 1870, 478: 1870, 480: 1870, 1870, 3318, 1870, 1870, 488: 1870, 1870, 491: 1870, 493: 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 502: 1870, 1870, 1870, 1870, 509: 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 519: 1870, 1870, 1870, 1870, 524: 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 545: 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 585: 3319, 1235: 4071}, - {1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 474: 1875, 1875, 478: 1875, 480: 1875, 1875, 483: 1875, 1875, 488: 1875, 1875, 491: 1875, 493: 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 502: 1875, 1875, 1875, 1875, 509: 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 519: 1875, 1875, 1875, 1875, 524: 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 545: 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875}, - {475: 4073}, + {2: 1875, 1875, 1875, 1875, 1875, 8: 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 48: 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 473: 1875, 475: 1875, 1875, 479: 1875, 483: 1875, 1875, 1875, 1875, 1875, 492: 1875, 501: 1875, 506: 1875, 1875, 1875, 543: 1875, 566: 1875, 1875, 1875, 570: 1875, 1875, 1875, 574: 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 583: 1875, 1875, 587: 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 639: 1875, 1875, 1875}, + {1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 474: 1878, 1878, 478: 1878, 480: 1878, 1878, 3323, 1878, 1878, 488: 1878, 1878, 491: 1878, 493: 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 502: 1878, 1878, 1878, 1878, 509: 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 519: 1878, 1878, 1878, 1878, 524: 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 545: 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 585: 3324}, + {1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 4077, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 474: 1874, 1874, 478: 1874, 480: 1874, 1874, 3323, 1874, 1874, 488: 1874, 1874, 491: 1874, 493: 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 502: 1874, 1874, 1874, 1874, 509: 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 519: 1874, 1874, 1874, 1874, 524: 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 545: 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 585: 3324, 1236: 4076}, + {1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 474: 1879, 1879, 478: 1879, 480: 1879, 1879, 483: 1879, 1879, 488: 1879, 1879, 491: 1879, 493: 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 502: 1879, 1879, 1879, 1879, 509: 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 519: 1879, 1879, 1879, 1879, 524: 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 545: 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879, 1879}, + {475: 4078}, // 1565 - {1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 474: 1869, 1869, 478: 1869, 480: 1869, 1869, 483: 1869, 1869, 488: 1869, 1869, 491: 1869, 493: 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 502: 1869, 1869, 1869, 1869, 509: 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 519: 1869, 1869, 1869, 1869, 524: 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 545: 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869}, - {485: 3654, 3655, 3660, 505: 4075, 523: 3656, 556: 3657, 3658, 3651, 3661, 3650, 3659, 3652, 3653}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 3317, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 4076}, - {1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 474: 1876, 1876, 478: 1876, 480: 1876, 1876, 483: 1876, 1876, 488: 1876, 1876, 491: 1876, 493: 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 502: 1876, 1876, 1876, 1876, 509: 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 519: 1876, 1876, 1876, 1876, 524: 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 545: 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876, 1876}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 2558, 3208, 3227, 2724, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3847, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 2722, 2556, 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 645: 2552, 647: 2725, 663: 3213, 2731, 2732, 2730, 708: 3846, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 3556, 747: 3849, 2553, 2554, 2555, 2564, 755: 2562, 2561, 2560, 3848, 3851, 3850, 777: 4079}, + {1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 474: 1873, 1873, 478: 1873, 480: 1873, 1873, 483: 1873, 1873, 488: 1873, 1873, 491: 1873, 493: 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 502: 1873, 1873, 1873, 1873, 509: 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 519: 1873, 1873, 1873, 1873, 524: 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 545: 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873, 1873}, + {485: 3659, 3660, 3665, 505: 4080, 523: 3661, 556: 3662, 3663, 3656, 3666, 3655, 3664, 3657, 3658}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 3322, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 4081}, + {1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 474: 1880, 1880, 478: 1880, 480: 1880, 1880, 483: 1880, 1880, 488: 1880, 1880, 491: 1880, 493: 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 502: 1880, 1880, 1880, 1880, 509: 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 519: 1880, 1880, 1880, 1880, 524: 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 545: 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 2563, 3213, 3232, 2729, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3852, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 2727, 2561, 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 645: 2557, 647: 2730, 663: 3218, 2736, 2737, 2735, 708: 3851, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 3561, 747: 3854, 2558, 2559, 2560, 2569, 755: 2567, 2566, 2565, 3853, 3856, 3855, 777: 4084}, // 1570 - {1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 474: 1877, 1877, 478: 1877, 480: 1877, 1877, 483: 1877, 1877, 488: 1877, 1877, 491: 1877, 493: 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 502: 1877, 1877, 1877, 1877, 509: 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 519: 1877, 1877, 1877, 1877, 524: 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 545: 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877, 1877}, - {7: 3558, 47: 4080}, - {1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 474: 1878, 1878, 478: 1878, 480: 1878, 1878, 483: 1878, 1878, 488: 1878, 1878, 491: 1878, 493: 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 502: 1878, 1878, 1878, 1878, 509: 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 519: 1878, 1878, 1878, 1878, 524: 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 545: 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878, 1878}, - {2: 1890, 1890, 1890, 1890, 1890, 8: 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 48: 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 473: 1890, 475: 1890, 1890, 479: 1890, 483: 1890, 1890, 1890, 1890, 1890, 492: 1890, 501: 1890, 506: 1890, 1890, 1890, 543: 1890, 566: 1890, 1890, 1890, 570: 1890, 1890, 1890, 574: 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 583: 1890, 1890, 587: 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 639: 1890, 1890, 1890}, - {473: 1886}, + {1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 474: 1881, 1881, 478: 1881, 480: 1881, 1881, 483: 1881, 1881, 488: 1881, 1881, 491: 1881, 493: 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 502: 1881, 1881, 1881, 1881, 509: 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 519: 1881, 1881, 1881, 1881, 524: 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 545: 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881}, + {7: 3563, 47: 4085}, + {1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 474: 1882, 1882, 478: 1882, 480: 1882, 1882, 483: 1882, 1882, 488: 1882, 1882, 491: 1882, 493: 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 502: 1882, 1882, 1882, 1882, 509: 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 519: 1882, 1882, 1882, 1882, 524: 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 545: 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882}, + {2: 1894, 1894, 1894, 1894, 1894, 8: 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 48: 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 473: 1894, 475: 1894, 1894, 479: 1894, 483: 1894, 1894, 1894, 1894, 1894, 492: 1894, 501: 1894, 506: 1894, 1894, 1894, 543: 1894, 566: 1894, 1894, 1894, 570: 1894, 1894, 1894, 574: 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 583: 1894, 1894, 587: 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 639: 1894, 1894, 1894}, + {473: 1890}, // 1575 - {2: 1884, 1884, 1884, 1884, 1884, 8: 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 48: 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 473: 1884, 475: 1884, 1884, 479: 1884, 483: 1884, 1884, 1884, 1884, 1884, 492: 1884, 501: 1884, 506: 1884, 1884, 1884, 543: 1884, 566: 1884, 1884, 1884, 570: 1884, 1884, 1884, 574: 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 583: 1884, 1884, 587: 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 639: 1884, 1884, 1884}, - {2: 1882, 1882, 1882, 1882, 1882, 8: 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 48: 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 473: 1882, 475: 1882, 1882, 479: 1882, 483: 1882, 1882, 1882, 1882, 1882, 492: 1882, 501: 1882, 506: 1882, 1882, 1882, 543: 1882, 566: 1882, 1882, 1882, 570: 1882, 1882, 1882, 574: 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 583: 1882, 1882, 587: 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 639: 1882, 1882, 1882}, - {170: 4108, 492: 4109, 571: 4107, 4106}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 4100, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 4101, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 4099, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 650: 4102, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 4097, 1170: 4098}, - {2: 1899, 1899, 1899, 1899, 1899, 8: 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 48: 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 473: 1899, 475: 1899, 1899, 479: 1899, 483: 1899, 1899, 1899, 1899, 1899, 492: 1899, 501: 1899, 506: 1899, 1899, 1899, 543: 1899, 566: 1899, 1899, 1899, 570: 1899, 1899, 1899, 574: 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 583: 1899, 1899, 587: 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 639: 1899, 1899, 1899, 650: 1899}, + {2: 1888, 1888, 1888, 1888, 1888, 8: 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 48: 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 473: 1888, 475: 1888, 1888, 479: 1888, 483: 1888, 1888, 1888, 1888, 1888, 492: 1888, 501: 1888, 506: 1888, 1888, 1888, 543: 1888, 566: 1888, 1888, 1888, 570: 1888, 1888, 1888, 574: 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 583: 1888, 1888, 587: 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 639: 1888, 1888, 1888}, + {2: 1886, 1886, 1886, 1886, 1886, 8: 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 48: 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 473: 1886, 475: 1886, 1886, 479: 1886, 483: 1886, 1886, 1886, 1886, 1886, 492: 1886, 501: 1886, 506: 1886, 1886, 1886, 543: 1886, 566: 1886, 1886, 1886, 570: 1886, 1886, 1886, 574: 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 583: 1886, 1886, 587: 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 1886, 639: 1886, 1886, 1886}, + {170: 4113, 492: 4114, 571: 4112, 4111}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 4105, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 4106, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 4104, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 650: 4107, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 4102, 1171: 4103}, + {2: 1903, 1903, 1903, 1903, 1903, 8: 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 48: 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 473: 1903, 475: 1903, 1903, 479: 1903, 483: 1903, 1903, 1903, 1903, 1903, 492: 1903, 501: 1903, 506: 1903, 1903, 1903, 543: 1903, 566: 1903, 1903, 1903, 570: 1903, 1903, 1903, 574: 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 583: 1903, 1903, 587: 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 639: 1903, 1903, 1903, 650: 1903}, // 1580 + {2: 1902, 1902, 1902, 1902, 1902, 8: 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 48: 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 473: 1902, 475: 1902, 1902, 479: 1902, 483: 1902, 1902, 1902, 1902, 1902, 492: 1902, 501: 1902, 506: 1902, 1902, 1902, 543: 1902, 566: 1902, 1902, 1902, 570: 1902, 1902, 1902, 574: 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 583: 1902, 1902, 587: 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 639: 1902, 1902, 1902, 650: 1902}, + {2: 1901, 1901, 1901, 1901, 1901, 8: 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 48: 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 473: 1901, 475: 1901, 1901, 479: 1901, 483: 1901, 1901, 1901, 1901, 1901, 492: 1901, 501: 1901, 506: 1901, 1901, 1901, 543: 1901, 566: 1901, 1901, 1901, 570: 1901, 1901, 1901, 574: 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 583: 1901, 1901, 587: 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 639: 1901, 1901, 1901, 650: 1901}, + {2: 1900, 1900, 1900, 1900, 1900, 8: 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 48: 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 473: 1900, 475: 1900, 1900, 479: 1900, 483: 1900, 1900, 1900, 1900, 1900, 492: 1900, 501: 1900, 506: 1900, 1900, 1900, 543: 1900, 566: 1900, 1900, 1900, 570: 1900, 1900, 1900, 574: 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 583: 1900, 1900, 587: 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 639: 1900, 1900, 1900, 650: 1900}, + {2: 1899, 1899, 1899, 1899, 1899, 8: 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 48: 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 473: 1899, 475: 1899, 1899, 479: 1899, 483: 1899, 1899, 1899, 1899, 1899, 492: 1899, 501: 1899, 506: 1899, 1899, 1899, 543: 1899, 566: 1899, 1899, 1899, 570: 1899, 1899, 1899, 574: 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 583: 1899, 1899, 587: 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 639: 1899, 1899, 1899, 650: 1899}, {2: 1898, 1898, 1898, 1898, 1898, 8: 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 48: 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 473: 1898, 475: 1898, 1898, 479: 1898, 483: 1898, 1898, 1898, 1898, 1898, 492: 1898, 501: 1898, 506: 1898, 1898, 1898, 543: 1898, 566: 1898, 1898, 1898, 570: 1898, 1898, 1898, 574: 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 583: 1898, 1898, 587: 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 639: 1898, 1898, 1898, 650: 1898}, + // 1585 {2: 1897, 1897, 1897, 1897, 1897, 8: 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 48: 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 473: 1897, 475: 1897, 1897, 479: 1897, 483: 1897, 1897, 1897, 1897, 1897, 492: 1897, 501: 1897, 506: 1897, 1897, 1897, 543: 1897, 566: 1897, 1897, 1897, 570: 1897, 1897, 1897, 574: 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 583: 1897, 1897, 587: 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 639: 1897, 1897, 1897, 650: 1897}, {2: 1896, 1896, 1896, 1896, 1896, 8: 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 48: 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 473: 1896, 475: 1896, 1896, 479: 1896, 483: 1896, 1896, 1896, 1896, 1896, 492: 1896, 501: 1896, 506: 1896, 1896, 1896, 543: 1896, 566: 1896, 1896, 1896, 570: 1896, 1896, 1896, 574: 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 583: 1896, 1896, 587: 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 639: 1896, 1896, 1896, 650: 1896}, - {2: 1895, 1895, 1895, 1895, 1895, 8: 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 48: 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 473: 1895, 475: 1895, 1895, 479: 1895, 483: 1895, 1895, 1895, 1895, 1895, 492: 1895, 501: 1895, 506: 1895, 1895, 1895, 543: 1895, 566: 1895, 1895, 1895, 570: 1895, 1895, 1895, 574: 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 583: 1895, 1895, 587: 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 639: 1895, 1895, 1895, 650: 1895}, - {2: 1894, 1894, 1894, 1894, 1894, 8: 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 48: 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 473: 1894, 475: 1894, 1894, 479: 1894, 483: 1894, 1894, 1894, 1894, 1894, 492: 1894, 501: 1894, 506: 1894, 1894, 1894, 543: 1894, 566: 1894, 1894, 1894, 570: 1894, 1894, 1894, 574: 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 583: 1894, 1894, 587: 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 639: 1894, 1894, 1894, 650: 1894}, - // 1585 - {2: 1893, 1893, 1893, 1893, 1893, 8: 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 48: 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 473: 1893, 475: 1893, 1893, 479: 1893, 483: 1893, 1893, 1893, 1893, 1893, 492: 1893, 501: 1893, 506: 1893, 1893, 1893, 543: 1893, 566: 1893, 1893, 1893, 570: 1893, 1893, 1893, 574: 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 583: 1893, 1893, 587: 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 639: 1893, 1893, 1893, 650: 1893}, - {2: 1892, 1892, 1892, 1892, 1892, 8: 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 48: 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 473: 1892, 475: 1892, 1892, 479: 1892, 483: 1892, 1892, 1892, 1892, 1892, 492: 1892, 501: 1892, 506: 1892, 1892, 1892, 543: 1892, 566: 1892, 1892, 1892, 570: 1892, 1892, 1892, 574: 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 583: 1892, 1892, 587: 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 639: 1892, 1892, 1892, 650: 1892}, - {170: 1889, 476: 4057, 4056, 492: 1889, 571: 1889, 1889, 809: 4096}, - {170: 1888, 492: 1888, 571: 1888, 1888}, - {1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 474: 1903, 1903, 478: 1903, 480: 1903, 1903, 483: 1903, 1903, 488: 1903, 1903, 491: 1903, 493: 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 502: 1903, 1903, 1903, 1903, 509: 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 519: 1903, 1903, 1903, 1903, 524: 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 545: 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903, 1903}, + {170: 1893, 476: 4062, 4061, 492: 1893, 571: 1893, 1893, 809: 4101}, + {170: 1892, 492: 1892, 571: 1892, 1892}, + {1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 474: 1907, 1907, 478: 1907, 480: 1907, 1907, 483: 1907, 1907, 488: 1907, 1907, 491: 1907, 493: 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 502: 1907, 1907, 1907, 1907, 509: 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 519: 1907, 1907, 1907, 1907, 524: 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 545: 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907}, // 1590 - {473: 2559, 708: 4105}, - {739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 474: 739, 739, 739, 739, 739, 480: 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 491: 739, 493: 739, 739, 739, 739, 739, 739, 739, 739, 502: 739, 739, 739, 739, 509: 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 544: 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, 585: 739, 658: 4103}, - {1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1881, 1704, 1704, 1704, 1704, 1704, 480: 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 491: 1704, 493: 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 502: 1704, 1704, 1704, 1704, 509: 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 544: 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 585: 1704, 651: 1704, 654: 1704, 1704}, - {1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1880, 1703, 1703, 1703, 1703, 1703, 480: 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 491: 1703, 493: 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 502: 1703, 1703, 1703, 1703, 509: 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 544: 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 585: 1703, 651: 1703, 654: 1703, 1703}, - {473: 1879}, + {473: 2564, 708: 4110}, + {743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 474: 743, 743, 743, 743, 743, 480: 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 491: 743, 493: 743, 743, 743, 743, 743, 743, 743, 743, 502: 743, 743, 743, 743, 509: 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 544: 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 585: 743, 658: 4108}, + {1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1885, 1708, 1708, 1708, 1708, 1708, 480: 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 491: 1708, 493: 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 502: 1708, 1708, 1708, 1708, 509: 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 544: 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 585: 1708, 651: 1708, 654: 1708, 1708}, + {1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1884, 1707, 1707, 1707, 1707, 1707, 480: 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 491: 1707, 493: 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 502: 1707, 1707, 1707, 1707, 509: 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 544: 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 585: 1707, 651: 1707, 654: 1707, 1707}, + {473: 1883}, // 1595 - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 3317, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 4104}, - {1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 474: 1901, 1901, 478: 1901, 480: 1901, 1901, 483: 1901, 1901, 488: 1901, 1901, 491: 1901, 493: 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 502: 1901, 1901, 1901, 1901, 509: 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 519: 1901, 1901, 1901, 1901, 524: 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 545: 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901}, - {1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 474: 1902, 1902, 478: 1902, 480: 1902, 1902, 483: 1902, 1902, 488: 1902, 1902, 491: 1902, 493: 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 502: 1902, 1902, 1902, 1902, 509: 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 519: 1902, 1902, 1902, 1902, 524: 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 545: 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902}, - {1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 474: 1928, 1928, 478: 1928, 480: 1928, 1928, 483: 1928, 1928, 488: 1928, 1928, 491: 1928, 493: 1928, 1928, 1928, 1928, 1928, 499: 1928, 1928, 502: 1928, 1928, 1928, 1928, 509: 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 519: 1928, 1928, 1928, 1928, 524: 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 545: 1928, 1928}, - {1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 474: 1927, 1927, 478: 1927, 480: 1927, 1927, 483: 1927, 1927, 488: 1927, 1927, 491: 1927, 493: 1927, 1927, 1927, 1927, 1927, 499: 1927, 1927, 502: 1927, 1927, 1927, 1927, 509: 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 519: 1927, 1927, 1927, 1927, 524: 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 545: 1927, 1927}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 3322, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 4109}, + {1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 474: 1905, 1905, 478: 1905, 480: 1905, 1905, 483: 1905, 1905, 488: 1905, 1905, 491: 1905, 493: 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 502: 1905, 1905, 1905, 1905, 509: 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 519: 1905, 1905, 1905, 1905, 524: 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 545: 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905}, + {1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 474: 1906, 1906, 478: 1906, 480: 1906, 1906, 483: 1906, 1906, 488: 1906, 1906, 491: 1906, 493: 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 502: 1906, 1906, 1906, 1906, 509: 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 519: 1906, 1906, 1906, 1906, 524: 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 545: 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906}, + {1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 474: 1932, 1932, 478: 1932, 480: 1932, 1932, 483: 1932, 1932, 488: 1932, 1932, 491: 1932, 493: 1932, 1932, 1932, 1932, 1932, 499: 1932, 1932, 502: 1932, 1932, 1932, 1932, 509: 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 519: 1932, 1932, 1932, 1932, 524: 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 545: 1932, 1932}, + {1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 474: 1931, 1931, 478: 1931, 480: 1931, 1931, 483: 1931, 1931, 488: 1931, 1931, 491: 1931, 493: 1931, 1931, 1931, 1931, 1931, 499: 1931, 1931, 502: 1931, 1931, 1931, 1931, 509: 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 519: 1931, 1931, 1931, 1931, 524: 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 545: 1931, 1931}, // 1600 - {1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 474: 1926, 1926, 478: 1926, 480: 1926, 1926, 483: 1926, 1926, 488: 1926, 1926, 491: 1926, 493: 1926, 1926, 1926, 1926, 1926, 499: 1926, 1926, 502: 1926, 1926, 1926, 1926, 509: 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 519: 1926, 1926, 1926, 1926, 524: 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 545: 1926, 1926}, - {1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 474: 1904, 1904, 478: 1904, 480: 1904, 1904, 483: 1904, 1904, 488: 1904, 1904, 491: 1904, 493: 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 502: 1904, 1904, 1904, 1904, 509: 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 519: 1904, 1904, 1904, 1904, 524: 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 545: 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 4111, 2731, 2732, 2730, 742: 4112, 807: 4113}, - {2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 473: 2314, 490: 2314, 493: 2314, 498: 2314, 504: 2314, 506: 2314, 529: 2314, 2314, 543: 2314, 646: 2314, 651: 4134, 668: 2314, 2314, 671: 2314, 676: 2314, 2314, 679: 2314, 2314, 2314, 2314, 2314, 2314, 687: 2314, 689: 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 2314, 704: 2314, 2314, 2314, 2314}, - {7: 2311, 47: 2311}, + {1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 474: 1930, 1930, 478: 1930, 480: 1930, 1930, 483: 1930, 1930, 488: 1930, 1930, 491: 1930, 493: 1930, 1930, 1930, 1930, 1930, 499: 1930, 1930, 502: 1930, 1930, 1930, 1930, 509: 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 519: 1930, 1930, 1930, 1930, 524: 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 545: 1930, 1930}, + {1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 474: 1908, 1908, 478: 1908, 480: 1908, 1908, 483: 1908, 1908, 488: 1908, 1908, 491: 1908, 493: 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 502: 1908, 1908, 1908, 1908, 509: 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 519: 1908, 1908, 1908, 1908, 524: 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 545: 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908, 1908}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 4116, 2736, 2737, 2735, 743: 4117, 807: 4118}, + {2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 473: 2318, 490: 2318, 493: 2318, 498: 2318, 504: 2318, 506: 2318, 529: 2318, 2318, 543: 2318, 646: 2318, 651: 4139, 668: 2318, 2318, 671: 2318, 676: 2318, 2318, 679: 2318, 2318, 2318, 2318, 2318, 2318, 687: 2318, 689: 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 2318, 704: 2318, 2318, 2318, 2318}, + {7: 2315, 47: 2315}, // 1605 - {7: 4114, 47: 4115}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 4111, 2731, 2732, 2730, 742: 4133}, - {305: 4116}, - {473: 4117}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 3317, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 4118}, + {7: 4119, 47: 4120}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 4116, 2736, 2737, 2735, 743: 4138}, + {305: 4121}, + {473: 4122}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 3322, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 4123}, // 1610 - {47: 1922, 474: 4121, 485: 3654, 3655, 3660, 523: 3656, 544: 4120, 556: 3657, 3658, 3651, 3661, 3650, 3659, 3652, 3653, 1216: 4119}, - {47: 4132}, - {225: 4125, 519: 4124}, - {137: 4122}, - {249: 4123}, + {47: 1926, 474: 4126, 485: 3659, 3660, 3665, 523: 3661, 544: 4125, 556: 3662, 3663, 3656, 3666, 3655, 3664, 3657, 3658, 1217: 4124}, + {47: 4137}, + {225: 4130, 519: 4129}, + {137: 4127}, + {249: 4128}, // 1615 - {47: 1918}, - {350: 4127}, - {181: 4126}, - {47: 1919}, - {181: 4128}, + {47: 1922}, + {350: 4132}, + {181: 4131}, + {47: 1923}, + {181: 4133}, // 1620 - {47: 1921, 474: 4129}, - {137: 4130}, - {249: 4131}, - {47: 1920}, - {1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 474: 1929, 1929, 478: 1929, 480: 1929, 1929, 483: 1929, 1929, 488: 1929, 1929, 491: 1929, 493: 1929, 1929, 1929, 1929, 1929, 499: 1929, 1929, 502: 1929, 1929, 1929, 1929, 509: 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 519: 1929, 1929, 1929, 1929, 524: 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 545: 1929, 1929}, + {47: 1925, 474: 4134}, + {137: 4135}, + {249: 4136}, + {47: 1924}, + {1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 474: 1933, 1933, 478: 1933, 480: 1933, 1933, 483: 1933, 1933, 488: 1933, 1933, 491: 1933, 493: 1933, 1933, 1933, 1933, 1933, 499: 1933, 1933, 502: 1933, 1933, 1933, 1933, 509: 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 519: 1933, 1933, 1933, 1933, 524: 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 545: 1933, 1933}, // 1625 - {7: 2310, 47: 2310}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 4135, 2731, 2732, 2730}, - {2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 473: 2313, 490: 2313, 493: 2313, 498: 2313, 504: 2313, 506: 2313, 529: 2313, 2313, 543: 2313, 646: 2313, 651: 4136, 668: 2313, 2313, 671: 2313, 676: 2313, 2313, 679: 2313, 2313, 2313, 2313, 2313, 2313, 687: 2313, 689: 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 704: 2313, 2313, 2313, 2313}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 4137, 2731, 2732, 2730}, - {2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 473: 2312, 490: 2312, 493: 2312, 498: 2312, 504: 2312, 506: 2312, 529: 2312, 2312, 543: 2312, 646: 2312, 668: 2312, 2312, 671: 2312, 676: 2312, 2312, 679: 2312, 2312, 2312, 2312, 2312, 2312, 687: 2312, 689: 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 704: 2312, 2312, 2312, 2312}, + {7: 2314, 47: 2314}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 4140, 2736, 2737, 2735}, + {2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 473: 2317, 490: 2317, 493: 2317, 498: 2317, 504: 2317, 506: 2317, 529: 2317, 2317, 543: 2317, 646: 2317, 651: 4141, 668: 2317, 2317, 671: 2317, 676: 2317, 2317, 679: 2317, 2317, 2317, 2317, 2317, 2317, 687: 2317, 689: 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 704: 2317, 2317, 2317, 2317}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 4142, 2736, 2737, 2735}, + {2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 473: 2316, 490: 2316, 493: 2316, 498: 2316, 504: 2316, 506: 2316, 529: 2316, 2316, 543: 2316, 646: 2316, 668: 2316, 2316, 671: 2316, 676: 2316, 2316, 679: 2316, 2316, 2316, 2316, 2316, 2316, 687: 2316, 689: 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 704: 2316, 2316, 2316, 2316}, // 1630 - {1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 474: 1930, 1930, 478: 1930, 480: 1930, 1930, 483: 1930, 1930, 488: 1930, 1930, 491: 1930, 493: 1930, 1930, 1930, 1930, 1930, 499: 1930, 1930, 502: 1930, 1930, 1930, 1930, 509: 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 519: 1930, 1930, 1930, 1930, 524: 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 545: 1930, 1930, 733: 3309, 3307}, - {1293, 1293, 7: 1293, 47: 1293, 125: 1293, 472: 1293, 474: 1293, 480: 1293, 1293, 488: 1293, 1293, 493: 1293, 1293, 1293, 1293, 500: 1293, 502: 1293, 514: 1293, 516: 1293, 524: 1293, 527: 1293, 1293}, - {1292, 1292, 7: 1292, 47: 1292, 125: 1292, 472: 1292, 474: 1292, 480: 1292, 1292, 488: 1292, 1292, 493: 1292, 1292, 1292, 1292, 500: 1292, 502: 1292, 514: 1292, 516: 1292, 524: 1292, 527: 1292, 1292}, - {1291, 1291, 7: 1291, 47: 1291, 125: 1291, 472: 1291, 474: 1291, 480: 1291, 1291, 488: 1291, 1291, 493: 1291, 1291, 1291, 1291, 500: 1291, 502: 1291, 514: 1291, 516: 1291, 524: 1291, 527: 1291, 1291}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 2724, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 4143}, + {1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 474: 1934, 1934, 478: 1934, 480: 1934, 1934, 483: 1934, 1934, 488: 1934, 1934, 491: 1934, 493: 1934, 1934, 1934, 1934, 1934, 499: 1934, 1934, 502: 1934, 1934, 1934, 1934, 509: 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 519: 1934, 1934, 1934, 1934, 524: 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 545: 1934, 1934, 733: 3314, 3312}, + {1297, 1297, 7: 1297, 47: 1297, 125: 1297, 472: 1297, 474: 1297, 480: 1297, 1297, 488: 1297, 1297, 493: 1297, 1297, 1297, 1297, 500: 1297, 502: 1297, 514: 1297, 516: 1297, 524: 1297, 527: 1297, 1297}, + {1296, 1296, 7: 1296, 47: 1296, 125: 1296, 472: 1296, 474: 1296, 480: 1296, 1296, 488: 1296, 1296, 493: 1296, 1296, 1296, 1296, 500: 1296, 502: 1296, 514: 1296, 516: 1296, 524: 1296, 527: 1296, 1296}, + {1295, 1295, 7: 1295, 47: 1295, 125: 1295, 472: 1295, 474: 1295, 480: 1295, 1295, 488: 1295, 1295, 493: 1295, 1295, 1295, 1295, 500: 1295, 502: 1295, 514: 1295, 516: 1295, 524: 1295, 527: 1295, 1295}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 2729, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 4148}, // 1635 - {1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 474: 1934, 1934, 478: 1934, 480: 1934, 1934, 483: 1934, 1934, 488: 1934, 1934, 491: 1934, 493: 1934, 1934, 1934, 1934, 1934, 499: 1934, 1934, 502: 1934, 1934, 1934, 3313, 509: 3311, 3312, 3310, 3308, 1934, 1934, 1934, 1934, 1934, 519: 1934, 1934, 1934, 1934, 524: 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 545: 1934, 1934, 733: 3309, 3307}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 3889, 2731, 2732, 2730, 736: 4145}, - {47: 4146}, - {2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 474: 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 502: 2213, 2213, 2213, 2213, 509: 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 544: 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 573: 2213, 582: 2213, 585: 2213, 2213, 638: 2213, 642: 2213, 2213, 2213}, - {494: 4148}, + {1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 474: 1938, 1938, 478: 1938, 480: 1938, 1938, 483: 1938, 1938, 488: 1938, 1938, 491: 1938, 493: 1938, 1938, 1938, 1938, 1938, 499: 1938, 1938, 502: 1938, 1938, 1938, 3318, 509: 3316, 3317, 3315, 3313, 1938, 1938, 1938, 1938, 1938, 519: 1938, 1938, 1938, 1938, 524: 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 545: 1938, 1938, 733: 3314, 3312}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 3894, 2736, 2737, 2735, 736: 4150}, + {47: 4151}, + {2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 474: 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 502: 2217, 2217, 2217, 2217, 509: 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 544: 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 573: 2217, 582: 2217, 585: 2217, 2217, 638: 2217, 642: 2217, 2217, 2217}, + {494: 4153}, // 1640 - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 3889, 2731, 2732, 2730, 736: 4149}, - {2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 474: 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 502: 2214, 2214, 2214, 2214, 509: 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 544: 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 573: 2214, 582: 2214, 585: 2214, 2214, 638: 2214, 642: 2214, 2214, 2214}, - {246, 246, 47: 246, 472: 246, 474: 246, 480: 246, 246, 488: 246, 246, 493: 246, 246, 246, 246, 500: 246, 502: 246, 505: 3313, 509: 3311, 3312, 3310, 3308, 246, 246, 516: 246, 733: 3309, 3307}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 3894, 2736, 2737, 2735, 736: 4154}, + {2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 474: 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 502: 2218, 2218, 2218, 2218, 509: 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 544: 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 573: 2218, 582: 2218, 585: 2218, 2218, 638: 2218, 642: 2218, 2218, 2218}, + {246, 246, 47: 246, 472: 246, 474: 246, 480: 246, 246, 488: 246, 246, 493: 246, 246, 246, 246, 500: 246, 502: 246, 505: 3318, 509: 3316, 3317, 3315, 3313, 246, 246, 516: 246, 733: 3314, 3312}, {4, 4}, - {137: 4153}, + {137: 4158}, // 1645 - {245, 245, 493: 245, 497: 2691, 500: 245, 502: 245, 789: 2692, 4154}, - {1287, 1287, 493: 1287, 500: 1287, 502: 2694, 766: 2695, 810: 4155}, - {860, 860, 493: 2697, 500: 2698, 767: 2699, 828: 4156}, + {245, 245, 493: 245, 497: 2696, 500: 245, 502: 245, 789: 2697, 4159}, + {1291, 1291, 493: 1291, 500: 1291, 502: 2699, 766: 2700, 810: 4160}, + {864, 864, 493: 2702, 500: 2703, 767: 2704, 828: 4161}, {2, 2}, - {569: 4159}, + {569: 4164}, // 1650 - {2: 1845, 1845, 1845, 1845, 1845, 8: 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 48: 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 473: 1845, 495: 1845, 499: 1845, 569: 1845, 579: 1845}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 3889, 2731, 2732, 2730, 736: 4160}, - {2388, 2388, 2388, 2388, 4206, 4208, 397, 13: 4225, 2156, 4223, 4164, 4227, 4214, 4243, 4207, 4210, 4209, 4212, 4213, 4215, 4222, 397, 4233, 4234, 4220, 4221, 4226, 4228, 4240, 4239, 4245, 4241, 4238, 4231, 4236, 4237, 4230, 4232, 4235, 4224, 69: 4177, 72: 4198, 4199, 81: 4200, 132: 4180, 196: 4165, 4163, 4184, 201: 4185, 211: 4179, 219: 4195, 232: 4174, 241: 4181, 247: 4176, 264: 4186, 272: 4182, 279: 4196, 4197, 286: 4166, 474: 4194, 479: 4205, 4242, 482: 2156, 490: 2388, 496: 4201, 502: 4183, 4193, 4168, 506: 2156, 582: 4173, 587: 4169, 646: 2156, 648: 4211, 652: 4162, 660: 4188, 668: 4175, 670: 4202, 678: 4187, 685: 4189, 688: 4170, 703: 4178, 779: 4216, 791: 4218, 811: 4217, 833: 4219, 837: 4229, 841: 4244, 868: 4192, 881: 4190, 917: 4167, 924: 4171, 987: 4204, 1135: 4172, 1162: 4191, 1167: 4203, 4161}, - {2154, 2154, 4982, 4983, 490: 4984, 1097: 4981, 1166: 4980}, - {490: 4954}, + {2: 1849, 1849, 1849, 1849, 1849, 8: 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 48: 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 473: 1849, 495: 1849, 499: 1849, 569: 1849, 579: 1849}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 3894, 2736, 2737, 2735, 736: 4165}, + {2392, 2392, 2392, 2392, 4211, 4213, 397, 13: 4230, 2160, 4228, 4169, 4232, 4219, 4248, 4212, 4215, 4214, 4217, 4218, 4220, 4227, 397, 4238, 4239, 4225, 4226, 4231, 4233, 4245, 4244, 4250, 4246, 4243, 4236, 4241, 4242, 4235, 4237, 4240, 4229, 69: 4182, 72: 4203, 4204, 81: 4205, 132: 4185, 196: 4170, 4168, 4189, 201: 4190, 211: 4184, 219: 4200, 232: 4179, 241: 4186, 247: 4181, 264: 4191, 272: 4187, 279: 4201, 4202, 286: 4171, 474: 4199, 479: 4210, 4247, 482: 2160, 490: 2392, 496: 4206, 502: 4188, 4198, 4173, 506: 2160, 582: 4178, 587: 4174, 646: 2160, 648: 4216, 652: 4167, 660: 4193, 668: 4180, 670: 4207, 678: 4192, 685: 4194, 688: 4175, 703: 4183, 779: 4221, 791: 4223, 811: 4222, 833: 4224, 837: 4234, 841: 4249, 868: 4197, 881: 4195, 917: 4172, 924: 4176, 987: 4209, 1135: 4177, 1162: 4196, 1168: 4208, 4166}, + {2158, 2158, 4987, 4988, 490: 4989, 1097: 4986, 1167: 4985}, + {490: 4959}, // 1655 - {217: 4952}, - {160: 4944}, - {475: 2037, 479: 2037, 498: 4246, 735: 4941}, - {475: 2037, 479: 2037, 498: 4246, 735: 4938}, - {2473, 2473, 2473, 2473, 4206, 4208, 397, 2473, 13: 4225, 2156, 4223, 4164, 4227, 4214, 4243, 4207, 4210, 4209, 4212, 4213, 4215, 4222, 397, 4233, 4234, 4220, 4221, 4226, 4228, 4240, 4239, 4245, 4241, 4238, 4231, 4236, 4237, 4230, 4232, 4235, 4224, 479: 4205, 4242, 482: 2156, 490: 2473, 503: 4934, 506: 2156, 646: 2156, 648: 4211, 779: 4216, 791: 4218, 811: 4217, 833: 4219, 837: 4229, 841: 4935}, + {2508, 2508, 217: 4957}, + {161: 4949}, + {475: 2041, 479: 2041, 498: 4251, 735: 4946}, + {475: 2041, 479: 2041, 498: 4251, 735: 4943}, + {2477, 2477, 2477, 2477, 4211, 4213, 397, 2477, 13: 4230, 2160, 4228, 4169, 4232, 4219, 4248, 4212, 4215, 4214, 4217, 4218, 4220, 4227, 397, 4238, 4239, 4225, 4226, 4231, 4233, 4245, 4244, 4250, 4246, 4243, 4236, 4241, 4242, 4235, 4237, 4240, 4229, 479: 4210, 4247, 482: 2160, 490: 2477, 503: 4939, 506: 2160, 646: 2160, 648: 4216, 779: 4221, 791: 4223, 811: 4222, 833: 4224, 837: 4234, 841: 4940}, // 1660 - {217: 4921}, - {649: 4913}, - {2: 2393, 2393, 2393, 2393, 2393, 8: 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 48: 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 473: 2393, 490: 4772, 566: 2393, 573: 2382, 582: 2382, 586: 2382, 638: 2382, 642: 4553, 648: 2382, 674: 2382, 2382, 831: 4774, 845: 4388, 871: 4770, 901: 4771, 912: 4773}, - {2461, 2461, 2461, 2461, 7: 2461, 490: 2461}, - {2460, 2460, 2460, 2460, 7: 2460, 490: 2460}, + {217: 4926}, + {649: 4918}, + {2: 2397, 2397, 2397, 2397, 2397, 8: 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 48: 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 473: 2397, 490: 4777, 566: 2397, 573: 2386, 582: 2386, 586: 2386, 638: 2386, 642: 4558, 648: 2386, 674: 2386, 2386, 831: 4779, 845: 4393, 871: 4775, 901: 4776, 912: 4778}, + {2465, 2465, 2465, 2465, 7: 2465, 490: 2465}, + {2464, 2464, 2464, 2464, 7: 2464, 490: 2464}, // 1665 - {490: 4768}, - {490: 4765}, - {2: 2393, 2393, 2393, 2393, 2393, 8: 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 48: 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 490: 4744, 566: 2393, 573: 4374, 582: 4389, 586: 4743, 642: 4390, 648: 4375, 674: 4747, 827: 4746, 845: 4388, 871: 4742, 912: 4745, 999: 4748}, - {490: 4731}, - {490: 4729}, + {490: 4773}, + {490: 4770}, + {2: 2397, 2397, 2397, 2397, 2397, 8: 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 48: 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 490: 4749, 566: 2397, 573: 4379, 582: 4394, 586: 4748, 642: 4395, 648: 4380, 674: 4752, 827: 4751, 845: 4393, 871: 4747, 912: 4750, 999: 4753}, + {490: 4736}, + {490: 4734}, // 1670 - {490: 4726}, - {490: 4723}, - {18: 4720, 490: 4719}, - {18: 4716, 490: 4715}, - {490: 4705}, + {490: 4731}, + {490: 4728}, + {18: 4725, 490: 4724}, + {18: 4721, 490: 4720}, + {490: 4710}, // 1675 - {659: 4698}, - {941: 4697}, - {941: 4696}, - {2: 2393, 2393, 2393, 2393, 2393, 8: 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 48: 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 566: 2393, 845: 4388, 871: 4692}, - {2: 2393, 2393, 2393, 2393, 2393, 8: 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 48: 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 566: 2393, 845: 4388, 871: 4414}, + {659: 4703}, + {941: 4702}, + {941: 4701}, + {2: 2397, 2397, 2397, 2397, 2397, 8: 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 48: 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 566: 2397, 845: 4393, 871: 4697}, + {2: 2397, 2397, 2397, 2397, 2397, 8: 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 48: 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 566: 2397, 845: 4393, 871: 4419}, // 1680 - {2: 2393, 2393, 2393, 2393, 2393, 8: 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 48: 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 582: 4389, 642: 4390, 648: 4387, 845: 4388, 871: 4385, 999: 4386}, - {2: 2037, 2037, 2037, 2037, 2037, 8: 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 48: 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 478: 4372, 498: 4246, 573: 4374, 648: 4375, 4370, 735: 4371, 827: 4373, 845: 4369}, - {2429, 2429, 2429, 2429, 7: 2429, 490: 2429}, - {2428, 2428, 2428, 2428, 7: 2428, 490: 2428}, - {2427, 2427, 2427, 2427, 7: 2427, 490: 2427}, + {2: 2397, 2397, 2397, 2397, 2397, 8: 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 48: 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 582: 4394, 642: 4395, 648: 4392, 845: 4393, 871: 4390, 999: 4391}, + {2: 2041, 2041, 2041, 2041, 2041, 8: 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 48: 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 478: 4377, 498: 4251, 573: 4379, 648: 4380, 4375, 735: 4376, 827: 4378, 845: 4374}, + {2433, 2433, 2433, 2433, 7: 2433, 490: 2433}, + {2432, 2432, 2432, 2432, 7: 2432, 490: 2432}, + {2431, 2431, 2431, 2431, 7: 2431, 490: 2431}, // 1685 - {2426, 2426, 2426, 2426, 6: 396, 2426, 27: 396, 490: 2426}, - {194: 4368}, - {194: 4367}, - {2423, 2423, 2423, 2423, 7: 2423, 490: 2423}, - {2422, 2422, 2422, 2422, 7: 2422, 490: 2422}, + {2430, 2430, 2430, 2430, 6: 396, 2430, 27: 396, 490: 2430}, + {194: 4373}, + {194: 4372}, + {2427, 2427, 2427, 2427, 7: 2427, 490: 2427}, + {2426, 2426, 2426, 2426, 7: 2426, 490: 2426}, // 1690 - {2418, 2418, 2418, 2418, 7: 2418, 490: 2418}, - {2417, 2417, 2417, 2417, 7: 2417, 490: 2417}, - {149: 2037, 235: 2037, 256: 2037, 258: 2037, 479: 2037, 498: 4246, 735: 4361}, - {2: 2037, 2037, 2037, 2037, 2037, 8: 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 48: 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 479: 2037, 498: 4246, 735: 4358}, - {151: 4357, 686: 4356}, + {2422, 2422, 2422, 2422, 7: 2422, 490: 2422}, + {2421, 2421, 2421, 2421, 7: 2421, 490: 2421}, + {149: 2041, 235: 2041, 256: 2041, 258: 2041, 479: 2041, 498: 4251, 735: 4366}, + {2: 2041, 2041, 2041, 2041, 2041, 8: 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 48: 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 479: 2041, 498: 4251, 735: 4363}, + {151: 4362, 686: 4361}, // 1695 - {2387, 2387, 2387, 2387, 7: 4354, 490: 2387}, - {2386, 2386, 2386, 2386, 7: 2386, 490: 2386}, - {14: 2155, 16: 2155, 19: 2155, 482: 2155, 506: 2155, 646: 2155}, - {475: 2037, 498: 4246, 735: 4352}, - {2: 2037, 2037, 2037, 2037, 2037, 8: 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 48: 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 475: 2037, 498: 4246, 735: 4350}, + {2391, 2391, 2391, 2391, 7: 4359, 490: 2391}, + {2390, 2390, 2390, 2390, 7: 2390, 490: 2390}, + {14: 2159, 16: 2159, 19: 2159, 482: 2159, 506: 2159, 646: 2159}, + {475: 2041, 498: 4251, 735: 4357}, + {2: 2041, 2041, 2041, 2041, 2041, 8: 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 48: 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 475: 2041, 498: 4251, 735: 4355}, // 1700 - {20: 4345, 180: 4346, 242: 4347}, - {2: 2037, 2037, 2037, 2037, 2037, 8: 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 48: 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 475: 2037, 498: 4246, 735: 4343}, - {240: 4340}, - {240: 4337}, - {498: 4246, 508: 2037, 735: 4335}, + {20: 4350, 180: 4351, 242: 4352}, + {2: 2041, 2041, 2041, 2041, 2041, 8: 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 48: 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 475: 2041, 498: 4251, 735: 4348}, + {240: 4345}, + {240: 4342}, + {498: 4251, 508: 2041, 735: 4340}, // 1705 - {498: 4246, 508: 2037, 735: 4333}, - {2: 2037, 2037, 2037, 2037, 2037, 8: 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 48: 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 498: 4246, 735: 4331}, - {498: 4246, 508: 2037, 735: 4329}, - {2110, 2110, 2110, 2110, 2110, 2110, 2110, 2110, 13: 2110, 2110, 2110, 2110, 2110, 2110, 2110, 2110, 2110, 2110, 2110, 2110, 2110, 2110, 2110, 2110, 2110, 2110, 2110, 2110, 2110, 2110, 2110, 2110, 2110, 2110, 2110, 2110, 2110, 2110, 2110, 2110, 2110, 47: 2110, 472: 2110, 2110, 2110, 478: 2110, 2110, 2110, 482: 2110, 490: 2110, 2110, 501: 2110, 503: 2110, 506: 2110, 2110, 569: 2110, 645: 2110, 2110, 648: 2110}, + {498: 4251, 508: 2041, 735: 4338}, + {2: 2041, 2041, 2041, 2041, 2041, 8: 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 48: 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 498: 4251, 735: 4336}, + {498: 4251, 508: 2041, 735: 4334}, + {2114, 2114, 2114, 2114, 2114, 2114, 2114, 2114, 13: 2114, 2114, 2114, 2114, 2114, 2114, 2114, 2114, 2114, 2114, 2114, 2114, 2114, 2114, 2114, 2114, 2114, 2114, 2114, 2114, 2114, 2114, 2114, 2114, 2114, 2114, 2114, 2114, 2114, 2114, 2114, 2114, 2114, 47: 2114, 472: 2114, 2114, 2114, 478: 2114, 2114, 2114, 482: 2114, 490: 2114, 2114, 501: 2114, 503: 2114, 506: 2114, 2114, 569: 2114, 645: 2114, 2114, 648: 2114}, {431, 431, 431, 431, 431, 431, 431, 431, 13: 431, 431, 431, 431, 431, 431, 431, 431, 431, 431, 431, 431, 431, 431, 431, 431, 431, 431, 431, 431, 431, 431, 431, 431, 431, 431, 431, 431, 431, 431, 431, 431, 431, 472: 431, 431, 431, 478: 431, 431, 431, 482: 431, 490: 431, 431, 501: 431, 503: 431, 506: 431, 431, 569: 431, 645: 431, 431, 648: 431}, // 1710 - {14: 3804, 482: 4324, 506: 3805, 646: 3803, 772: 4323}, - {6: 4317, 27: 4318}, - {498: 4246, 508: 2037, 735: 4315}, - {498: 4246, 508: 2037, 735: 4313}, - {475: 2037, 498: 4246, 735: 4311}, + {14: 3809, 482: 4329, 506: 3810, 646: 3808, 772: 4328}, + {6: 4322, 27: 4323}, + {498: 4251, 508: 2041, 735: 4320}, + {498: 4251, 508: 2041, 735: 4318}, + {475: 2041, 498: 4251, 735: 4316}, // 1715 - {498: 4246, 508: 2037, 735: 4309}, - {498: 4246, 508: 2037, 735: 4307}, - {475: 2037, 498: 4246, 735: 4305}, - {475: 2037, 498: 4246, 735: 4303}, - {498: 4246, 508: 2037, 735: 4301}, + {498: 4251, 508: 2041, 735: 4314}, + {498: 4251, 508: 2041, 735: 4312}, + {475: 2041, 498: 4251, 735: 4310}, + {475: 2041, 498: 4251, 735: 4308}, + {498: 4251, 508: 2041, 735: 4306}, // 1720 - {498: 4246, 508: 2037, 735: 4299}, + {498: 4251, 508: 2041, 735: 4304}, {417, 417, 417, 417, 417, 417, 417, 417, 13: 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 472: 417, 417, 417, 478: 417, 417, 417, 482: 417, 490: 417, 417, 501: 417, 503: 417, 506: 417, 417, 569: 417, 645: 417, 417, 648: 417}, - {479: 2037, 498: 4246, 508: 2037, 735: 4297}, - {479: 2037, 498: 4246, 508: 2037, 735: 4294}, - {479: 2037, 498: 4246, 508: 2037, 735: 4291}, + {479: 2041, 498: 4251, 508: 2041, 735: 4302}, + {479: 2041, 498: 4251, 508: 2041, 735: 4299}, + {479: 2041, 498: 4251, 508: 2041, 735: 4296}, // 1725 - {498: 4246, 508: 2037, 735: 4289}, - {498: 4246, 508: 2037, 735: 4287}, - {498: 4246, 508: 2037, 574: 2037, 2037, 735: 4285}, - {475: 2037, 498: 4246, 735: 4283}, - {475: 2037, 498: 4246, 735: 4281}, + {498: 4251, 508: 2041, 735: 4294}, + {498: 4251, 508: 2041, 735: 4292}, + {498: 4251, 508: 2041, 574: 2041, 2041, 735: 4290}, + {475: 2041, 498: 4251, 735: 4288}, + {475: 2041, 498: 4251, 735: 4286}, // 1730 - {498: 4246, 508: 2037, 735: 4279}, - {498: 4246, 508: 2037, 735: 4277}, - {479: 2037, 498: 4246, 508: 2037, 735: 4273}, - {2: 2037, 2037, 2037, 2037, 2037, 8: 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 48: 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 475: 2037, 492: 2037, 498: 4246, 735: 4270}, - {473: 2037, 498: 4246, 735: 4265}, + {498: 4251, 508: 2041, 735: 4284}, + {498: 4251, 508: 2041, 735: 4282}, + {479: 2041, 498: 4251, 508: 2041, 735: 4278}, + {2: 2041, 2041, 2041, 2041, 2041, 8: 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 48: 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 475: 2041, 492: 2041, 498: 4251, 735: 4275}, + {473: 2041, 498: 4251, 735: 4270}, // 1735 - {475: 2037, 498: 4246, 735: 4262}, + {475: 2041, 498: 4251, 735: 4267}, {391, 391, 391, 391, 391, 391, 391, 391, 13: 391, 391, 391, 391, 391, 391, 391, 391, 391, 391, 391, 391, 391, 391, 391, 391, 391, 391, 391, 391, 391, 391, 391, 391, 391, 391, 391, 391, 391, 391, 391, 391, 391, 472: 391, 391, 391, 478: 391, 391, 391, 482: 391, 490: 391, 391, 501: 391, 503: 391, 506: 391, 391, 569: 391, 645: 391, 391, 648: 391}, - {175: 2037, 197: 2037, 200: 2037, 233: 2037, 273: 2037, 289: 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 479: 2037, 498: 4246, 735: 4247}, - {2: 2036, 2036, 2036, 2036, 2036, 8: 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 48: 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 473: 2036, 475: 2036, 479: 2036, 485: 2036, 2036, 491: 2036, 2036, 507: 2036, 2036, 543: 2036, 571: 2036, 2036, 574: 2036, 2036}, - {175: 4250, 197: 4253, 200: 4249, 233: 4251, 273: 4252, 289: 4254, 4255, 4259, 4258, 4256, 4260, 4261, 4257, 479: 4248}, + {175: 2041, 197: 2041, 200: 2041, 233: 2041, 273: 2041, 289: 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 479: 2041, 498: 4251, 735: 4252}, + {2: 2040, 2040, 2040, 2040, 2040, 8: 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 48: 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 473: 2040, 475: 2040, 479: 2040, 485: 2040, 2040, 491: 2040, 2040, 507: 2040, 2040, 543: 2040, 571: 2040, 2040, 574: 2040, 2040}, + {175: 4255, 197: 4258, 200: 4254, 233: 4256, 273: 4257, 289: 4259, 4260, 4264, 4263, 4261, 4265, 4266, 4262, 479: 4253}, // 1740 {385, 385, 385, 385, 385, 385, 385, 385, 13: 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 472: 385, 385, 385, 478: 385, 385, 385, 482: 385, 490: 385, 385, 501: 385, 503: 385, 506: 385, 385, 569: 385, 645: 385, 385, 648: 385}, {384, 384, 384, 384, 384, 384, 384, 384, 13: 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 472: 384, 384, 384, 478: 384, 384, 384, 482: 384, 490: 384, 384, 501: 384, 503: 384, 506: 384, 384, 569: 384, 645: 384, 384, 648: 384}, @@ -8218,209 +8225,209 @@ var ( {374, 374, 374, 374, 374, 374, 374, 374, 13: 374, 374, 374, 374, 374, 374, 374, 374, 374, 374, 374, 374, 374, 374, 374, 374, 374, 374, 374, 374, 374, 374, 374, 374, 374, 374, 374, 374, 374, 374, 374, 374, 374, 472: 374, 374, 374, 478: 374, 374, 374, 482: 374, 490: 374, 374, 501: 374, 503: 374, 506: 374, 374, 569: 374, 645: 374, 374, 648: 374}, {373, 373, 373, 373, 373, 373, 373, 373, 13: 373, 373, 373, 373, 373, 373, 373, 373, 373, 373, 373, 373, 373, 373, 373, 373, 373, 373, 373, 373, 373, 373, 373, 373, 373, 373, 373, 373, 373, 373, 373, 373, 373, 472: 373, 373, 373, 478: 373, 373, 373, 482: 373, 490: 373, 373, 501: 373, 503: 373, 506: 373, 373, 569: 373, 645: 373, 373, 648: 373}, {372, 372, 372, 372, 372, 372, 372, 372, 13: 372, 372, 372, 372, 372, 372, 372, 372, 372, 372, 372, 372, 372, 372, 372, 372, 372, 372, 372, 372, 372, 372, 372, 372, 372, 372, 372, 372, 372, 372, 372, 372, 372, 472: 372, 372, 372, 478: 372, 372, 372, 482: 372, 490: 372, 372, 501: 372, 503: 372, 506: 372, 372, 569: 372, 645: 372, 372, 648: 372}, - {475: 4264, 1038: 4263}, + {475: 4269, 1038: 4268}, // 1755 {398, 398, 398, 398, 398, 398, 398, 398, 13: 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 472: 398, 398, 398, 478: 398, 398, 398, 482: 398, 490: 398, 398, 501: 398, 503: 398, 506: 398, 398, 569: 398, 645: 398, 398, 648: 398}, {9, 9, 9, 9, 9, 9, 9, 9, 13: 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 472: 9, 9, 9, 478: 9, 9, 9, 482: 9, 490: 9, 9, 501: 9, 503: 9, 9, 506: 9, 9, 569: 9, 645: 9, 9, 648: 9}, - {473: 4266}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 561, 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 3889, 2731, 2732, 2730, 736: 3890, 794: 4267, 1144: 4268}, - {560, 560, 7: 3892, 47: 560, 474: 560}, + {473: 4271}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 561, 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 3894, 2736, 2737, 2735, 736: 3895, 794: 4272, 1144: 4273}, + {560, 560, 7: 3897, 47: 560, 474: 560}, // 1760 - {47: 4269}, + {47: 4274}, {399, 399, 399, 399, 399, 399, 399, 399, 13: 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 472: 399, 399, 399, 478: 399, 399, 399, 482: 399, 490: 399, 399, 501: 399, 503: 399, 506: 399, 399, 569: 399, 645: 399, 399, 648: 399}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 475: 3458, 492: 4271, 663: 3459, 2731, 2732, 2730, 737: 4272}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 475: 3463, 492: 4276, 663: 3464, 2736, 2737, 2735, 737: 4277}, {401, 401, 401, 401, 401, 401, 401, 401, 13: 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 472: 401, 401, 401, 478: 401, 401, 401, 482: 401, 490: 401, 401, 501: 401, 503: 401, 506: 401, 401, 569: 401, 645: 401, 401, 648: 401}, {400, 400, 400, 400, 400, 400, 400, 400, 13: 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 472: 400, 400, 400, 478: 400, 400, 400, 482: 400, 490: 400, 400, 501: 400, 503: 400, 506: 400, 400, 569: 400, 645: 400, 400, 648: 400}, // 1765 - {479: 4275, 508: 2705, 732: 2704, 743: 4276, 1136: 4274}, + {479: 4280, 508: 2710, 732: 2709, 742: 4281, 1136: 4279}, {404, 404, 404, 404, 404, 404, 404, 404, 13: 404, 404, 404, 404, 404, 404, 404, 404, 404, 404, 404, 404, 404, 404, 404, 404, 404, 404, 404, 404, 404, 404, 404, 404, 404, 404, 404, 404, 404, 404, 404, 404, 404, 472: 404, 404, 404, 478: 404, 404, 404, 482: 404, 490: 404, 404, 501: 404, 503: 404, 506: 404, 404, 569: 404, 645: 404, 404, 648: 404}, {395, 395, 395, 395, 395, 395, 395, 395, 13: 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 472: 395, 395, 395, 478: 395, 395, 395, 482: 395, 490: 395, 395, 501: 395, 503: 395, 506: 395, 395, 569: 395, 645: 395, 395, 648: 395}, {394, 394, 394, 394, 394, 394, 394, 394, 13: 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 472: 394, 394, 394, 478: 394, 394, 394, 482: 394, 490: 394, 394, 501: 394, 503: 394, 506: 394, 394, 569: 394, 645: 394, 394, 648: 394}, - {508: 2705, 732: 2704, 743: 4278}, + {508: 2710, 732: 2709, 742: 4283}, // 1770 {405, 405, 405, 405, 405, 405, 405, 405, 13: 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 472: 405, 405, 405, 478: 405, 405, 405, 482: 405, 490: 405, 405, 501: 405, 503: 405, 506: 405, 405, 569: 405, 645: 405, 405, 648: 405}, - {508: 2705, 732: 2704, 743: 4280}, + {508: 2710, 732: 2709, 742: 4285}, {406, 406, 406, 406, 406, 406, 406, 406, 13: 406, 406, 406, 406, 406, 406, 406, 406, 406, 406, 406, 406, 406, 406, 406, 406, 406, 406, 406, 406, 406, 406, 406, 406, 406, 406, 406, 406, 406, 406, 406, 406, 406, 472: 406, 406, 406, 478: 406, 406, 406, 482: 406, 490: 406, 406, 501: 406, 503: 406, 506: 406, 406, 569: 406, 645: 406, 406, 648: 406}, - {475: 4282}, + {475: 4287}, {407, 407, 407, 407, 407, 407, 407, 407, 13: 407, 407, 407, 407, 407, 407, 407, 407, 407, 407, 407, 407, 407, 407, 407, 407, 407, 407, 407, 407, 407, 407, 407, 407, 407, 407, 407, 407, 407, 407, 407, 407, 407, 472: 407, 407, 407, 478: 407, 407, 407, 482: 407, 490: 407, 407, 501: 407, 503: 407, 506: 407, 407, 569: 407, 645: 407, 407, 648: 407}, // 1775 - {475: 4284}, + {475: 4289}, {408, 408, 408, 408, 408, 408, 408, 408, 13: 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 472: 408, 408, 408, 478: 408, 408, 408, 482: 408, 490: 408, 408, 501: 408, 503: 408, 506: 408, 408, 569: 408, 645: 408, 408, 648: 408}, - {508: 3391, 574: 3393, 3392, 818: 4286}, + {508: 3396, 574: 3398, 3397, 818: 4291}, {409, 409, 409, 409, 409, 409, 409, 409, 13: 409, 409, 409, 409, 409, 409, 409, 409, 409, 409, 409, 409, 409, 409, 409, 409, 409, 409, 409, 409, 409, 409, 409, 409, 409, 409, 409, 409, 409, 409, 409, 409, 409, 472: 409, 409, 409, 478: 409, 409, 409, 482: 409, 490: 409, 409, 501: 409, 503: 409, 506: 409, 409, 569: 409, 645: 409, 409, 648: 409}, - {508: 2705, 732: 2704, 743: 4288}, + {508: 2710, 732: 2709, 742: 4293}, // 1780 {410, 410, 410, 410, 410, 410, 410, 410, 13: 410, 410, 410, 410, 410, 410, 410, 410, 410, 410, 410, 410, 410, 410, 410, 410, 410, 410, 410, 410, 410, 410, 410, 410, 410, 410, 410, 410, 410, 410, 410, 410, 410, 472: 410, 410, 410, 478: 410, 410, 410, 482: 410, 490: 410, 410, 501: 410, 503: 410, 506: 410, 410, 569: 410, 645: 410, 410, 648: 410}, - {508: 2705, 732: 2704, 743: 4290}, + {508: 2710, 732: 2709, 742: 4295}, {411, 411, 411, 411, 411, 411, 411, 411, 13: 411, 411, 411, 411, 411, 411, 411, 411, 411, 411, 411, 411, 411, 411, 411, 411, 411, 411, 411, 411, 411, 411, 411, 411, 411, 411, 411, 411, 411, 411, 411, 411, 411, 472: 411, 411, 411, 478: 411, 411, 411, 482: 411, 490: 411, 411, 501: 411, 503: 411, 506: 411, 411, 569: 411, 645: 411, 411, 648: 411}, - {479: 4293, 508: 2705, 732: 2704, 743: 4292}, + {479: 4298, 508: 2710, 732: 2709, 742: 4297}, {413, 413, 413, 413, 413, 413, 413, 413, 13: 413, 413, 413, 413, 413, 413, 413, 413, 413, 413, 413, 413, 413, 413, 413, 413, 413, 413, 413, 413, 413, 413, 413, 413, 413, 413, 413, 413, 413, 413, 413, 413, 413, 472: 413, 413, 413, 478: 413, 413, 413, 482: 413, 490: 413, 413, 501: 413, 503: 413, 506: 413, 413, 569: 413, 645: 413, 413, 648: 413}, // 1785 {412, 412, 412, 412, 412, 412, 412, 412, 13: 412, 412, 412, 412, 412, 412, 412, 412, 412, 412, 412, 412, 412, 412, 412, 412, 412, 412, 412, 412, 412, 412, 412, 412, 412, 412, 412, 412, 412, 412, 412, 412, 412, 472: 412, 412, 412, 478: 412, 412, 412, 482: 412, 490: 412, 412, 501: 412, 503: 412, 506: 412, 412, 569: 412, 645: 412, 412, 648: 412}, - {479: 4296, 508: 2705, 732: 2704, 743: 4295}, + {479: 4301, 508: 2710, 732: 2709, 742: 4300}, {415, 415, 415, 415, 415, 415, 415, 415, 13: 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 472: 415, 415, 415, 478: 415, 415, 415, 482: 415, 490: 415, 415, 501: 415, 503: 415, 506: 415, 415, 569: 415, 645: 415, 415, 648: 415}, {414, 414, 414, 414, 414, 414, 414, 414, 13: 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 472: 414, 414, 414, 478: 414, 414, 414, 482: 414, 490: 414, 414, 501: 414, 503: 414, 506: 414, 414, 569: 414, 645: 414, 414, 648: 414}, - {479: 4275, 508: 2705, 732: 2704, 743: 4276, 1136: 4298}, + {479: 4280, 508: 2710, 732: 2709, 742: 4281, 1136: 4303}, // 1790 {416, 416, 416, 416, 416, 416, 416, 416, 13: 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 472: 416, 416, 416, 478: 416, 416, 416, 482: 416, 490: 416, 416, 501: 416, 503: 416, 506: 416, 416, 569: 416, 645: 416, 416, 648: 416}, - {508: 2705, 732: 2704, 743: 4300}, + {508: 2710, 732: 2709, 742: 4305}, {418, 418, 418, 418, 418, 418, 418, 418, 13: 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 472: 418, 418, 418, 478: 418, 418, 418, 482: 418, 490: 418, 418, 501: 418, 503: 418, 506: 418, 418, 569: 418, 645: 418, 418, 648: 418}, - {508: 2705, 732: 2704, 743: 4302}, + {508: 2710, 732: 2709, 742: 4307}, {419, 419, 419, 419, 419, 419, 419, 419, 13: 419, 419, 419, 419, 419, 419, 419, 419, 419, 419, 419, 419, 419, 419, 419, 419, 419, 419, 419, 419, 419, 419, 419, 419, 419, 419, 419, 419, 419, 419, 419, 419, 419, 472: 419, 419, 419, 478: 419, 419, 419, 482: 419, 490: 419, 419, 501: 419, 503: 419, 506: 419, 419, 569: 419, 645: 419, 419, 648: 419}, // 1795 - {475: 4304}, + {475: 4309}, {420, 420, 420, 420, 420, 420, 420, 420, 13: 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 472: 420, 420, 420, 478: 420, 420, 420, 482: 420, 490: 420, 420, 501: 420, 503: 420, 506: 420, 420, 569: 420, 645: 420, 420, 648: 420}, - {475: 4306}, + {475: 4311}, {421, 421, 421, 421, 421, 421, 421, 421, 13: 421, 421, 421, 421, 421, 421, 421, 421, 421, 421, 421, 421, 421, 421, 421, 421, 421, 421, 421, 421, 421, 421, 421, 421, 421, 421, 421, 421, 421, 421, 421, 421, 421, 472: 421, 421, 421, 478: 421, 421, 421, 482: 421, 490: 421, 421, 501: 421, 503: 421, 506: 421, 421, 569: 421, 645: 421, 421, 648: 421}, - {508: 2705, 732: 2704, 743: 4308}, + {508: 2710, 732: 2709, 742: 4313}, // 1800 {422, 422, 422, 422, 422, 422, 422, 422, 13: 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 472: 422, 422, 422, 478: 422, 422, 422, 482: 422, 490: 422, 422, 501: 422, 503: 422, 506: 422, 422, 569: 422, 645: 422, 422, 648: 422}, - {508: 2705, 732: 2704, 743: 4310}, + {508: 2710, 732: 2709, 742: 4315}, {423, 423, 423, 423, 423, 423, 423, 423, 13: 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 472: 423, 423, 423, 478: 423, 423, 423, 482: 423, 490: 423, 423, 501: 423, 503: 423, 506: 423, 423, 569: 423, 645: 423, 423, 648: 423}, - {475: 4312}, + {475: 4317}, {424, 424, 424, 424, 424, 424, 424, 424, 13: 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 472: 424, 424, 424, 478: 424, 424, 424, 482: 424, 490: 424, 424, 501: 424, 503: 424, 506: 424, 424, 569: 424, 645: 424, 424, 648: 424}, // 1805 - {508: 2705, 732: 2704, 743: 4314}, + {508: 2710, 732: 2709, 742: 4319}, {425, 425, 425, 425, 425, 425, 425, 425, 13: 425, 425, 425, 425, 425, 425, 425, 425, 425, 425, 425, 425, 425, 425, 425, 425, 425, 425, 425, 425, 425, 425, 425, 425, 425, 425, 425, 425, 425, 425, 425, 425, 425, 472: 425, 425, 425, 478: 425, 425, 425, 482: 425, 490: 425, 425, 501: 425, 503: 425, 506: 425, 425, 569: 425, 645: 425, 425, 648: 425}, - {508: 2705, 732: 2704, 743: 4316}, + {508: 2710, 732: 2709, 742: 4321}, {427, 427, 427, 427, 427, 427, 427, 427, 13: 427, 427, 427, 427, 427, 427, 427, 427, 427, 427, 427, 427, 427, 427, 427, 427, 427, 427, 427, 427, 427, 427, 427, 427, 427, 427, 427, 427, 427, 427, 427, 427, 427, 472: 427, 427, 427, 478: 427, 427, 427, 482: 427, 490: 427, 427, 501: 427, 503: 427, 506: 427, 427, 569: 427, 645: 427, 427, 648: 427}, - {498: 4246, 508: 2037, 735: 4321}, + {498: 4251, 508: 2041, 735: 4326}, // 1810 - {498: 4246, 508: 2037, 735: 4319}, - {508: 2705, 732: 2704, 743: 4320}, + {498: 4251, 508: 2041, 735: 4324}, + {508: 2710, 732: 2709, 742: 4325}, {426, 426, 426, 426, 426, 426, 426, 426, 13: 426, 426, 426, 426, 426, 426, 426, 426, 426, 426, 426, 426, 426, 426, 426, 426, 426, 426, 426, 426, 426, 426, 426, 426, 426, 426, 426, 426, 426, 426, 426, 426, 426, 472: 426, 426, 426, 478: 426, 426, 426, 482: 426, 490: 426, 426, 501: 426, 503: 426, 506: 426, 426, 569: 426, 645: 426, 426, 648: 426}, - {508: 2705, 732: 2704, 743: 4322}, + {508: 2710, 732: 2709, 742: 4327}, {428, 428, 428, 428, 428, 428, 428, 428, 13: 428, 428, 428, 428, 428, 428, 428, 428, 428, 428, 428, 428, 428, 428, 428, 428, 428, 428, 428, 428, 428, 428, 428, 428, 428, 428, 428, 428, 428, 428, 428, 428, 428, 472: 428, 428, 428, 478: 428, 428, 428, 482: 428, 490: 428, 428, 501: 428, 503: 428, 506: 428, 428, 569: 428, 645: 428, 428, 648: 428}, // 1815 - {2: 2037, 2037, 2037, 2037, 2037, 8: 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 48: 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 475: 2037, 498: 4246, 543: 2037, 735: 4327}, - {2: 2037, 2037, 2037, 2037, 2037, 8: 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 48: 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 475: 2037, 498: 4246, 543: 2037, 735: 4325}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 475: 3458, 543: 3457, 663: 3459, 2731, 2732, 2730, 737: 3456, 870: 4326}, + {2: 2041, 2041, 2041, 2041, 2041, 8: 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 48: 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 475: 2041, 498: 4251, 543: 2041, 735: 4332}, + {2: 2041, 2041, 2041, 2041, 2041, 8: 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 48: 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 475: 2041, 498: 4251, 543: 2041, 735: 4330}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 475: 3463, 543: 3462, 663: 3464, 2736, 2737, 2735, 737: 3461, 870: 4331}, {429, 429, 429, 429, 429, 429, 429, 429, 13: 429, 429, 429, 429, 429, 429, 429, 429, 429, 429, 429, 429, 429, 429, 429, 429, 429, 429, 429, 429, 429, 429, 429, 429, 429, 429, 429, 429, 429, 429, 429, 429, 429, 472: 429, 429, 429, 478: 429, 429, 429, 482: 429, 490: 429, 429, 501: 429, 503: 429, 506: 429, 429, 569: 429, 645: 429, 429, 648: 429}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 475: 3458, 543: 3729, 663: 3459, 2731, 2732, 2730, 737: 3728, 806: 4328}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 475: 3463, 543: 3734, 663: 3464, 2736, 2737, 2735, 737: 3733, 806: 4333}, // 1820 {430, 430, 430, 430, 430, 430, 430, 430, 13: 430, 430, 430, 430, 430, 430, 430, 430, 430, 430, 430, 430, 430, 430, 430, 430, 430, 430, 430, 430, 430, 430, 430, 430, 430, 430, 430, 430, 430, 430, 430, 430, 430, 472: 430, 430, 430, 478: 430, 430, 430, 482: 430, 490: 430, 430, 501: 430, 503: 430, 506: 430, 430, 569: 430, 645: 430, 430, 648: 430}, - {508: 2705, 732: 2704, 743: 4330}, - {2111, 2111, 2111, 2111, 2111, 2111, 2111, 2111, 13: 2111, 2111, 2111, 2111, 2111, 2111, 2111, 2111, 2111, 2111, 2111, 2111, 2111, 2111, 2111, 2111, 2111, 2111, 2111, 2111, 2111, 2111, 2111, 2111, 2111, 2111, 2111, 2111, 2111, 2111, 2111, 2111, 2111, 47: 2111, 472: 2111, 2111, 2111, 478: 2111, 2111, 2111, 482: 2111, 490: 2111, 2111, 501: 2111, 503: 2111, 506: 2111, 2111, 569: 2111, 645: 2111, 2111, 648: 2111}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 4332, 2731, 2732, 2730}, - {2112, 2112, 2112, 2112, 2112, 2112, 2112, 2112, 13: 2112, 2112, 2112, 2112, 2112, 2112, 2112, 2112, 2112, 2112, 2112, 2112, 2112, 2112, 2112, 2112, 2112, 2112, 2112, 2112, 2112, 2112, 2112, 2112, 2112, 2112, 2112, 2112, 2112, 2112, 2112, 2112, 2112, 47: 2112, 472: 2112, 2112, 2112, 478: 2112, 2112, 2112, 482: 2112, 490: 2112, 2112, 501: 2112, 503: 2112, 506: 2112, 2112, 569: 2112, 645: 2112, 2112, 648: 2112}, - // 1825 - {508: 2705, 732: 2704, 743: 4334}, - {2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113, 13: 2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113, 47: 2113, 472: 2113, 2113, 2113, 478: 2113, 2113, 2113, 482: 2113, 490: 2113, 2113, 501: 2113, 503: 2113, 506: 2113, 2113, 569: 2113, 645: 2113, 2113, 648: 2113}, - {508: 2705, 732: 2704, 743: 4336}, - {2114, 2114, 2114, 2114, 2114, 2114, 2114, 2114, 13: 2114, 2114, 2114, 2114, 2114, 2114, 2114, 2114, 2114, 2114, 2114, 2114, 2114, 2114, 2114, 2114, 2114, 2114, 2114, 2114, 2114, 2114, 2114, 2114, 2114, 2114, 2114, 2114, 2114, 2114, 2114, 2114, 2114, 47: 2114, 472: 2114, 2114, 2114, 478: 2114, 2114, 2114, 482: 2114, 490: 2114, 2114, 501: 2114, 503: 2114, 506: 2114, 2114, 569: 2114, 645: 2114, 2114, 648: 2114}, - {475: 2037, 498: 4246, 735: 4338}, - // 1830 - {475: 4339}, + {508: 2710, 732: 2709, 742: 4335}, {2115, 2115, 2115, 2115, 2115, 2115, 2115, 2115, 13: 2115, 2115, 2115, 2115, 2115, 2115, 2115, 2115, 2115, 2115, 2115, 2115, 2115, 2115, 2115, 2115, 2115, 2115, 2115, 2115, 2115, 2115, 2115, 2115, 2115, 2115, 2115, 2115, 2115, 2115, 2115, 2115, 2115, 47: 2115, 472: 2115, 2115, 2115, 478: 2115, 2115, 2115, 482: 2115, 490: 2115, 2115, 501: 2115, 503: 2115, 506: 2115, 2115, 569: 2115, 645: 2115, 2115, 648: 2115}, - {475: 2037, 498: 4246, 735: 4341}, - {475: 4342}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 4337, 2736, 2737, 2735}, {2116, 2116, 2116, 2116, 2116, 2116, 2116, 2116, 13: 2116, 2116, 2116, 2116, 2116, 2116, 2116, 2116, 2116, 2116, 2116, 2116, 2116, 2116, 2116, 2116, 2116, 2116, 2116, 2116, 2116, 2116, 2116, 2116, 2116, 2116, 2116, 2116, 2116, 2116, 2116, 2116, 2116, 47: 2116, 472: 2116, 2116, 2116, 478: 2116, 2116, 2116, 482: 2116, 490: 2116, 2116, 501: 2116, 503: 2116, 506: 2116, 2116, 569: 2116, 645: 2116, 2116, 648: 2116}, - // 1835 - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 475: 3458, 663: 3459, 2731, 2732, 2730, 737: 4344}, + // 1825 + {508: 2710, 732: 2709, 742: 4339}, {2117, 2117, 2117, 2117, 2117, 2117, 2117, 2117, 13: 2117, 2117, 2117, 2117, 2117, 2117, 2117, 2117, 2117, 2117, 2117, 2117, 2117, 2117, 2117, 2117, 2117, 2117, 2117, 2117, 2117, 2117, 2117, 2117, 2117, 2117, 2117, 2117, 2117, 2117, 2117, 2117, 2117, 47: 2117, 472: 2117, 2117, 2117, 478: 2117, 2117, 2117, 482: 2117, 490: 2117, 2117, 501: 2117, 503: 2117, 506: 2117, 2117, 569: 2117, 645: 2117, 2117, 648: 2117}, - {2: 2037, 2037, 2037, 2037, 2037, 8: 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 48: 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 475: 2037, 498: 4246, 735: 4348}, + {508: 2710, 732: 2709, 742: 4341}, + {2118, 2118, 2118, 2118, 2118, 2118, 2118, 2118, 13: 2118, 2118, 2118, 2118, 2118, 2118, 2118, 2118, 2118, 2118, 2118, 2118, 2118, 2118, 2118, 2118, 2118, 2118, 2118, 2118, 2118, 2118, 2118, 2118, 2118, 2118, 2118, 2118, 2118, 2118, 2118, 2118, 2118, 47: 2118, 472: 2118, 2118, 2118, 478: 2118, 2118, 2118, 482: 2118, 490: 2118, 2118, 501: 2118, 503: 2118, 506: 2118, 2118, 569: 2118, 645: 2118, 2118, 648: 2118}, + {475: 2041, 498: 4251, 735: 4343}, + // 1830 + {475: 4344}, + {2119, 2119, 2119, 2119, 2119, 2119, 2119, 2119, 13: 2119, 2119, 2119, 2119, 2119, 2119, 2119, 2119, 2119, 2119, 2119, 2119, 2119, 2119, 2119, 2119, 2119, 2119, 2119, 2119, 2119, 2119, 2119, 2119, 2119, 2119, 2119, 2119, 2119, 2119, 2119, 2119, 2119, 47: 2119, 472: 2119, 2119, 2119, 478: 2119, 2119, 2119, 482: 2119, 490: 2119, 2119, 501: 2119, 503: 2119, 506: 2119, 2119, 569: 2119, 645: 2119, 2119, 648: 2119}, + {475: 2041, 498: 4251, 735: 4346}, + {475: 4347}, + {2120, 2120, 2120, 2120, 2120, 2120, 2120, 2120, 13: 2120, 2120, 2120, 2120, 2120, 2120, 2120, 2120, 2120, 2120, 2120, 2120, 2120, 2120, 2120, 2120, 2120, 2120, 2120, 2120, 2120, 2120, 2120, 2120, 2120, 2120, 2120, 2120, 2120, 2120, 2120, 2120, 2120, 47: 2120, 472: 2120, 2120, 2120, 478: 2120, 2120, 2120, 482: 2120, 490: 2120, 2120, 501: 2120, 503: 2120, 506: 2120, 2120, 569: 2120, 645: 2120, 2120, 648: 2120}, + // 1835 + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 475: 3463, 663: 3464, 2736, 2737, 2735, 737: 4349}, + {2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 13: 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 47: 2121, 472: 2121, 2121, 2121, 478: 2121, 2121, 2121, 482: 2121, 490: 2121, 2121, 501: 2121, 503: 2121, 506: 2121, 2121, 569: 2121, 645: 2121, 2121, 648: 2121}, + {2: 2041, 2041, 2041, 2041, 2041, 8: 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 48: 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 475: 2041, 498: 4251, 735: 4353}, {403, 403, 403, 403, 403, 403, 403, 403, 13: 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 472: 403, 403, 403, 478: 403, 403, 403, 482: 403, 490: 403, 403, 501: 403, 503: 403, 506: 403, 403, 569: 403, 645: 403, 403, 648: 403}, {402, 402, 402, 402, 402, 402, 402, 402, 13: 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 472: 402, 402, 402, 478: 402, 402, 402, 482: 402, 490: 402, 402, 501: 402, 503: 402, 506: 402, 402, 569: 402, 645: 402, 402, 648: 402}, // 1840 - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 475: 3458, 663: 3459, 2731, 2732, 2730, 737: 4349}, - {2118, 2118, 2118, 2118, 2118, 2118, 2118, 2118, 13: 2118, 2118, 2118, 2118, 2118, 2118, 2118, 2118, 2118, 2118, 2118, 2118, 2118, 2118, 2118, 2118, 2118, 2118, 2118, 2118, 2118, 2118, 2118, 2118, 2118, 2118, 2118, 2118, 2118, 2118, 2118, 2118, 2118, 47: 2118, 472: 2118, 2118, 2118, 478: 2118, 2118, 2118, 482: 2118, 490: 2118, 2118, 501: 2118, 503: 2118, 506: 2118, 2118, 569: 2118, 645: 2118, 2118, 648: 2118}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 475: 3458, 663: 3459, 2731, 2732, 2730, 737: 4351}, - {2119, 2119, 2119, 2119, 2119, 2119, 2119, 2119, 13: 2119, 2119, 2119, 2119, 2119, 2119, 2119, 2119, 2119, 2119, 2119, 2119, 2119, 2119, 2119, 2119, 2119, 2119, 2119, 2119, 2119, 2119, 2119, 2119, 2119, 2119, 2119, 2119, 2119, 2119, 2119, 2119, 2119, 47: 2119, 472: 2119, 2119, 2119, 478: 2119, 2119, 2119, 482: 2119, 490: 2119, 2119, 501: 2119, 503: 2119, 506: 2119, 2119, 569: 2119, 645: 2119, 2119, 648: 2119}, - {475: 4353}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 475: 3463, 663: 3464, 2736, 2737, 2735, 737: 4354}, + {2122, 2122, 2122, 2122, 2122, 2122, 2122, 2122, 13: 2122, 2122, 2122, 2122, 2122, 2122, 2122, 2122, 2122, 2122, 2122, 2122, 2122, 2122, 2122, 2122, 2122, 2122, 2122, 2122, 2122, 2122, 2122, 2122, 2122, 2122, 2122, 2122, 2122, 2122, 2122, 2122, 2122, 47: 2122, 472: 2122, 2122, 2122, 478: 2122, 2122, 2122, 482: 2122, 490: 2122, 2122, 501: 2122, 503: 2122, 506: 2122, 2122, 569: 2122, 645: 2122, 2122, 648: 2122}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 475: 3463, 663: 3464, 2736, 2737, 2735, 737: 4356}, + {2123, 2123, 2123, 2123, 2123, 2123, 2123, 2123, 13: 2123, 2123, 2123, 2123, 2123, 2123, 2123, 2123, 2123, 2123, 2123, 2123, 2123, 2123, 2123, 2123, 2123, 2123, 2123, 2123, 2123, 2123, 2123, 2123, 2123, 2123, 2123, 2123, 2123, 2123, 2123, 2123, 2123, 47: 2123, 472: 2123, 2123, 2123, 478: 2123, 2123, 2123, 482: 2123, 490: 2123, 2123, 501: 2123, 503: 2123, 506: 2123, 2123, 569: 2123, 645: 2123, 2123, 648: 2123}, + {475: 4358}, // 1845 - {2120, 2120, 2120, 2120, 2120, 2120, 2120, 2120, 13: 2120, 2120, 2120, 2120, 2120, 2120, 2120, 2120, 2120, 2120, 2120, 2120, 2120, 2120, 2120, 2120, 2120, 2120, 2120, 2120, 2120, 2120, 2120, 2120, 2120, 2120, 2120, 2120, 2120, 2120, 2120, 2120, 2120, 47: 2120, 472: 2120, 2120, 2120, 478: 2120, 2120, 2120, 482: 2120, 490: 2120, 2120, 501: 2120, 503: 2120, 506: 2120, 2120, 569: 2120, 645: 2120, 2120, 648: 2120}, - {4: 4206, 4208, 397, 13: 4225, 2156, 4223, 4164, 4227, 4214, 4243, 4207, 4210, 4209, 4212, 4213, 4215, 4222, 397, 4233, 4234, 4220, 4221, 4226, 4228, 4240, 4239, 4245, 4241, 4238, 4231, 4236, 4237, 4230, 4232, 4235, 4224, 69: 4177, 72: 4198, 4199, 81: 4200, 132: 4180, 196: 4165, 198: 4184, 201: 4185, 211: 4179, 219: 4195, 232: 4174, 241: 4181, 247: 4176, 264: 4186, 272: 4182, 279: 4196, 4197, 286: 4166, 474: 4194, 479: 4205, 4242, 482: 2156, 496: 4201, 502: 4183, 4193, 4168, 506: 2156, 582: 4173, 587: 4169, 646: 2156, 648: 4211, 660: 4188, 668: 4175, 670: 4202, 678: 4187, 685: 4189, 688: 4170, 703: 4178, 779: 4216, 791: 4218, 811: 4217, 833: 4219, 837: 4229, 841: 4244, 868: 4192, 881: 4190, 917: 4167, 924: 4171, 987: 4355, 1135: 4172, 1162: 4191}, - {2385, 2385, 2385, 2385, 7: 2385, 490: 2385}, - {2399, 2399, 2399, 2399, 7: 2399, 490: 2399}, - {2398, 2398, 2398, 2398, 7: 2398, 490: 2398}, + {2124, 2124, 2124, 2124, 2124, 2124, 2124, 2124, 13: 2124, 2124, 2124, 2124, 2124, 2124, 2124, 2124, 2124, 2124, 2124, 2124, 2124, 2124, 2124, 2124, 2124, 2124, 2124, 2124, 2124, 2124, 2124, 2124, 2124, 2124, 2124, 2124, 2124, 2124, 2124, 2124, 2124, 47: 2124, 472: 2124, 2124, 2124, 478: 2124, 2124, 2124, 482: 2124, 490: 2124, 2124, 501: 2124, 503: 2124, 506: 2124, 2124, 569: 2124, 645: 2124, 2124, 648: 2124}, + {4: 4211, 4213, 397, 13: 4230, 2160, 4228, 4169, 4232, 4219, 4248, 4212, 4215, 4214, 4217, 4218, 4220, 4227, 397, 4238, 4239, 4225, 4226, 4231, 4233, 4245, 4244, 4250, 4246, 4243, 4236, 4241, 4242, 4235, 4237, 4240, 4229, 69: 4182, 72: 4203, 4204, 81: 4205, 132: 4185, 196: 4170, 198: 4189, 201: 4190, 211: 4184, 219: 4200, 232: 4179, 241: 4186, 247: 4181, 264: 4191, 272: 4187, 279: 4201, 4202, 286: 4171, 474: 4199, 479: 4210, 4247, 482: 2160, 496: 4206, 502: 4188, 4198, 4173, 506: 2160, 582: 4178, 587: 4174, 646: 2160, 648: 4216, 660: 4193, 668: 4180, 670: 4207, 678: 4192, 685: 4194, 688: 4175, 703: 4183, 779: 4221, 791: 4223, 811: 4222, 833: 4224, 837: 4234, 841: 4249, 868: 4197, 881: 4195, 917: 4172, 924: 4176, 987: 4360, 1135: 4177, 1162: 4196}, + {2389, 2389, 2389, 2389, 7: 2389, 490: 2389}, + {2403, 2403, 2403, 2403, 7: 2403, 490: 2403}, + {2402, 2402, 2402, 2402, 7: 2402, 490: 2402}, // 1850 - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 479: 4359, 663: 4360, 2731, 2732, 2730}, - {2401, 2401, 2401, 2401, 7: 2401, 81: 2401, 490: 2401}, - {2400, 2400, 2400, 2400, 7: 2400, 81: 2400, 490: 2400}, - {149: 4366, 235: 4363, 256: 4364, 258: 4365, 479: 4362}, - {2406, 2406, 2406, 2406, 7: 2406, 490: 2406, 496: 2406}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 479: 4364, 663: 4365, 2736, 2737, 2735}, + {2405, 2405, 2405, 2405, 7: 2405, 81: 2405, 490: 2405}, + {2404, 2404, 2404, 2404, 7: 2404, 81: 2404, 490: 2404}, + {149: 4371, 235: 4368, 256: 4369, 258: 4370, 479: 4367}, + {2410, 2410, 2410, 2410, 7: 2410, 490: 2410, 496: 2410}, // 1855 - {2405, 2405, 2405, 2405, 7: 2405, 490: 2405, 496: 2405}, - {2404, 2404, 2404, 2404, 7: 2404, 490: 2404, 496: 2404}, - {2403, 2403, 2403, 2403, 7: 2403, 490: 2403, 496: 2403}, - {2402, 2402, 2402, 2402, 7: 2402, 490: 2402, 496: 2402}, - {2424, 2424, 2424, 2424, 7: 2424, 490: 2424}, + {2409, 2409, 2409, 2409, 7: 2409, 490: 2409, 496: 2409}, + {2408, 2408, 2408, 2408, 7: 2408, 490: 2408, 496: 2408}, + {2407, 2407, 2407, 2407, 7: 2407, 490: 2407, 496: 2407}, + {2406, 2406, 2406, 2406, 7: 2406, 490: 2406, 496: 2406}, + {2428, 2428, 2428, 2428, 7: 2428, 490: 2428}, // 1860 - {2425, 2425, 2425, 2425, 7: 2425, 490: 2425}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 4382, 2731, 2732, 2730}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 3889, 2731, 2732, 2730, 736: 4381}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 3889, 2731, 2732, 2730, 736: 4380}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 3889, 2731, 2732, 2730, 736: 4379}, + {2429, 2429, 2429, 2429, 7: 2429, 490: 2429}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 4387, 2736, 2737, 2735}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 3894, 2736, 2737, 2735, 736: 4386}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 3894, 2736, 2737, 2735, 736: 4385}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 3894, 2736, 2737, 2735, 736: 4384}, // 1865 - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 4376, 2731, 2732, 2730}, - {2: 2397, 2397, 2397, 2397, 2397, 8: 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 48: 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 473: 2397, 481: 2397, 494: 2397, 566: 2397}, - {2: 2396, 2396, 2396, 2396, 2396, 8: 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 48: 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 473: 2396, 481: 2396, 494: 2396, 566: 2396}, - {649: 4377}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 4378, 2731, 2732, 2730}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 4381, 2736, 2737, 2735}, + {2: 2401, 2401, 2401, 2401, 2401, 8: 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 48: 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 473: 2401, 481: 2401, 494: 2401, 566: 2401}, + {2: 2400, 2400, 2400, 2400, 2400, 8: 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 48: 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 473: 2400, 481: 2400, 494: 2400, 566: 2400}, + {649: 4382}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 4383, 2736, 2737, 2735}, // 1870 - {2430, 2430, 2430, 2430, 7: 2430, 490: 2430}, - {2431, 2431, 2431, 2431, 7: 2431, 490: 2431}, - {2432, 2432, 2432, 2432, 7: 2432, 490: 2432}, - {2433, 2433, 2433, 2433, 7: 2433, 490: 2433}, - {649: 4383}, - // 1875 - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 4384, 2731, 2732, 2730}, {2434, 2434, 2434, 2434, 7: 2434, 490: 2434}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 4111, 2731, 2732, 2730, 742: 4400}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 4395, 2731, 2732, 2730}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 4391, 2731, 2732, 2730}, + {2435, 2435, 2435, 2435, 7: 2435, 490: 2435}, + {2436, 2436, 2436, 2436, 7: 2436, 490: 2436}, + {2437, 2437, 2437, 2437, 7: 2437, 490: 2437}, + {649: 4388}, + // 1875 + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 4389, 2736, 2737, 2735}, + {2438, 2438, 2438, 2438, 7: 2438, 490: 2438}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 4116, 2736, 2737, 2735, 743: 4405}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 4400, 2736, 2737, 2735}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 4396, 2736, 2737, 2735}, // 1880 - {2: 2392, 2392, 2392, 2392, 2392, 8: 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 48: 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 2392, 473: 2392, 566: 2392}, + {2: 2396, 2396, 2396, 2396, 2396, 8: 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 48: 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 473: 2396, 566: 2396}, {2: 439, 439, 439, 439, 439, 8: 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 48: 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439}, {2: 438, 438, 438, 438, 438, 8: 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 48: 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438}, - {84: 4394, 87: 4393, 854: 4392}, - {2419, 2419, 2419, 2419, 7: 2419, 490: 2419}, + {84: 4399, 87: 4398, 854: 4397}, + {2423, 2423, 2423, 2423, 7: 2423, 490: 2423}, // 1885 - {1824, 1824, 1824, 1824, 1824, 7: 1824, 17: 1824, 47: 1824, 81: 1824, 1824, 1824, 1824, 1824, 87: 1824, 474: 1824, 481: 1824, 490: 1824, 496: 1824}, - {1823, 1823, 1823, 1823, 1823, 7: 1823, 17: 1823, 47: 1823, 81: 1823, 1823, 1823, 1823, 1823, 87: 1823, 474: 1823, 481: 1823, 490: 1823, 496: 1823}, - {147: 4397, 476: 4057, 4056, 809: 4398, 932: 4396}, - {2421, 2421, 2421, 2421, 7: 2421, 490: 2421}, - {2289, 2289, 2289, 2289, 2289, 2289, 2289, 2289, 2289, 2289, 2289, 2289, 2289, 47: 2289, 472: 2289, 476: 2289, 2289, 2289, 2289, 482: 2289, 490: 2289, 492: 2289, 573: 2289, 582: 2289, 586: 2289, 638: 2289, 642: 2289, 2289, 2289}, + {1828, 1828, 1828, 1828, 1828, 7: 1828, 17: 1828, 47: 1828, 81: 1828, 1828, 1828, 1828, 1828, 87: 1828, 474: 1828, 481: 1828, 490: 1828, 496: 1828}, + {1827, 1827, 1827, 1827, 1827, 7: 1827, 17: 1827, 47: 1827, 81: 1827, 1827, 1827, 1827, 1827, 87: 1827, 474: 1827, 481: 1827, 490: 1827, 496: 1827}, + {147: 4402, 476: 4062, 4061, 809: 4403, 932: 4401}, + {2425, 2425, 2425, 2425, 7: 2425, 490: 2425}, + {2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 47: 2293, 472: 2293, 476: 2293, 2293, 2293, 2293, 482: 2293, 490: 2293, 492: 2293, 573: 2293, 582: 2293, 586: 2293, 638: 2293, 642: 2293, 2293, 2293}, // 1890 - {147: 4399}, - {2288, 2288, 2288, 2288, 2288, 2288, 2288, 2288, 2288, 2288, 2288, 2288, 2288, 47: 2288, 472: 2288, 476: 2288, 2288, 2288, 2288, 482: 2288, 490: 2288, 492: 2288, 573: 2288, 582: 2288, 586: 2288, 638: 2288, 642: 2288, 2288, 2288}, - {504: 4401, 668: 4402}, - {479: 4404}, - {479: 4403}, + {147: 4404}, + {2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2292, 47: 2292, 472: 2292, 476: 2292, 2292, 2292, 2292, 482: 2292, 490: 2292, 492: 2292, 573: 2292, 582: 2292, 586: 2292, 638: 2292, 642: 2292, 2292, 2292}, + {504: 4406, 668: 4407}, + {479: 4409}, + {479: 4408}, // 1895 - {2435, 2435, 2435, 2435, 7: 2435, 490: 2435}, - {473: 4406, 475: 3208, 485: 4408, 4409, 492: 3199, 508: 3203, 571: 3198, 3200, 574: 3202, 3201, 577: 3206, 580: 3207, 593: 3205, 711: 4407, 3204, 1131: 4405}, - {2437, 2437, 2437, 2437, 7: 2437, 490: 2437}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 2724, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 4412}, - {2205, 2205, 2205, 2205, 2205, 2205, 2205, 2205, 2205, 2205, 2205, 2205, 2205, 47: 2205, 472: 2205, 476: 2205, 2205, 2205, 2205, 482: 2205, 490: 2205, 492: 2205, 573: 2205, 582: 2205, 586: 2205, 638: 2205, 642: 2205, 2205, 2205}, + {2439, 2439, 2439, 2439, 7: 2439, 490: 2439}, + {473: 4411, 475: 3213, 485: 4413, 4414, 492: 3204, 508: 3208, 571: 3203, 3205, 574: 3207, 3206, 577: 3211, 580: 3212, 593: 3210, 711: 4412, 3209, 1131: 4410}, + {2441, 2441, 2441, 2441, 7: 2441, 490: 2441}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 2729, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 4417}, + {2209, 2209, 2209, 2209, 2209, 2209, 2209, 2209, 2209, 2209, 2209, 2209, 2209, 47: 2209, 472: 2209, 476: 2209, 2209, 2209, 2209, 482: 2209, 490: 2209, 492: 2209, 573: 2209, 582: 2209, 586: 2209, 638: 2209, 642: 2209, 2209, 2209}, // 1900 - {508: 3391, 574: 3393, 3392, 818: 4411}, - {508: 3391, 574: 3393, 3392, 818: 4410}, - {2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 47: 2203, 472: 2203, 476: 2203, 2203, 2203, 2203, 482: 2203, 490: 2203, 492: 2203, 573: 2203, 582: 2203, 586: 2203, 638: 2203, 642: 2203, 2203, 2203}, - {2204, 2204, 2204, 2204, 2204, 2204, 2204, 2204, 2204, 2204, 2204, 2204, 2204, 47: 2204, 472: 2204, 476: 2204, 2204, 2204, 2204, 482: 2204, 490: 2204, 492: 2204, 573: 2204, 582: 2204, 586: 2204, 638: 2204, 642: 2204, 2204, 2204}, - {47: 4413, 505: 3313, 509: 3311, 3312, 3310, 3308, 733: 3309, 3307}, + {508: 3396, 574: 3398, 3397, 818: 4416}, + {508: 3396, 574: 3398, 3397, 818: 4415}, + {2207, 2207, 2207, 2207, 2207, 2207, 2207, 2207, 2207, 2207, 2207, 2207, 2207, 47: 2207, 472: 2207, 476: 2207, 2207, 2207, 2207, 482: 2207, 490: 2207, 492: 2207, 573: 2207, 582: 2207, 586: 2207, 638: 2207, 642: 2207, 2207, 2207}, + {2208, 2208, 2208, 2208, 2208, 2208, 2208, 2208, 2208, 2208, 2208, 2208, 2208, 47: 2208, 472: 2208, 476: 2208, 2208, 2208, 2208, 482: 2208, 490: 2208, 492: 2208, 573: 2208, 582: 2208, 586: 2208, 638: 2208, 642: 2208, 2208, 2208}, + {47: 4418, 505: 3318, 509: 3316, 3317, 3315, 3313, 733: 3314, 3312}, // 1905 - {2436, 2436, 2436, 2436, 7: 2436, 490: 2436}, - {2: 1850, 1850, 1850, 1850, 1850, 8: 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 48: 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 566: 4416, 780: 4415}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 4111, 2731, 2732, 2730, 742: 4418}, - {584: 4417}, - {2: 1849, 1849, 1849, 1849, 1849, 8: 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 48: 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 1849, 475: 1849, 570: 1849}, + {2440, 2440, 2440, 2440, 7: 2440, 490: 2440}, + {2: 1854, 1854, 1854, 1854, 1854, 8: 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 48: 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 566: 4421, 780: 4420}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 4116, 2736, 2737, 2735, 743: 4423}, + {584: 4422}, + {2: 1853, 1853, 1853, 1853, 1853, 8: 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 48: 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 475: 1853, 570: 1853}, // 1910 - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 4111, 2731, 2732, 2730, 742: 4420, 846: 4419}, - {2391, 2391, 2391, 2391, 7: 2391, 4689, 4690, 490: 2391, 927: 4688}, - {10: 4422, 101: 4470, 109: 4471, 165: 4461, 173: 4481, 4480, 4446, 193: 4483, 218: 4482, 225: 4443, 311: 4450, 4442, 332: 4459, 358: 4466, 4465, 363: 4469, 398: 4477, 504: 4460, 506: 4464, 543: 4455, 646: 4463, 676: 4468, 4467, 679: 4444, 4449, 4447, 4440, 4434, 4448, 687: 4456, 689: 4441, 4473, 4435, 4436, 4437, 4438, 4439, 4462, 4475, 4479, 4474, 4433, 4478, 4445, 704: 4432, 4472, 4431, 4476, 899: 4451, 1154: 4453, 1177: 4430, 4457, 4427, 1197: 4425, 1211: 4428, 1213: 4429, 1231: 4426, 1247: 4452, 4423, 4454, 1306: 4424, 1318: 4458, 1321: 4421, 1346: 4484}, - {2252, 2252, 2252, 2252, 4564, 4570, 4558, 2252, 2252, 2252, 4562, 4571, 4569, 47: 2252, 472: 4563, 476: 4057, 4056, 2259, 4561, 482: 4568, 490: 2252, 492: 4557, 573: 2293, 582: 2382, 586: 4555, 638: 4560, 642: 4553, 4575, 4572, 809: 4556, 831: 4565, 908: 4567, 926: 4573, 935: 4566, 954: 4559, 1002: 4574, 4687}, - {2252, 2252, 2252, 2252, 4564, 4570, 4558, 2252, 2252, 2252, 4562, 4571, 4569, 47: 2252, 472: 4563, 476: 4057, 4056, 2259, 4561, 482: 4568, 490: 2252, 492: 4557, 573: 2293, 582: 2382, 586: 4555, 638: 4560, 642: 4553, 4575, 4572, 809: 4556, 831: 4565, 908: 4567, 926: 4573, 935: 4566, 954: 4559, 1002: 4574, 4554}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 4116, 2736, 2737, 2735, 743: 4425, 846: 4424}, + {2395, 2395, 2395, 2395, 7: 2395, 4694, 4695, 490: 2395, 927: 4693}, + {10: 4427, 101: 4475, 109: 4476, 166: 4466, 173: 4486, 4485, 4451, 193: 4488, 218: 4487, 225: 4448, 311: 4455, 4447, 332: 4464, 358: 4471, 4470, 363: 4474, 398: 4482, 504: 4465, 506: 4469, 543: 4460, 646: 4468, 676: 4473, 4472, 679: 4449, 4454, 4452, 4445, 4439, 4453, 687: 4461, 689: 4446, 4478, 4440, 4441, 4442, 4443, 4444, 4467, 4480, 4484, 4479, 4438, 4483, 4450, 704: 4437, 4477, 4436, 4481, 899: 4456, 1154: 4458, 1178: 4435, 4462, 4432, 1198: 4430, 1212: 4433, 1214: 4434, 1232: 4431, 1248: 4457, 4428, 4459, 1307: 4429, 1319: 4463, 1322: 4426, 1347: 4489}, + {2256, 2256, 2256, 2256, 4569, 4575, 4563, 2256, 2256, 2256, 4567, 4576, 4574, 47: 2256, 472: 4568, 476: 4062, 4061, 2263, 4566, 482: 4573, 490: 2256, 492: 4562, 573: 2297, 582: 2386, 586: 4560, 638: 4565, 642: 4558, 4580, 4577, 809: 4561, 831: 4570, 908: 4572, 926: 4578, 935: 4571, 954: 4564, 1002: 4579, 4692}, + {2256, 2256, 2256, 2256, 4569, 4575, 4563, 2256, 2256, 2256, 4567, 4576, 4574, 47: 2256, 472: 4568, 476: 4062, 4061, 2263, 4566, 482: 4573, 490: 2256, 492: 4562, 573: 2297, 582: 2386, 586: 4560, 638: 4565, 642: 4558, 4580, 4577, 809: 4561, 831: 4570, 908: 4572, 926: 4578, 935: 4571, 954: 4564, 1002: 4579, 4559}, // 1915 {371, 371, 371, 371, 371, 371, 371, 371, 371, 371, 371, 371, 371, 47: 371, 472: 371, 476: 371, 371, 371, 371, 482: 371, 490: 371, 492: 371, 573: 371, 582: 371, 586: 371, 638: 371, 642: 371, 371, 371}, {370, 370, 370, 370, 370, 370, 370, 370, 370, 370, 370, 370, 370, 47: 370, 472: 370, 476: 370, 370, 370, 370, 482: 370, 490: 370, 492: 370, 573: 370, 582: 370, 586: 370, 638: 370, 642: 370, 370, 370}, {369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 47: 369, 472: 369, 476: 369, 369, 369, 369, 482: 369, 490: 369, 492: 369, 573: 369, 582: 369, 586: 369, 638: 369, 642: 369, 369, 369}, - {286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 47: 286, 49: 286, 472: 286, 3794, 476: 286, 286, 286, 286, 482: 286, 490: 286, 492: 286, 573: 286, 582: 286, 586: 286, 638: 286, 642: 286, 286, 286, 739: 286, 741: 286, 762: 3795, 785: 4551}, - {281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 47: 281, 49: 281, 472: 281, 476: 281, 281, 281, 281, 482: 281, 490: 281, 492: 281, 573: 281, 582: 281, 586: 281, 638: 281, 642: 281, 281, 281, 739: 281, 741: 281, 874: 4550}, + {286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 47: 286, 49: 286, 472: 286, 3799, 476: 286, 286, 286, 286, 482: 286, 490: 286, 492: 286, 573: 286, 582: 286, 586: 286, 638: 286, 642: 286, 286, 286, 739: 286, 741: 286, 762: 3800, 785: 4556}, + {281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 47: 281, 49: 281, 472: 281, 476: 281, 281, 281, 281, 482: 281, 490: 281, 492: 281, 573: 281, 582: 281, 586: 281, 638: 281, 642: 281, 281, 281, 739: 281, 741: 281, 874: 4555}, // 1920 - {279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 47: 279, 49: 279, 472: 279, 3781, 476: 279, 279, 279, 279, 482: 279, 490: 279, 492: 279, 573: 279, 582: 279, 586: 279, 638: 279, 642: 279, 279, 279, 739: 279, 741: 279, 762: 3782, 902: 4548, 907: 3783}, - {279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 47: 279, 49: 279, 472: 279, 3781, 476: 279, 279, 279, 279, 482: 279, 490: 279, 492: 279, 573: 279, 582: 279, 586: 279, 638: 279, 642: 279, 279, 279, 739: 279, 741: 279, 762: 3782, 902: 4546, 907: 3783}, - {286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 47: 286, 472: 286, 3794, 476: 286, 286, 286, 286, 482: 286, 490: 286, 492: 286, 573: 286, 582: 286, 586: 286, 638: 286, 642: 286, 286, 286, 762: 3795, 785: 4545}, + {279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 47: 279, 49: 279, 472: 279, 3786, 476: 279, 279, 279, 279, 482: 279, 490: 279, 492: 279, 573: 279, 582: 279, 586: 279, 638: 279, 642: 279, 279, 279, 739: 279, 741: 279, 762: 3787, 902: 4553, 907: 3788}, + {279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 47: 279, 49: 279, 472: 279, 3786, 476: 279, 279, 279, 279, 482: 279, 490: 279, 492: 279, 573: 279, 582: 279, 586: 279, 638: 279, 642: 279, 279, 279, 739: 279, 741: 279, 762: 3787, 902: 4551, 907: 3788}, + {286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 47: 286, 472: 286, 3799, 476: 286, 286, 286, 286, 482: 286, 490: 286, 492: 286, 573: 286, 582: 286, 586: 286, 638: 286, 642: 286, 286, 286, 762: 3800, 785: 4550}, {363, 363, 363, 363, 363, 363, 363, 363, 363, 363, 363, 363, 363, 47: 363, 49: 363, 472: 363, 363, 476: 363, 363, 363, 363, 482: 363, 490: 363, 492: 363, 573: 363, 582: 363, 586: 363, 638: 363, 642: 363, 363, 363, 739: 363, 741: 363}, {362, 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, 47: 362, 49: 362, 472: 362, 362, 476: 362, 362, 362, 362, 482: 362, 490: 362, 492: 362, 573: 362, 582: 362, 586: 362, 638: 362, 642: 362, 362, 362, 739: 362, 741: 362}, // 1925 @@ -8443,27 +8450,27 @@ var ( {344, 344, 344, 344, 344, 344, 344, 344, 344, 344, 344, 344, 344, 47: 344, 49: 344, 472: 344, 344, 476: 344, 344, 344, 344, 482: 344, 490: 344, 492: 344, 573: 344, 582: 344, 586: 344, 638: 344, 642: 344, 344, 344, 739: 344, 741: 344}, // 1940 {343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 47: 343, 49: 343, 472: 343, 343, 476: 343, 343, 343, 343, 482: 343, 490: 343, 492: 343, 573: 343, 582: 343, 586: 343, 638: 343, 642: 343, 343, 343, 739: 343, 741: 343}, - {342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 47: 342, 49: 342, 472: 342, 342, 476: 342, 342, 342, 342, 482: 342, 490: 342, 492: 342, 573: 342, 582: 342, 586: 342, 638: 342, 642: 342, 342, 342, 739: 342, 741: 342, 1272: 4544}, + {342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 47: 342, 49: 342, 472: 342, 342, 476: 342, 342, 342, 342, 482: 342, 490: 342, 492: 342, 573: 342, 582: 342, 586: 342, 638: 342, 642: 342, 342, 342, 739: 342, 741: 342, 1273: 4549}, {340, 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, 47: 340, 472: 340, 340, 476: 340, 340, 340, 340, 482: 340, 490: 340, 492: 340, 573: 340, 582: 340, 586: 340, 638: 340, 642: 340, 340, 340}, - {273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 14: 3804, 47: 273, 472: 273, 3794, 476: 273, 273, 273, 273, 482: 273, 490: 273, 492: 273, 506: 3805, 543: 3801, 573: 273, 582: 273, 586: 273, 638: 273, 642: 273, 273, 273, 646: 3803, 762: 4541, 772: 3802, 797: 4542}, - {273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 14: 3804, 47: 273, 472: 273, 3794, 476: 273, 273, 273, 273, 482: 273, 490: 273, 492: 273, 506: 3805, 543: 3801, 573: 273, 582: 273, 586: 273, 638: 273, 642: 273, 273, 273, 646: 3803, 762: 4538, 772: 3802, 797: 4539}, + {273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 14: 3809, 47: 273, 472: 273, 3799, 476: 273, 273, 273, 273, 482: 273, 490: 273, 492: 273, 506: 3810, 543: 3806, 573: 273, 582: 273, 586: 273, 638: 273, 642: 273, 273, 273, 646: 3808, 762: 4546, 772: 3807, 797: 4547}, + {273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 14: 3809, 47: 273, 472: 273, 3799, 476: 273, 273, 273, 273, 482: 273, 490: 273, 492: 273, 506: 3810, 543: 3806, 573: 273, 582: 273, 586: 273, 638: 273, 642: 273, 273, 273, 646: 3808, 762: 4543, 772: 3807, 797: 4544}, // 1945 - {473: 3794, 762: 4536}, - {473: 3794, 762: 4534}, - {286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 47: 286, 472: 286, 3794, 476: 286, 286, 286, 286, 482: 286, 490: 286, 492: 286, 573: 286, 582: 286, 586: 286, 638: 286, 642: 286, 286, 286, 762: 3795, 785: 4533}, - {473: 3794, 762: 4532}, + {473: 3799, 762: 4541}, + {473: 3799, 762: 4539}, + {286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 47: 286, 472: 286, 3799, 476: 286, 286, 286, 286, 482: 286, 490: 286, 492: 286, 573: 286, 582: 286, 586: 286, 638: 286, 642: 286, 286, 286, 762: 3800, 785: 4538}, + {473: 3799, 762: 4537}, {331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 47: 331, 472: 331, 476: 331, 331, 331, 331, 482: 331, 490: 331, 492: 331, 573: 331, 582: 331, 586: 331, 638: 331, 642: 331, 331, 331}, // 1950 - {273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 14: 3804, 47: 273, 102: 4513, 4515, 106: 4514, 472: 273, 476: 273, 273, 273, 273, 482: 273, 490: 273, 492: 273, 506: 3805, 543: 3801, 573: 273, 582: 273, 586: 273, 638: 273, 642: 273, 273, 273, 646: 3803, 772: 3802, 797: 4512, 882: 4531}, - {473: 4527}, - {473: 4517}, + {273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 14: 3809, 47: 273, 102: 4518, 4520, 106: 4519, 472: 273, 476: 273, 273, 273, 273, 482: 273, 490: 273, 492: 273, 506: 3810, 543: 3806, 573: 273, 582: 273, 586: 273, 638: 273, 642: 273, 273, 273, 646: 3808, 772: 3807, 797: 4517, 882: 4536}, + {473: 4532}, + {473: 4522}, {327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 47: 327, 472: 327, 476: 327, 327, 327, 327, 482: 327, 490: 327, 492: 327, 573: 327, 582: 327, 586: 327, 638: 327, 642: 327, 327, 327}, - {273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 14: 3804, 47: 273, 102: 4513, 4515, 106: 4514, 472: 273, 476: 273, 273, 273, 273, 482: 273, 490: 273, 492: 273, 506: 4510, 543: 3801, 573: 273, 582: 273, 586: 273, 638: 273, 642: 273, 273, 273, 646: 4509, 676: 4468, 4467, 687: 4511, 772: 3802, 797: 4512, 882: 4508, 1154: 4507}, + {273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 14: 3809, 47: 273, 102: 4518, 4520, 106: 4519, 472: 273, 476: 273, 273, 273, 273, 482: 273, 490: 273, 492: 273, 506: 4515, 543: 3806, 573: 273, 582: 273, 586: 273, 638: 273, 642: 273, 273, 273, 646: 4514, 676: 4473, 4472, 687: 4516, 772: 3807, 797: 4517, 882: 4513, 1154: 4512}, // 1955 - {324, 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, 14: 324, 47: 324, 472: 324, 324, 476: 324, 324, 324, 324, 482: 324, 490: 324, 492: 324, 506: 324, 543: 324, 573: 324, 582: 324, 586: 324, 638: 324, 642: 324, 324, 324, 646: 324, 842: 4506}, - {323, 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, 14: 323, 47: 323, 472: 323, 323, 476: 323, 323, 323, 323, 482: 323, 490: 323, 492: 323, 506: 323, 543: 323, 573: 323, 582: 323, 586: 323, 638: 323, 642: 323, 323, 323, 646: 323, 842: 4505}, - {322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 14: 322, 47: 322, 472: 322, 322, 476: 322, 322, 322, 322, 482: 322, 490: 322, 492: 322, 506: 322, 543: 322, 573: 322, 582: 322, 586: 322, 638: 322, 642: 322, 322, 322, 646: 322, 676: 4503, 4502, 842: 4504}, - {506: 4497, 646: 4496, 676: 4499, 4498}, + {324, 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, 14: 324, 47: 324, 472: 324, 324, 476: 324, 324, 324, 324, 482: 324, 490: 324, 492: 324, 506: 324, 543: 324, 573: 324, 582: 324, 586: 324, 638: 324, 642: 324, 324, 324, 646: 324, 842: 4511}, + {323, 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, 14: 323, 47: 323, 472: 323, 323, 476: 323, 323, 323, 323, 482: 323, 490: 323, 492: 323, 506: 323, 543: 323, 573: 323, 582: 323, 586: 323, 638: 323, 642: 323, 323, 323, 646: 323, 842: 4510}, + {322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 14: 322, 47: 322, 472: 322, 322, 476: 322, 322, 322, 322, 482: 322, 490: 322, 492: 322, 506: 322, 543: 322, 573: 322, 582: 322, 586: 322, 638: 322, 642: 322, 322, 322, 646: 322, 676: 4508, 4507, 842: 4509}, + {506: 4502, 646: 4501, 676: 4504, 4503}, {317, 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, 14: 317, 47: 317, 102: 317, 317, 106: 317, 472: 317, 317, 476: 317, 317, 317, 317, 482: 317, 490: 317, 492: 317, 506: 317, 543: 317, 573: 317, 582: 317, 586: 317, 638: 317, 642: 317, 317, 317, 646: 317}, // 1960 {316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 14: 316, 47: 316, 102: 316, 316, 106: 316, 472: 316, 316, 476: 316, 316, 316, 316, 482: 316, 490: 316, 492: 316, 506: 316, 543: 316, 573: 316, 582: 316, 586: 316, 638: 316, 642: 316, 316, 316, 646: 316}, @@ -8472,22 +8479,22 @@ var ( {306, 306, 306, 306, 306, 306, 306, 306, 306, 306, 306, 306, 306, 47: 306, 49: 306, 472: 306, 306, 476: 306, 306, 306, 306, 482: 306, 490: 306, 492: 306, 573: 306, 582: 306, 586: 306, 638: 306, 642: 306, 306, 306, 739: 306, 741: 306}, {305, 305, 305, 305, 305, 305, 305, 305, 305, 305, 305, 305, 305, 47: 305, 472: 305, 476: 305, 305, 305, 305, 482: 305, 490: 305, 492: 305, 573: 305, 582: 305, 586: 305, 638: 305, 642: 305, 305, 305}, // 1965 - {286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 47: 286, 472: 286, 3794, 476: 286, 286, 286, 286, 482: 286, 490: 286, 492: 286, 573: 286, 582: 286, 586: 286, 638: 286, 642: 286, 286, 286, 762: 3795, 785: 4495}, + {286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 47: 286, 472: 286, 3799, 476: 286, 286, 286, 286, 482: 286, 490: 286, 492: 286, 573: 286, 582: 286, 586: 286, 638: 286, 642: 286, 286, 286, 762: 3800, 785: 4500}, {303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 47: 303, 472: 303, 476: 303, 303, 303, 303, 482: 303, 490: 303, 492: 303, 573: 303, 582: 303, 586: 303, 638: 303, 642: 303, 303, 303}, {302, 302, 302, 302, 302, 302, 302, 302, 302, 302, 302, 302, 302, 47: 302, 472: 302, 476: 302, 302, 302, 302, 482: 302, 490: 302, 492: 302, 573: 302, 582: 302, 586: 302, 638: 302, 642: 302, 302, 302}, {300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 14: 300, 47: 300, 102: 300, 300, 106: 300, 472: 300, 476: 300, 300, 300, 300, 482: 300, 490: 300, 492: 300, 506: 300, 543: 300, 573: 300, 582: 300, 586: 300, 638: 300, 642: 300, 300, 300, 646: 300}, - {286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 14: 286, 47: 286, 102: 286, 286, 106: 286, 472: 286, 3794, 476: 286, 286, 286, 286, 482: 286, 490: 286, 492: 286, 506: 286, 543: 286, 573: 286, 582: 286, 586: 286, 638: 286, 642: 286, 286, 286, 646: 286, 762: 3795, 785: 4494}, + {286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 14: 286, 47: 286, 102: 286, 286, 106: 286, 472: 286, 3799, 476: 286, 286, 286, 286, 482: 286, 490: 286, 492: 286, 506: 286, 543: 286, 573: 286, 582: 286, 586: 286, 638: 286, 642: 286, 286, 286, 646: 286, 762: 3800, 785: 4499}, // 1970 {298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 14: 298, 47: 298, 102: 298, 298, 106: 298, 472: 298, 476: 298, 298, 298, 298, 482: 298, 490: 298, 492: 298, 506: 298, 543: 298, 573: 298, 582: 298, 586: 298, 638: 298, 642: 298, 298, 298, 646: 298}, {297, 297, 297, 297, 297, 297, 297, 297, 297, 297, 297, 297, 297, 14: 297, 47: 297, 102: 297, 297, 106: 297, 472: 297, 476: 297, 297, 297, 297, 482: 297, 490: 297, 492: 297, 506: 297, 543: 297, 573: 297, 582: 297, 586: 297, 638: 297, 642: 297, 297, 297, 646: 297}, {292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 47: 292, 472: 292, 476: 292, 292, 292, 292, 482: 292, 490: 292, 492: 292, 573: 292, 582: 292, 586: 292, 638: 292, 642: 292, 292, 292}, - {286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 47: 286, 472: 286, 3794, 476: 286, 286, 286, 286, 482: 286, 490: 286, 492: 286, 573: 286, 582: 286, 586: 286, 638: 286, 642: 286, 286, 286, 762: 3795, 785: 4493}, - {286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 47: 286, 472: 286, 3794, 476: 286, 286, 286, 286, 482: 286, 490: 286, 492: 286, 573: 286, 582: 286, 586: 286, 638: 286, 642: 286, 286, 286, 762: 3795, 785: 4492}, + {286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 47: 286, 472: 286, 3799, 476: 286, 286, 286, 286, 482: 286, 490: 286, 492: 286, 573: 286, 582: 286, 586: 286, 638: 286, 642: 286, 286, 286, 762: 3800, 785: 4498}, + {286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 47: 286, 472: 286, 3799, 476: 286, 286, 286, 286, 482: 286, 490: 286, 492: 286, 573: 286, 582: 286, 586: 286, 638: 286, 642: 286, 286, 286, 762: 3800, 785: 4497}, // 1975 - {286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 47: 286, 472: 286, 3794, 476: 286, 286, 286, 286, 482: 286, 490: 286, 492: 286, 573: 286, 582: 286, 586: 286, 638: 286, 642: 286, 286, 286, 762: 3795, 785: 4491}, - {286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 47: 286, 49: 286, 472: 286, 3794, 476: 286, 286, 286, 286, 482: 286, 490: 286, 492: 286, 573: 286, 582: 286, 586: 286, 638: 286, 642: 286, 286, 286, 739: 286, 741: 286, 762: 3795, 785: 4485}, - {281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 47: 281, 49: 281, 472: 281, 476: 281, 281, 281, 281, 482: 281, 490: 281, 492: 281, 573: 281, 582: 281, 586: 281, 638: 281, 642: 281, 281, 281, 739: 281, 741: 281, 874: 4486}, - {288, 288, 288, 288, 288, 288, 288, 288, 288, 288, 288, 288, 288, 47: 288, 49: 4488, 472: 288, 476: 288, 288, 288, 288, 482: 288, 490: 288, 492: 288, 573: 288, 582: 288, 586: 288, 638: 288, 642: 288, 288, 288, 739: 4487, 741: 4489, 873: 4490}, + {286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 47: 286, 472: 286, 3799, 476: 286, 286, 286, 286, 482: 286, 490: 286, 492: 286, 573: 286, 582: 286, 586: 286, 638: 286, 642: 286, 286, 286, 762: 3800, 785: 4496}, + {286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 47: 286, 49: 286, 472: 286, 3799, 476: 286, 286, 286, 286, 482: 286, 490: 286, 492: 286, 573: 286, 582: 286, 586: 286, 638: 286, 642: 286, 286, 286, 739: 286, 741: 286, 762: 3800, 785: 4490}, + {281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 47: 281, 49: 281, 472: 281, 476: 281, 281, 281, 281, 482: 281, 490: 281, 492: 281, 573: 281, 582: 281, 586: 281, 638: 281, 642: 281, 281, 281, 739: 281, 741: 281, 874: 4491}, + {288, 288, 288, 288, 288, 288, 288, 288, 288, 288, 288, 288, 288, 47: 288, 49: 4493, 472: 288, 476: 288, 288, 288, 288, 482: 288, 490: 288, 492: 288, 573: 288, 582: 288, 586: 288, 638: 288, 642: 288, 288, 288, 739: 4492, 741: 4494, 873: 4495}, {284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 47: 284, 49: 284, 472: 284, 476: 284, 284, 284, 284, 482: 284, 490: 284, 492: 284, 573: 284, 582: 284, 586: 284, 638: 284, 642: 284, 284, 284, 739: 284, 741: 284}, // 1980 {283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 47: 283, 49: 283, 472: 283, 476: 283, 283, 283, 283, 482: 283, 490: 283, 492: 283, 573: 283, 582: 283, 586: 283, 638: 283, 642: 283, 283, 283, 739: 283, 741: 283}, @@ -8499,8 +8506,8 @@ var ( {291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 47: 291, 472: 291, 476: 291, 291, 291, 291, 482: 291, 490: 291, 492: 291, 573: 291, 582: 291, 586: 291, 638: 291, 642: 291, 291, 291}, {299, 299, 299, 299, 299, 299, 299, 299, 299, 299, 299, 299, 299, 14: 299, 47: 299, 102: 299, 299, 106: 299, 472: 299, 476: 299, 299, 299, 299, 482: 299, 490: 299, 492: 299, 506: 299, 543: 299, 573: 299, 582: 299, 586: 299, 638: 299, 642: 299, 299, 299, 646: 299}, {304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 47: 304, 472: 304, 476: 304, 304, 304, 304, 482: 304, 490: 304, 492: 304, 573: 304, 582: 304, 586: 304, 638: 304, 642: 304, 304, 304}, - {321, 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, 14: 321, 47: 321, 472: 321, 321, 476: 321, 321, 321, 321, 482: 321, 490: 321, 492: 321, 506: 321, 543: 321, 573: 321, 582: 321, 586: 321, 638: 321, 642: 321, 321, 321, 646: 321, 842: 4501}, - {320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 14: 320, 47: 320, 472: 320, 320, 476: 320, 320, 320, 320, 482: 320, 490: 320, 492: 320, 506: 320, 543: 320, 573: 320, 582: 320, 586: 320, 638: 320, 642: 320, 320, 320, 646: 320, 842: 4500}, + {321, 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, 14: 321, 47: 321, 472: 321, 321, 476: 321, 321, 321, 321, 482: 321, 490: 321, 492: 321, 506: 321, 543: 321, 573: 321, 582: 321, 586: 321, 638: 321, 642: 321, 321, 321, 646: 321, 842: 4506}, + {320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 14: 320, 47: 320, 472: 320, 320, 476: 320, 320, 320, 320, 482: 320, 490: 320, 492: 320, 506: 320, 543: 320, 573: 320, 582: 320, 586: 320, 638: 320, 642: 320, 320, 320, 646: 320, 842: 4505}, // 1990 {473: 315}, {473: 314}, @@ -8512,11 +8519,11 @@ var ( {473: 308}, {318, 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, 14: 318, 47: 318, 102: 318, 318, 106: 318, 472: 318, 318, 476: 318, 318, 318, 318, 482: 318, 490: 318, 492: 318, 506: 318, 543: 318, 573: 318, 582: 318, 586: 318, 638: 318, 642: 318, 318, 318, 646: 318}, {319, 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, 14: 319, 47: 319, 102: 319, 319, 106: 319, 472: 319, 319, 476: 319, 319, 319, 319, 482: 319, 490: 319, 492: 319, 506: 319, 543: 319, 573: 319, 582: 319, 586: 319, 638: 319, 642: 319, 319, 319, 646: 319}, - {273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 14: 3804, 47: 273, 102: 4513, 4515, 106: 4514, 472: 273, 476: 273, 273, 273, 273, 482: 273, 490: 273, 492: 273, 506: 3805, 543: 3801, 573: 273, 582: 273, 586: 273, 638: 273, 642: 273, 273, 273, 646: 3803, 772: 3802, 797: 4512, 882: 4516}, + {273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 14: 3809, 47: 273, 102: 4518, 4520, 106: 4519, 472: 273, 476: 273, 273, 273, 273, 482: 273, 490: 273, 492: 273, 506: 3810, 543: 3806, 573: 273, 582: 273, 586: 273, 638: 273, 642: 273, 273, 273, 646: 3808, 772: 3807, 797: 4517, 882: 4521}, // 2000 {325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, 47: 325, 472: 325, 476: 325, 325, 325, 325, 482: 325, 490: 325, 492: 325, 573: 325, 582: 325, 586: 325, 638: 325, 642: 325, 325, 325}, - {504: 3807, 842: 4506}, - {504: 3806, 842: 4505}, + {504: 3812, 842: 4511}, + {504: 3811, 842: 4510}, {301, 301, 301, 301, 301, 301, 301, 301, 301, 301, 301, 301, 301, 47: 301, 472: 301, 476: 301, 301, 301, 301, 482: 301, 490: 301, 492: 301, 573: 301, 582: 301, 586: 301, 638: 301, 642: 301, 301, 301}, {296, 296, 296, 296, 296, 296, 296, 296, 296, 296, 296, 296, 296, 47: 296, 472: 296, 476: 296, 296, 296, 296, 482: 296, 490: 296, 492: 296, 573: 296, 582: 296, 586: 296, 638: 296, 642: 296, 296, 296}, // 2005 @@ -8524,795 +8531,795 @@ var ( {294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 47: 294, 472: 294, 476: 294, 294, 294, 294, 482: 294, 490: 294, 492: 294, 573: 294, 582: 294, 586: 294, 638: 294, 642: 294, 294, 294}, {293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 47: 293, 472: 293, 476: 293, 293, 293, 293, 482: 293, 490: 293, 492: 293, 573: 293, 582: 293, 586: 293, 638: 293, 642: 293, 293, 293}, {326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 47: 326, 472: 326, 476: 326, 326, 326, 326, 482: 326, 490: 326, 492: 326, 573: 326, 582: 326, 586: 326, 638: 326, 642: 326, 326, 326}, - {475: 4519, 577: 4520, 580: 4521, 968: 4522, 1148: 4518}, + {475: 4524, 577: 4525, 580: 4526, 968: 4527, 1148: 4523}, // 2010 - {7: 4524, 47: 4523}, + {7: 4529, 47: 4528}, {7: 261, 47: 261}, {7: 260, 47: 260}, {7: 259, 47: 259}, {7: 258, 47: 258}, // 2015 - {273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 14: 3804, 47: 273, 102: 4513, 4515, 106: 4514, 472: 273, 476: 273, 273, 273, 273, 482: 273, 490: 273, 492: 273, 506: 3805, 543: 3801, 573: 273, 582: 273, 586: 273, 638: 273, 642: 273, 273, 273, 646: 3803, 772: 3802, 797: 4512, 882: 4526}, - {475: 4519, 577: 4520, 580: 4521, 968: 4525}, + {273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 14: 3809, 47: 273, 102: 4518, 4520, 106: 4519, 472: 273, 476: 273, 273, 273, 273, 482: 273, 490: 273, 492: 273, 506: 3810, 543: 3806, 573: 273, 582: 273, 586: 273, 638: 273, 642: 273, 273, 273, 646: 3808, 772: 3807, 797: 4517, 882: 4531}, + {475: 4524, 577: 4525, 580: 4526, 968: 4530}, {7: 257, 47: 257}, {328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 47: 328, 472: 328, 476: 328, 328, 328, 328, 482: 328, 490: 328, 492: 328, 573: 328, 582: 328, 586: 328, 638: 328, 642: 328, 328, 328}, - {475: 4519, 577: 4520, 580: 4521, 968: 4522, 1148: 4528}, + {475: 4524, 577: 4525, 580: 4526, 968: 4527, 1148: 4533}, // 2020 - {7: 4524, 47: 4529}, - {273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 14: 3804, 47: 273, 102: 4513, 4515, 106: 4514, 472: 273, 476: 273, 273, 273, 273, 482: 273, 490: 273, 492: 273, 506: 3805, 543: 3801, 573: 273, 582: 273, 586: 273, 638: 273, 642: 273, 273, 273, 646: 3803, 772: 3802, 797: 4512, 882: 4530}, + {7: 4529, 47: 4534}, + {273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 14: 3809, 47: 273, 102: 4518, 4520, 106: 4519, 472: 273, 476: 273, 273, 273, 273, 482: 273, 490: 273, 492: 273, 506: 3810, 543: 3806, 573: 273, 582: 273, 586: 273, 638: 273, 642: 273, 273, 273, 646: 3808, 772: 3807, 797: 4517, 882: 4535}, {329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 47: 329, 472: 329, 476: 329, 329, 329, 329, 482: 329, 490: 329, 492: 329, 573: 329, 582: 329, 586: 329, 638: 329, 642: 329, 329, 329}, {330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 47: 330, 472: 330, 476: 330, 330, 330, 330, 482: 330, 490: 330, 492: 330, 573: 330, 582: 330, 586: 330, 638: 330, 642: 330, 330, 330}, {332, 332, 332, 332, 332, 332, 332, 332, 332, 332, 332, 332, 332, 47: 332, 472: 332, 476: 332, 332, 332, 332, 482: 332, 490: 332, 492: 332, 573: 332, 582: 332, 586: 332, 638: 332, 642: 332, 332, 332}, // 2025 {333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 47: 333, 472: 333, 476: 333, 333, 333, 333, 482: 333, 490: 333, 492: 333, 573: 333, 582: 333, 586: 333, 638: 333, 642: 333, 333, 333}, - {273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 14: 3804, 47: 273, 472: 273, 476: 273, 273, 273, 273, 482: 273, 490: 273, 492: 273, 506: 3805, 543: 3801, 573: 273, 582: 273, 586: 273, 638: 273, 642: 273, 273, 273, 646: 3803, 772: 3802, 797: 4535}, + {273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 14: 3809, 47: 273, 472: 273, 476: 273, 273, 273, 273, 482: 273, 490: 273, 492: 273, 506: 3810, 543: 3806, 573: 273, 582: 273, 586: 273, 638: 273, 642: 273, 273, 273, 646: 3808, 772: 3807, 797: 4540}, {334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 47: 334, 472: 334, 476: 334, 334, 334, 334, 482: 334, 490: 334, 492: 334, 573: 334, 582: 334, 586: 334, 638: 334, 642: 334, 334, 334}, - {273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 14: 3804, 47: 273, 472: 273, 476: 273, 273, 273, 273, 482: 273, 490: 273, 492: 273, 506: 3805, 543: 3801, 573: 273, 582: 273, 586: 273, 638: 273, 642: 273, 273, 273, 646: 3803, 772: 3802, 797: 4537}, + {273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 14: 3809, 47: 273, 472: 273, 476: 273, 273, 273, 273, 482: 273, 490: 273, 492: 273, 506: 3810, 543: 3806, 573: 273, 582: 273, 586: 273, 638: 273, 642: 273, 273, 273, 646: 3808, 772: 3807, 797: 4542}, {335, 335, 335, 335, 335, 335, 335, 335, 335, 335, 335, 335, 335, 47: 335, 472: 335, 476: 335, 335, 335, 335, 482: 335, 490: 335, 492: 335, 573: 335, 582: 335, 586: 335, 638: 335, 642: 335, 335, 335}, // 2030 - {273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 14: 3804, 47: 273, 472: 273, 476: 273, 273, 273, 273, 482: 273, 490: 273, 492: 273, 506: 3805, 543: 3801, 573: 273, 582: 273, 586: 273, 638: 273, 642: 273, 273, 273, 646: 3803, 772: 3802, 797: 4540}, + {273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 14: 3809, 47: 273, 472: 273, 476: 273, 273, 273, 273, 482: 273, 490: 273, 492: 273, 506: 3810, 543: 3806, 573: 273, 582: 273, 586: 273, 638: 273, 642: 273, 273, 273, 646: 3808, 772: 3807, 797: 4545}, {336, 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, 47: 336, 472: 336, 476: 336, 336, 336, 336, 482: 336, 490: 336, 492: 336, 573: 336, 582: 336, 586: 336, 638: 336, 642: 336, 336, 336}, {337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 47: 337, 472: 337, 476: 337, 337, 337, 337, 482: 337, 490: 337, 492: 337, 573: 337, 582: 337, 586: 337, 638: 337, 642: 337, 337, 337}, - {273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 14: 3804, 47: 273, 472: 273, 476: 273, 273, 273, 273, 482: 273, 490: 273, 492: 273, 506: 3805, 543: 3801, 573: 273, 582: 273, 586: 273, 638: 273, 642: 273, 273, 273, 646: 3803, 772: 3802, 797: 4543}, + {273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 14: 3809, 47: 273, 472: 273, 476: 273, 273, 273, 273, 482: 273, 490: 273, 492: 273, 506: 3810, 543: 3806, 573: 273, 582: 273, 586: 273, 638: 273, 642: 273, 273, 273, 646: 3808, 772: 3807, 797: 4548}, {338, 338, 338, 338, 338, 338, 338, 338, 338, 338, 338, 338, 338, 47: 338, 472: 338, 476: 338, 338, 338, 338, 482: 338, 490: 338, 492: 338, 573: 338, 582: 338, 586: 338, 638: 338, 642: 338, 338, 338}, // 2035 {339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 47: 339, 472: 339, 476: 339, 339, 339, 339, 482: 339, 490: 339, 492: 339, 573: 339, 582: 339, 586: 339, 638: 339, 642: 339, 339, 339}, {341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 47: 341, 49: 341, 472: 341, 341, 476: 341, 341, 341, 341, 482: 341, 490: 341, 492: 341, 573: 341, 582: 341, 586: 341, 638: 341, 642: 341, 341, 341, 739: 341, 741: 341}, {364, 364, 364, 364, 364, 364, 364, 364, 364, 364, 364, 364, 364, 47: 364, 472: 364, 476: 364, 364, 364, 364, 482: 364, 490: 364, 492: 364, 573: 364, 582: 364, 586: 364, 638: 364, 642: 364, 364, 364}, - {281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 47: 281, 49: 281, 472: 281, 476: 281, 281, 281, 281, 482: 281, 490: 281, 492: 281, 573: 281, 582: 281, 586: 281, 638: 281, 642: 281, 281, 281, 739: 281, 741: 281, 874: 4547}, - {365, 365, 365, 365, 365, 365, 365, 365, 365, 365, 365, 365, 365, 47: 365, 49: 4488, 472: 365, 476: 365, 365, 365, 365, 482: 365, 490: 365, 492: 365, 573: 365, 582: 365, 586: 365, 638: 365, 642: 365, 365, 365, 739: 4487, 741: 4489, 873: 4490}, - // 2040 - {281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 47: 281, 49: 281, 472: 281, 476: 281, 281, 281, 281, 482: 281, 490: 281, 492: 281, 573: 281, 582: 281, 586: 281, 638: 281, 642: 281, 281, 281, 739: 281, 741: 281, 874: 4549}, - {366, 366, 366, 366, 366, 366, 366, 366, 366, 366, 366, 366, 366, 47: 366, 49: 4488, 472: 366, 476: 366, 366, 366, 366, 482: 366, 490: 366, 492: 366, 573: 366, 582: 366, 586: 366, 638: 366, 642: 366, 366, 366, 739: 4487, 741: 4489, 873: 4490}, - {367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 47: 367, 49: 4488, 472: 367, 476: 367, 367, 367, 367, 482: 367, 490: 367, 492: 367, 573: 367, 582: 367, 586: 367, 638: 367, 642: 367, 367, 367, 739: 4487, 741: 4489, 873: 4490}, {281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 47: 281, 49: 281, 472: 281, 476: 281, 281, 281, 281, 482: 281, 490: 281, 492: 281, 573: 281, 582: 281, 586: 281, 638: 281, 642: 281, 281, 281, 739: 281, 741: 281, 874: 4552}, - {368, 368, 368, 368, 368, 368, 368, 368, 368, 368, 368, 368, 368, 47: 368, 49: 4488, 472: 368, 476: 368, 368, 368, 368, 482: 368, 490: 368, 492: 368, 573: 368, 582: 368, 586: 368, 638: 368, 642: 368, 368, 368, 739: 4487, 741: 4489, 873: 4490}, + {365, 365, 365, 365, 365, 365, 365, 365, 365, 365, 365, 365, 365, 47: 365, 49: 4493, 472: 365, 476: 365, 365, 365, 365, 482: 365, 490: 365, 492: 365, 573: 365, 582: 365, 586: 365, 638: 365, 642: 365, 365, 365, 739: 4492, 741: 4494, 873: 4495}, + // 2040 + {281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 47: 281, 49: 281, 472: 281, 476: 281, 281, 281, 281, 482: 281, 490: 281, 492: 281, 573: 281, 582: 281, 586: 281, 638: 281, 642: 281, 281, 281, 739: 281, 741: 281, 874: 4554}, + {366, 366, 366, 366, 366, 366, 366, 366, 366, 366, 366, 366, 366, 47: 366, 49: 4493, 472: 366, 476: 366, 366, 366, 366, 482: 366, 490: 366, 492: 366, 573: 366, 582: 366, 586: 366, 638: 366, 642: 366, 366, 366, 739: 4492, 741: 4494, 873: 4495}, + {367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 47: 367, 49: 4493, 472: 367, 476: 367, 367, 367, 367, 482: 367, 490: 367, 492: 367, 573: 367, 582: 367, 586: 367, 638: 367, 642: 367, 367, 367, 739: 4492, 741: 4494, 873: 4495}, + {281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 47: 281, 49: 281, 472: 281, 476: 281, 281, 281, 281, 482: 281, 490: 281, 492: 281, 573: 281, 582: 281, 586: 281, 638: 281, 642: 281, 281, 281, 739: 281, 741: 281, 874: 4557}, + {368, 368, 368, 368, 368, 368, 368, 368, 368, 368, 368, 368, 368, 47: 368, 49: 4493, 472: 368, 476: 368, 368, 368, 368, 482: 368, 490: 368, 492: 368, 573: 368, 582: 368, 586: 368, 638: 368, 642: 368, 368, 368, 739: 4492, 741: 4494, 873: 4495}, // 2045 - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 573: 2381, 582: 2381, 586: 2381, 638: 2381, 648: 2381, 663: 4686, 2731, 2732, 2730, 674: 2381, 2381, 1141: 4685}, - {2315, 2315, 2315, 2315, 7: 2315, 2315, 2315, 47: 2315, 490: 2315}, - {573: 2292}, - {492: 4684}, - {2282, 2282, 2282, 2282, 2282, 2282, 2282, 2282, 2282, 2282, 2282, 2282, 2282, 47: 2282, 472: 2282, 476: 2282, 2282, 2282, 2282, 482: 2282, 490: 2282, 492: 2282, 573: 2282, 582: 2282, 586: 2282, 638: 2282, 642: 2282, 2282, 2282}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 573: 2385, 582: 2385, 586: 2385, 638: 2385, 648: 2385, 663: 4691, 2736, 2737, 2735, 674: 2385, 2385, 1141: 4690}, + {2319, 2319, 2319, 2319, 7: 2319, 2319, 2319, 47: 2319, 490: 2319}, + {573: 2296}, + {492: 4689}, + {2286, 2286, 2286, 2286, 2286, 2286, 2286, 2286, 2286, 2286, 2286, 2286, 2286, 47: 2286, 472: 2286, 476: 2286, 2286, 2286, 2286, 482: 2286, 490: 2286, 492: 2286, 573: 2286, 582: 2286, 586: 2286, 638: 2286, 642: 2286, 2286, 2286}, // 2050 - {2281, 2281, 2281, 2281, 2281, 2281, 2281, 2281, 2281, 2281, 2281, 2281, 2281, 47: 2281, 472: 2281, 476: 2281, 2281, 2281, 2281, 482: 2281, 490: 2281, 492: 2281, 573: 2281, 582: 2281, 586: 2281, 638: 2281, 642: 2281, 2281, 2281}, - {573: 4680}, - {2278, 2278, 2278, 2278, 2278, 2278, 2278, 2278, 2278, 2278, 2278, 2278, 2278, 47: 2278, 472: 2278, 476: 2278, 2278, 2278, 2278, 482: 2278, 490: 2278, 492: 2278, 573: 4679, 582: 2278, 586: 2278, 638: 2278, 642: 2278, 2278, 2278}, - {149: 4667, 265: 4669, 360: 4670, 473: 4666, 475: 3208, 485: 4408, 4409, 492: 3199, 508: 3203, 571: 3198, 3200, 574: 3202, 3201, 577: 3206, 580: 3207, 588: 4654, 4651, 591: 4652, 4653, 3205, 711: 4407, 3204, 4664, 944: 4649, 4650, 4668, 994: 4665, 1079: 4662, 1131: 4663, 1199: 4661}, - {479: 4659}, + {2285, 2285, 2285, 2285, 2285, 2285, 2285, 2285, 2285, 2285, 2285, 2285, 2285, 47: 2285, 472: 2285, 476: 2285, 2285, 2285, 2285, 482: 2285, 490: 2285, 492: 2285, 573: 2285, 582: 2285, 586: 2285, 638: 2285, 642: 2285, 2285, 2285}, + {573: 4685}, + {2282, 2282, 2282, 2282, 2282, 2282, 2282, 2282, 2282, 2282, 2282, 2282, 2282, 47: 2282, 472: 2282, 476: 2282, 2282, 2282, 2282, 482: 2282, 490: 2282, 492: 2282, 573: 4684, 582: 2282, 586: 2282, 638: 2282, 642: 2282, 2282, 2282}, + {149: 4672, 265: 4674, 360: 4675, 473: 4671, 475: 3213, 485: 4413, 4414, 492: 3204, 508: 3208, 571: 3203, 3205, 574: 3207, 3206, 577: 3211, 580: 3212, 588: 4659, 4656, 591: 4657, 4658, 3210, 711: 4412, 3209, 4669, 944: 4654, 4655, 4673, 994: 4670, 1079: 4667, 1131: 4668, 1200: 4666}, + {479: 4664}, // 2055 - {653: 4647}, - {475: 4646}, - {582: 4637}, - {478: 4630}, - {2270, 2270, 2270, 2270, 2270, 2270, 2270, 2270, 2270, 2270, 2270, 2270, 2270, 47: 2270, 472: 2270, 476: 2270, 2270, 2270, 2270, 482: 2270, 490: 2270, 492: 2270, 573: 2270, 582: 2270, 586: 2270, 638: 2270, 642: 2270, 2270, 2270}, + {653: 4652}, + {475: 4651}, + {582: 4642}, + {478: 4635}, + {2274, 2274, 2274, 2274, 2274, 2274, 2274, 2274, 2274, 2274, 2274, 2274, 2274, 47: 2274, 472: 2274, 476: 2274, 2274, 2274, 2274, 482: 2274, 490: 2274, 492: 2274, 573: 2274, 582: 2274, 586: 2274, 638: 2274, 642: 2274, 2274, 2274}, // 2060 - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 475: 3458, 543: 3457, 663: 3459, 2731, 2732, 2730, 737: 3456, 870: 4629}, - {175: 4627, 200: 4628, 479: 4626, 1184: 4625}, - {180: 4624, 242: 4623, 479: 4622, 1302: 4621}, - {286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 47: 286, 472: 286, 3794, 476: 286, 286, 286, 286, 482: 286, 490: 286, 492: 286, 573: 286, 582: 286, 586: 286, 638: 286, 642: 286, 286, 286, 762: 3795, 785: 4620}, - {307: 4619}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 475: 3463, 543: 3462, 663: 3464, 2736, 2737, 2735, 737: 3461, 870: 4634}, + {175: 4632, 200: 4633, 479: 4631, 1185: 4630}, + {180: 4629, 242: 4628, 479: 4627, 1303: 4626}, + {286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 47: 286, 472: 286, 3799, 476: 286, 286, 286, 286, 482: 286, 490: 286, 492: 286, 573: 286, 582: 286, 586: 286, 638: 286, 642: 286, 286, 286, 762: 3800, 785: 4625}, + {307: 4624}, // 2065 - {2254, 2254, 2254, 2254, 2254, 2254, 2254, 2254, 2254, 2254, 2254, 2254, 2254, 47: 2254, 472: 2254, 476: 2254, 2254, 2254, 2254, 482: 2254, 490: 2254, 492: 2254, 573: 2254, 582: 2254, 586: 2254, 638: 2254, 642: 2254, 2254, 2254}, - {2251, 2251, 2251, 2251, 4564, 4570, 4558, 2251, 2251, 2251, 4562, 4571, 4569, 47: 2251, 472: 4563, 476: 4057, 4056, 2259, 4561, 482: 4568, 490: 2251, 492: 4557, 573: 2293, 582: 2382, 586: 4555, 638: 4560, 642: 4553, 4575, 4572, 809: 4556, 831: 4565, 908: 4567, 926: 4618, 935: 4566, 954: 4559}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 3889, 2731, 2732, 2730, 736: 4576}, - {2191, 2191, 2191, 2191, 2191, 2191, 2191, 2191, 2191, 2191, 2191, 2191, 2191, 47: 2191, 472: 2191, 4578, 476: 2191, 2191, 2191, 2191, 482: 2191, 490: 2191, 492: 2191, 573: 2191, 582: 2191, 586: 2191, 638: 2191, 642: 2191, 2191, 2191, 647: 2191, 1227: 4577}, - {2241, 2241, 2241, 2241, 2241, 2241, 2241, 2241, 2241, 2241, 2241, 2241, 2241, 47: 2241, 472: 2241, 476: 2241, 2241, 2241, 2241, 482: 2241, 490: 2241, 492: 2241, 573: 2241, 582: 2241, 586: 2241, 638: 2241, 642: 2241, 2241, 2241, 647: 4593, 1243: 4594, 4595}, + {2258, 2258, 2258, 2258, 2258, 2258, 2258, 2258, 2258, 2258, 2258, 2258, 2258, 47: 2258, 472: 2258, 476: 2258, 2258, 2258, 2258, 482: 2258, 490: 2258, 492: 2258, 573: 2258, 582: 2258, 586: 2258, 638: 2258, 642: 2258, 2258, 2258}, + {2255, 2255, 2255, 2255, 4569, 4575, 4563, 2255, 2255, 2255, 4567, 4576, 4574, 47: 2255, 472: 4568, 476: 4062, 4061, 2263, 4566, 482: 4573, 490: 2255, 492: 4562, 573: 2297, 582: 2386, 586: 4560, 638: 4565, 642: 4558, 4580, 4577, 809: 4561, 831: 4570, 908: 4572, 926: 4623, 935: 4571, 954: 4564}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 3894, 2736, 2737, 2735, 736: 4581}, + {2195, 2195, 2195, 2195, 2195, 2195, 2195, 2195, 2195, 2195, 2195, 2195, 2195, 47: 2195, 472: 2195, 4583, 476: 2195, 2195, 2195, 2195, 482: 2195, 490: 2195, 492: 2195, 573: 2195, 582: 2195, 586: 2195, 638: 2195, 642: 2195, 2195, 2195, 647: 2195, 1228: 4582}, + {2245, 2245, 2245, 2245, 2245, 2245, 2245, 2245, 2245, 2245, 2245, 2245, 2245, 47: 2245, 472: 2245, 476: 2245, 2245, 2245, 2245, 482: 2245, 490: 2245, 492: 2245, 573: 2245, 582: 2245, 586: 2245, 638: 2245, 642: 2245, 2245, 2245, 647: 4598, 1244: 4599, 4600}, // 2070 - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 473: 4582, 663: 4111, 2731, 2732, 2730, 742: 4581, 826: 4580, 834: 4579}, - {7: 4591, 47: 4590}, - {7: 2189, 47: 2189}, - {7: 286, 47: 286, 473: 3794, 529: 286, 286, 762: 3795, 785: 4588}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 2724, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 4583}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 473: 4587, 663: 4116, 2736, 2737, 2735, 743: 4586, 826: 4585, 834: 4584}, + {7: 4596, 47: 4595}, + {7: 2193, 47: 2193}, + {7: 286, 47: 286, 473: 3799, 529: 286, 286, 762: 3800, 785: 4593}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 2729, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 4588}, // 2075 - {47: 4584, 505: 3313, 509: 3311, 3312, 3310, 3308, 733: 3309, 3307}, - {7: 1290, 47: 1290, 529: 4587, 4586, 947: 4585}, - {7: 2186, 47: 2186}, - {1289, 1289, 1289, 1289, 7: 1289, 47: 1289, 490: 1289}, - {1288, 1288, 1288, 1288, 7: 1288, 47: 1288, 490: 1288}, + {47: 4589, 505: 3318, 509: 3316, 3317, 3315, 3313, 733: 3314, 3312}, + {7: 1294, 47: 1294, 529: 4592, 4591, 947: 4590}, + {7: 2190, 47: 2190}, + {1293, 1293, 1293, 1293, 7: 1293, 47: 1293, 490: 1293}, + {1292, 1292, 1292, 1292, 7: 1292, 47: 1292, 490: 1292}, // 2080 - {7: 1290, 47: 1290, 529: 4587, 4586, 947: 4589}, - {7: 2187, 47: 2187}, - {2190, 2190, 2190, 2190, 2190, 2190, 2190, 2190, 2190, 2190, 2190, 2190, 2190, 47: 2190, 472: 2190, 476: 2190, 2190, 2190, 2190, 482: 2190, 490: 2190, 492: 2190, 573: 2190, 582: 2190, 586: 2190, 638: 2190, 642: 2190, 2190, 2190, 647: 2190}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 473: 4582, 663: 4111, 2731, 2732, 2730, 742: 4581, 826: 4592}, - {7: 2188, 47: 2188}, + {7: 1294, 47: 1294, 529: 4592, 4591, 947: 4594}, + {7: 2191, 47: 2191}, + {2194, 2194, 2194, 2194, 2194, 2194, 2194, 2194, 2194, 2194, 2194, 2194, 2194, 47: 2194, 472: 2194, 476: 2194, 2194, 2194, 2194, 482: 2194, 490: 2194, 492: 2194, 573: 2194, 582: 2194, 586: 2194, 638: 2194, 642: 2194, 2194, 2194, 647: 2194}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 473: 4587, 663: 4116, 2736, 2737, 2735, 743: 4586, 826: 4597}, + {7: 2192, 47: 2192}, // 2085 - {204: 4615, 368: 4616, 386: 4617}, - {2240, 2240, 2240, 2240, 2240, 2240, 2240, 2240, 2240, 2240, 2240, 2240, 2240, 47: 2240, 472: 2240, 476: 2240, 2240, 2240, 2240, 482: 2240, 490: 2240, 492: 2240, 573: 2240, 582: 2240, 586: 2240, 638: 2240, 642: 2240, 2240, 2240}, - {2236, 2236, 2236, 2236, 2236, 2236, 2236, 2236, 2236, 2236, 2236, 2236, 2236, 47: 2236, 472: 4597, 476: 2236, 2236, 2236, 2236, 482: 2236, 490: 2236, 492: 2236, 573: 2236, 582: 2236, 586: 2236, 638: 2236, 642: 2236, 2236, 2236, 1085: 4598, 4599, 1250: 4596}, - {2239, 2239, 2239, 2239, 2239, 2239, 2239, 2239, 2239, 2239, 2239, 2239, 2239, 47: 2239, 472: 2239, 476: 2239, 2239, 2239, 2239, 482: 2239, 490: 2239, 492: 2239, 573: 2239, 582: 2239, 586: 2239, 638: 2239, 642: 2239, 2239, 2239}, - {653: 4613, 738: 4602}, + {204: 4620, 368: 4621, 386: 4622}, + {2244, 2244, 2244, 2244, 2244, 2244, 2244, 2244, 2244, 2244, 2244, 2244, 2244, 47: 2244, 472: 2244, 476: 2244, 2244, 2244, 2244, 482: 2244, 490: 2244, 492: 2244, 573: 2244, 582: 2244, 586: 2244, 638: 2244, 642: 2244, 2244, 2244}, + {2240, 2240, 2240, 2240, 2240, 2240, 2240, 2240, 2240, 2240, 2240, 2240, 2240, 47: 2240, 472: 4602, 476: 2240, 2240, 2240, 2240, 482: 2240, 490: 2240, 492: 2240, 573: 2240, 582: 2240, 586: 2240, 638: 2240, 642: 2240, 2240, 2240, 1085: 4603, 4604, 1251: 4601}, + {2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 47: 2243, 472: 2243, 476: 2243, 2243, 2243, 2243, 482: 2243, 490: 2243, 492: 2243, 573: 2243, 582: 2243, 586: 2243, 638: 2243, 642: 2243, 2243, 2243}, + {653: 4618, 738: 4607}, // 2090 - {2235, 2235, 2235, 2235, 2235, 2235, 2235, 2235, 2235, 2235, 2235, 2235, 2235, 47: 2235, 472: 4611, 476: 2235, 2235, 2235, 2235, 482: 2235, 490: 2235, 492: 2235, 573: 2235, 582: 2235, 586: 2235, 638: 2235, 642: 2235, 2235, 2235, 1086: 4612}, - {2234, 2234, 2234, 2234, 2234, 2234, 2234, 2234, 2234, 2234, 2234, 2234, 2234, 47: 2234, 472: 4600, 476: 2234, 2234, 2234, 2234, 482: 2234, 490: 2234, 492: 2234, 573: 2234, 582: 2234, 586: 2234, 638: 2234, 642: 2234, 2234, 2234, 1085: 4601}, - {738: 4602}, - {2232, 2232, 2232, 2232, 2232, 2232, 2232, 2232, 2232, 2232, 2232, 2232, 2232, 47: 2232, 472: 2232, 476: 2232, 2232, 2232, 2232, 482: 2232, 490: 2232, 492: 2232, 573: 2232, 582: 2232, 586: 2232, 638: 2232, 642: 2232, 2232, 2232}, - {70: 4607, 504: 4606, 669: 4605, 671: 4604, 1108: 4603}, + {2239, 2239, 2239, 2239, 2239, 2239, 2239, 2239, 2239, 2239, 2239, 2239, 2239, 47: 2239, 472: 4616, 476: 2239, 2239, 2239, 2239, 482: 2239, 490: 2239, 492: 2239, 573: 2239, 582: 2239, 586: 2239, 638: 2239, 642: 2239, 2239, 2239, 1086: 4617}, + {2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 47: 2238, 472: 4605, 476: 2238, 2238, 2238, 2238, 482: 2238, 490: 2238, 492: 2238, 573: 2238, 582: 2238, 586: 2238, 638: 2238, 642: 2238, 2238, 2238, 1085: 4606}, + {738: 4607}, + {2236, 2236, 2236, 2236, 2236, 2236, 2236, 2236, 2236, 2236, 2236, 2236, 2236, 47: 2236, 472: 2236, 476: 2236, 2236, 2236, 2236, 482: 2236, 490: 2236, 492: 2236, 573: 2236, 582: 2236, 586: 2236, 638: 2236, 642: 2236, 2236, 2236}, + {70: 4612, 504: 4611, 669: 4610, 671: 4609, 1108: 4608}, // 2095 - {2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 47: 2238, 472: 2238, 476: 2238, 2238, 2238, 2238, 482: 2238, 490: 2238, 492: 2238, 573: 2238, 582: 2238, 586: 2238, 638: 2238, 642: 2238, 2238, 2238}, - {2231, 2231, 2231, 2231, 2231, 2231, 2231, 2231, 2231, 2231, 2231, 2231, 2231, 47: 2231, 472: 2231, 476: 2231, 2231, 2231, 2231, 482: 2231, 490: 2231, 492: 2231, 573: 2231, 582: 2231, 586: 2231, 638: 2231, 642: 2231, 2231, 2231}, - {2230, 2230, 2230, 2230, 2230, 2230, 2230, 2230, 2230, 2230, 2230, 2230, 2230, 47: 2230, 472: 2230, 476: 2230, 2230, 2230, 2230, 482: 2230, 490: 2230, 492: 2230, 573: 2230, 582: 2230, 586: 2230, 638: 2230, 642: 2230, 2230, 2230}, - {479: 4610, 492: 4609}, - {303: 4608}, + {2242, 2242, 2242, 2242, 2242, 2242, 2242, 2242, 2242, 2242, 2242, 2242, 2242, 47: 2242, 472: 2242, 476: 2242, 2242, 2242, 2242, 482: 2242, 490: 2242, 492: 2242, 573: 2242, 582: 2242, 586: 2242, 638: 2242, 642: 2242, 2242, 2242}, + {2235, 2235, 2235, 2235, 2235, 2235, 2235, 2235, 2235, 2235, 2235, 2235, 2235, 47: 2235, 472: 2235, 476: 2235, 2235, 2235, 2235, 482: 2235, 490: 2235, 492: 2235, 573: 2235, 582: 2235, 586: 2235, 638: 2235, 642: 2235, 2235, 2235}, + {2234, 2234, 2234, 2234, 2234, 2234, 2234, 2234, 2234, 2234, 2234, 2234, 2234, 47: 2234, 472: 2234, 476: 2234, 2234, 2234, 2234, 482: 2234, 490: 2234, 492: 2234, 573: 2234, 582: 2234, 586: 2234, 638: 2234, 642: 2234, 2234, 2234}, + {479: 4615, 492: 4614}, + {303: 4613}, // 2100 - {2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228, 47: 2228, 472: 2228, 476: 2228, 2228, 2228, 2228, 482: 2228, 490: 2228, 492: 2228, 573: 2228, 582: 2228, 586: 2228, 638: 2228, 642: 2228, 2228, 2228}, - {2229, 2229, 2229, 2229, 2229, 2229, 2229, 2229, 2229, 2229, 2229, 2229, 2229, 47: 2229, 472: 2229, 476: 2229, 2229, 2229, 2229, 482: 2229, 490: 2229, 492: 2229, 573: 2229, 582: 2229, 586: 2229, 638: 2229, 642: 2229, 2229, 2229}, - {2227, 2227, 2227, 2227, 2227, 2227, 2227, 2227, 2227, 2227, 2227, 2227, 2227, 47: 2227, 472: 2227, 476: 2227, 2227, 2227, 2227, 482: 2227, 490: 2227, 492: 2227, 573: 2227, 582: 2227, 586: 2227, 638: 2227, 642: 2227, 2227, 2227}, - {653: 4613}, + {2232, 2232, 2232, 2232, 2232, 2232, 2232, 2232, 2232, 2232, 2232, 2232, 2232, 47: 2232, 472: 2232, 476: 2232, 2232, 2232, 2232, 482: 2232, 490: 2232, 492: 2232, 573: 2232, 582: 2232, 586: 2232, 638: 2232, 642: 2232, 2232, 2232}, {2233, 2233, 2233, 2233, 2233, 2233, 2233, 2233, 2233, 2233, 2233, 2233, 2233, 47: 2233, 472: 2233, 476: 2233, 2233, 2233, 2233, 482: 2233, 490: 2233, 492: 2233, 573: 2233, 582: 2233, 586: 2233, 638: 2233, 642: 2233, 2233, 2233}, - // 2105 - {70: 4607, 504: 4606, 669: 4605, 671: 4604, 1108: 4614}, + {2231, 2231, 2231, 2231, 2231, 2231, 2231, 2231, 2231, 2231, 2231, 2231, 2231, 47: 2231, 472: 2231, 476: 2231, 2231, 2231, 2231, 482: 2231, 490: 2231, 492: 2231, 573: 2231, 582: 2231, 586: 2231, 638: 2231, 642: 2231, 2231, 2231}, + {653: 4618}, {2237, 2237, 2237, 2237, 2237, 2237, 2237, 2237, 2237, 2237, 2237, 2237, 2237, 47: 2237, 472: 2237, 476: 2237, 2237, 2237, 2237, 482: 2237, 490: 2237, 492: 2237, 573: 2237, 582: 2237, 586: 2237, 638: 2237, 642: 2237, 2237, 2237}, - {2244, 2244, 2244, 2244, 2244, 2244, 2244, 2244, 2244, 2244, 2244, 2244, 2244, 47: 2244, 472: 2244, 476: 2244, 2244, 2244, 2244, 482: 2244, 490: 2244, 492: 2244, 573: 2244, 582: 2244, 586: 2244, 638: 2244, 642: 2244, 2244, 2244}, - {2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 47: 2243, 472: 2243, 476: 2243, 2243, 2243, 2243, 482: 2243, 490: 2243, 492: 2243, 573: 2243, 582: 2243, 586: 2243, 638: 2243, 642: 2243, 2243, 2243}, - {2242, 2242, 2242, 2242, 2242, 2242, 2242, 2242, 2242, 2242, 2242, 2242, 2242, 47: 2242, 472: 2242, 476: 2242, 2242, 2242, 2242, 482: 2242, 490: 2242, 492: 2242, 573: 2242, 582: 2242, 586: 2242, 638: 2242, 642: 2242, 2242, 2242}, + // 2105 + {70: 4612, 504: 4611, 669: 4610, 671: 4609, 1108: 4619}, + {2241, 2241, 2241, 2241, 2241, 2241, 2241, 2241, 2241, 2241, 2241, 2241, 2241, 47: 2241, 472: 2241, 476: 2241, 2241, 2241, 2241, 482: 2241, 490: 2241, 492: 2241, 573: 2241, 582: 2241, 586: 2241, 638: 2241, 642: 2241, 2241, 2241}, + {2248, 2248, 2248, 2248, 2248, 2248, 2248, 2248, 2248, 2248, 2248, 2248, 2248, 47: 2248, 472: 2248, 476: 2248, 2248, 2248, 2248, 482: 2248, 490: 2248, 492: 2248, 573: 2248, 582: 2248, 586: 2248, 638: 2248, 642: 2248, 2248, 2248}, + {2247, 2247, 2247, 2247, 2247, 2247, 2247, 2247, 2247, 2247, 2247, 2247, 2247, 47: 2247, 472: 2247, 476: 2247, 2247, 2247, 2247, 482: 2247, 490: 2247, 492: 2247, 573: 2247, 582: 2247, 586: 2247, 638: 2247, 642: 2247, 2247, 2247}, + {2246, 2246, 2246, 2246, 2246, 2246, 2246, 2246, 2246, 2246, 2246, 2246, 2246, 47: 2246, 472: 2246, 476: 2246, 2246, 2246, 2246, 482: 2246, 490: 2246, 492: 2246, 573: 2246, 582: 2246, 586: 2246, 638: 2246, 642: 2246, 2246, 2246}, // 2110 - {2253, 2253, 2253, 2253, 2253, 2253, 2253, 2253, 2253, 2253, 2253, 2253, 2253, 47: 2253, 472: 2253, 476: 2253, 2253, 2253, 2253, 482: 2253, 490: 2253, 492: 2253, 573: 2253, 582: 2253, 586: 2253, 638: 2253, 642: 2253, 2253, 2253}, - {478: 2258}, - {2266, 2266, 2266, 2266, 2266, 2266, 2266, 2266, 2266, 2266, 2266, 2266, 2266, 47: 2266, 472: 2266, 476: 2266, 2266, 2266, 2266, 482: 2266, 490: 2266, 492: 2266, 573: 2266, 582: 2266, 586: 2266, 638: 2266, 642: 2266, 2266, 2266}, - {2267, 2267, 2267, 2267, 2267, 2267, 2267, 2267, 2267, 2267, 2267, 2267, 2267, 47: 2267, 472: 2267, 476: 2267, 2267, 2267, 2267, 482: 2267, 490: 2267, 492: 2267, 573: 2267, 582: 2267, 586: 2267, 638: 2267, 642: 2267, 2267, 2267}, - {2265, 2265, 2265, 2265, 2265, 2265, 2265, 2265, 2265, 2265, 2265, 2265, 2265, 47: 2265, 472: 2265, 476: 2265, 2265, 2265, 2265, 482: 2265, 490: 2265, 492: 2265, 573: 2265, 582: 2265, 586: 2265, 638: 2265, 642: 2265, 2265, 2265}, + {2257, 2257, 2257, 2257, 2257, 2257, 2257, 2257, 2257, 2257, 2257, 2257, 2257, 47: 2257, 472: 2257, 476: 2257, 2257, 2257, 2257, 482: 2257, 490: 2257, 492: 2257, 573: 2257, 582: 2257, 586: 2257, 638: 2257, 642: 2257, 2257, 2257}, + {478: 2262}, + {2270, 2270, 2270, 2270, 2270, 2270, 2270, 2270, 2270, 2270, 2270, 2270, 2270, 47: 2270, 472: 2270, 476: 2270, 2270, 2270, 2270, 482: 2270, 490: 2270, 492: 2270, 573: 2270, 582: 2270, 586: 2270, 638: 2270, 642: 2270, 2270, 2270}, + {2271, 2271, 2271, 2271, 2271, 2271, 2271, 2271, 2271, 2271, 2271, 2271, 2271, 47: 2271, 472: 2271, 476: 2271, 2271, 2271, 2271, 482: 2271, 490: 2271, 492: 2271, 573: 2271, 582: 2271, 586: 2271, 638: 2271, 642: 2271, 2271, 2271}, + {2269, 2269, 2269, 2269, 2269, 2269, 2269, 2269, 2269, 2269, 2269, 2269, 2269, 47: 2269, 472: 2269, 476: 2269, 2269, 2269, 2269, 482: 2269, 490: 2269, 492: 2269, 573: 2269, 582: 2269, 586: 2269, 638: 2269, 642: 2269, 2269, 2269}, // 2115 - {2264, 2264, 2264, 2264, 2264, 2264, 2264, 2264, 2264, 2264, 2264, 2264, 2264, 47: 2264, 472: 2264, 476: 2264, 2264, 2264, 2264, 482: 2264, 490: 2264, 492: 2264, 573: 2264, 582: 2264, 586: 2264, 638: 2264, 642: 2264, 2264, 2264}, - {2263, 2263, 2263, 2263, 2263, 2263, 2263, 2263, 2263, 2263, 2263, 2263, 2263, 47: 2263, 472: 2263, 476: 2263, 2263, 2263, 2263, 482: 2263, 490: 2263, 492: 2263, 573: 2263, 582: 2263, 586: 2263, 638: 2263, 642: 2263, 2263, 2263}, {2268, 2268, 2268, 2268, 2268, 2268, 2268, 2268, 2268, 2268, 2268, 2268, 2268, 47: 2268, 472: 2268, 476: 2268, 2268, 2268, 2268, 482: 2268, 490: 2268, 492: 2268, 573: 2268, 582: 2268, 586: 2268, 638: 2268, 642: 2268, 2268, 2268}, - {2262, 2262, 2262, 2262, 2262, 2262, 2262, 2262, 2262, 2262, 2262, 2262, 2262, 47: 2262, 472: 2262, 476: 2262, 2262, 2262, 2262, 482: 2262, 490: 2262, 492: 2262, 573: 2262, 582: 2262, 586: 2262, 638: 2262, 642: 2262, 2262, 2262}, - {2261, 2261, 2261, 2261, 2261, 2261, 2261, 2261, 2261, 2261, 2261, 2261, 2261, 47: 2261, 472: 2261, 476: 2261, 2261, 2261, 2261, 482: 2261, 490: 2261, 492: 2261, 573: 2261, 582: 2261, 586: 2261, 638: 2261, 642: 2261, 2261, 2261}, + {2267, 2267, 2267, 2267, 2267, 2267, 2267, 2267, 2267, 2267, 2267, 2267, 2267, 47: 2267, 472: 2267, 476: 2267, 2267, 2267, 2267, 482: 2267, 490: 2267, 492: 2267, 573: 2267, 582: 2267, 586: 2267, 638: 2267, 642: 2267, 2267, 2267}, + {2272, 2272, 2272, 2272, 2272, 2272, 2272, 2272, 2272, 2272, 2272, 2272, 2272, 47: 2272, 472: 2272, 476: 2272, 2272, 2272, 2272, 482: 2272, 490: 2272, 492: 2272, 573: 2272, 582: 2272, 586: 2272, 638: 2272, 642: 2272, 2272, 2272}, + {2266, 2266, 2266, 2266, 2266, 2266, 2266, 2266, 2266, 2266, 2266, 2266, 2266, 47: 2266, 472: 2266, 476: 2266, 2266, 2266, 2266, 482: 2266, 490: 2266, 492: 2266, 573: 2266, 582: 2266, 586: 2266, 638: 2266, 642: 2266, 2266, 2266}, + {2265, 2265, 2265, 2265, 2265, 2265, 2265, 2265, 2265, 2265, 2265, 2265, 2265, 47: 2265, 472: 2265, 476: 2265, 2265, 2265, 2265, 482: 2265, 490: 2265, 492: 2265, 573: 2265, 582: 2265, 586: 2265, 638: 2265, 642: 2265, 2265, 2265}, // 2120 - {2260, 2260, 2260, 2260, 2260, 2260, 2260, 2260, 2260, 2260, 2260, 2260, 2260, 47: 2260, 472: 2260, 476: 2260, 2260, 2260, 2260, 482: 2260, 490: 2260, 492: 2260, 573: 2260, 582: 2260, 586: 2260, 638: 2260, 642: 2260, 2260, 2260}, - {2269, 2269, 2269, 2269, 2269, 2269, 2269, 2269, 2269, 2269, 2269, 2269, 2269, 47: 2269, 472: 2269, 476: 2269, 2269, 2269, 2269, 482: 2269, 490: 2269, 492: 2269, 573: 2269, 582: 2269, 586: 2269, 638: 2269, 642: 2269, 2269, 2269}, - {473: 4631}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 2724, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 4632}, - {47: 4633, 505: 3313, 509: 3311, 3312, 3310, 3308, 733: 3309, 3307}, + {2264, 2264, 2264, 2264, 2264, 2264, 2264, 2264, 2264, 2264, 2264, 2264, 2264, 47: 2264, 472: 2264, 476: 2264, 2264, 2264, 2264, 482: 2264, 490: 2264, 492: 2264, 573: 2264, 582: 2264, 586: 2264, 638: 2264, 642: 2264, 2264, 2264}, + {2273, 2273, 2273, 2273, 2273, 2273, 2273, 2273, 2273, 2273, 2273, 2273, 2273, 47: 2273, 472: 2273, 476: 2273, 2273, 2273, 2273, 482: 2273, 490: 2273, 492: 2273, 573: 2273, 582: 2273, 586: 2273, 638: 2273, 642: 2273, 2273, 2273}, + {473: 4636}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 2729, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 4637}, + {47: 4638, 505: 3318, 509: 3316, 3317, 3315, 3313, 733: 3314, 3312}, // 2125 - {2257, 2257, 2257, 2257, 2257, 2257, 2257, 2257, 2257, 2257, 2257, 2257, 2257, 47: 2257, 472: 2257, 476: 2257, 2257, 2257, 2257, 482: 2257, 490: 2257, 492: 2257, 573: 2257, 582: 2257, 586: 2257, 638: 2257, 642: 2257, 2257, 2257, 1303: 4636, 1333: 4635, 4634}, - {2271, 2271, 2271, 2271, 2271, 2271, 2271, 2271, 2271, 2271, 2271, 2271, 2271, 47: 2271, 472: 2271, 476: 2271, 2271, 2271, 2271, 482: 2271, 490: 2271, 492: 2271, 573: 2271, 582: 2271, 586: 2271, 638: 2271, 642: 2271, 2271, 2271}, - {2256, 2256, 2256, 2256, 2256, 2256, 2256, 2256, 2256, 2256, 2256, 2256, 2256, 47: 2256, 472: 2256, 476: 2256, 2256, 2256, 2256, 482: 2256, 490: 2256, 492: 2256, 573: 2256, 582: 2256, 586: 2256, 638: 2256, 642: 2256, 2256, 2256}, - {2255, 2255, 2255, 2255, 2255, 2255, 2255, 2255, 2255, 2255, 2255, 2255, 2255, 47: 2255, 472: 2255, 476: 2255, 2255, 2255, 2255, 482: 2255, 490: 2255, 492: 2255, 573: 2255, 582: 2255, 586: 2255, 638: 2255, 642: 2255, 2255, 2255}, - {473: 4638}, + {2261, 2261, 2261, 2261, 2261, 2261, 2261, 2261, 2261, 2261, 2261, 2261, 2261, 47: 2261, 472: 2261, 476: 2261, 2261, 2261, 2261, 482: 2261, 490: 2261, 492: 2261, 573: 2261, 582: 2261, 586: 2261, 638: 2261, 642: 2261, 2261, 2261, 1304: 4641, 1334: 4640, 4639}, + {2275, 2275, 2275, 2275, 2275, 2275, 2275, 2275, 2275, 2275, 2275, 2275, 2275, 47: 2275, 472: 2275, 476: 2275, 2275, 2275, 2275, 482: 2275, 490: 2275, 492: 2275, 573: 2275, 582: 2275, 586: 2275, 638: 2275, 642: 2275, 2275, 2275}, + {2260, 2260, 2260, 2260, 2260, 2260, 2260, 2260, 2260, 2260, 2260, 2260, 2260, 47: 2260, 472: 2260, 476: 2260, 2260, 2260, 2260, 482: 2260, 490: 2260, 492: 2260, 573: 2260, 582: 2260, 586: 2260, 638: 2260, 642: 2260, 2260, 2260}, + {2259, 2259, 2259, 2259, 2259, 2259, 2259, 2259, 2259, 2259, 2259, 2259, 2259, 47: 2259, 472: 2259, 476: 2259, 2259, 2259, 2259, 482: 2259, 490: 2259, 492: 2259, 573: 2259, 582: 2259, 586: 2259, 638: 2259, 642: 2259, 2259, 2259}, + {473: 4643}, // 2130 - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 2724, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 4639}, - {47: 4640, 505: 3313, 509: 3311, 3312, 3310, 3308, 733: 3309, 3307}, - {2287, 2287, 2287, 2287, 2287, 2287, 2287, 2287, 2287, 2287, 2287, 2287, 2287, 47: 2287, 147: 4397, 472: 2287, 476: 4057, 4056, 2287, 2287, 482: 2287, 490: 2287, 492: 2287, 573: 2287, 582: 2287, 586: 2287, 638: 2287, 642: 2287, 2287, 2287, 809: 4641, 932: 4642, 1039: 4643, 1203: 4644}, - {147: 4399, 492: 4645}, - {2286, 2286, 2286, 2286, 2286, 2286, 2286, 2286, 2286, 2286, 2286, 2286, 2286, 47: 2286, 472: 2286, 476: 2286, 2286, 2286, 2286, 482: 2286, 490: 2286, 492: 2286, 573: 2286, 582: 2286, 586: 2286, 638: 2286, 642: 2286, 2286, 2286}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 2729, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 4644}, + {47: 4645, 505: 3318, 509: 3316, 3317, 3315, 3313, 733: 3314, 3312}, + {2291, 2291, 2291, 2291, 2291, 2291, 2291, 2291, 2291, 2291, 2291, 2291, 2291, 47: 2291, 147: 4402, 472: 2291, 476: 4062, 4061, 2291, 2291, 482: 2291, 490: 2291, 492: 2291, 573: 2291, 582: 2291, 586: 2291, 638: 2291, 642: 2291, 2291, 2291, 809: 4646, 932: 4647, 1039: 4648, 1204: 4649}, + {147: 4404, 492: 4650}, + {2290, 2290, 2290, 2290, 2290, 2290, 2290, 2290, 2290, 2290, 2290, 2290, 2290, 47: 2290, 472: 2290, 476: 2290, 2290, 2290, 2290, 482: 2290, 490: 2290, 492: 2290, 573: 2290, 582: 2290, 586: 2290, 638: 2290, 642: 2290, 2290, 2290}, // 2135 - {2284, 2284, 2284, 2284, 2284, 2284, 2284, 2284, 2284, 2284, 2284, 2284, 2284, 47: 2284, 472: 2284, 476: 2284, 2284, 2284, 2284, 482: 2284, 490: 2284, 492: 2284, 573: 2284, 582: 2284, 586: 2284, 638: 2284, 642: 2284, 2284, 2284}, - {2272, 2272, 2272, 2272, 2272, 2272, 2272, 2272, 2272, 2272, 2272, 2272, 2272, 47: 2272, 472: 2272, 476: 2272, 2272, 2272, 2272, 482: 2272, 490: 2272, 492: 2272, 573: 2272, 582: 2272, 586: 2272, 638: 2272, 642: 2272, 2272, 2272}, - {2285, 2285, 2285, 2285, 2285, 2285, 2285, 2285, 2285, 2285, 2285, 2285, 2285, 47: 2285, 472: 2285, 476: 2285, 2285, 2285, 2285, 482: 2285, 490: 2285, 492: 2285, 573: 2285, 582: 2285, 586: 2285, 638: 2285, 642: 2285, 2285, 2285}, - {2273, 2273, 2273, 2273, 2273, 2273, 2273, 2273, 2273, 2273, 2273, 2273, 2273, 47: 2273, 472: 2273, 476: 2273, 2273, 2273, 2273, 482: 2273, 490: 2273, 492: 2273, 573: 2273, 582: 2273, 586: 2273, 638: 2273, 642: 2273, 2273, 2273}, - {588: 4654, 4651, 591: 4652, 4653, 944: 4649, 4650, 4648}, + {2288, 2288, 2288, 2288, 2288, 2288, 2288, 2288, 2288, 2288, 2288, 2288, 2288, 47: 2288, 472: 2288, 476: 2288, 2288, 2288, 2288, 482: 2288, 490: 2288, 492: 2288, 573: 2288, 582: 2288, 586: 2288, 638: 2288, 642: 2288, 2288, 2288}, + {2276, 2276, 2276, 2276, 2276, 2276, 2276, 2276, 2276, 2276, 2276, 2276, 2276, 47: 2276, 472: 2276, 476: 2276, 2276, 2276, 2276, 482: 2276, 490: 2276, 492: 2276, 573: 2276, 582: 2276, 586: 2276, 638: 2276, 642: 2276, 2276, 2276}, + {2289, 2289, 2289, 2289, 2289, 2289, 2289, 2289, 2289, 2289, 2289, 2289, 2289, 47: 2289, 472: 2289, 476: 2289, 2289, 2289, 2289, 482: 2289, 490: 2289, 492: 2289, 573: 2289, 582: 2289, 586: 2289, 638: 2289, 642: 2289, 2289, 2289}, + {2277, 2277, 2277, 2277, 2277, 2277, 2277, 2277, 2277, 2277, 2277, 2277, 2277, 47: 2277, 472: 2277, 476: 2277, 2277, 2277, 2277, 482: 2277, 490: 2277, 492: 2277, 573: 2277, 582: 2277, 586: 2277, 638: 2277, 642: 2277, 2277, 2277}, + {588: 4659, 4656, 591: 4657, 4658, 944: 4654, 4655, 4653}, // 2140 - {2274, 2274, 2274, 2274, 2274, 2274, 2274, 2274, 2274, 2274, 2274, 2274, 2274, 47: 2274, 472: 2274, 476: 2274, 2274, 2274, 2274, 482: 2274, 490: 2274, 492: 2274, 573: 2274, 582: 2274, 586: 2274, 638: 2274, 642: 2274, 2274, 2274}, - {2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 47: 2217, 472: 2217, 476: 2217, 2217, 2217, 2217, 482: 2217, 490: 2217, 492: 2217, 573: 2217, 582: 2217, 586: 2217, 638: 2217, 642: 2217, 2217, 2217}, - {473: 4655}, - {2208, 2208, 2208, 2208, 2208, 2208, 2208, 2208, 2208, 2208, 2208, 2208, 2208, 47: 2208, 472: 2208, 2212, 476: 2208, 2208, 2208, 2208, 482: 2208, 490: 2208, 492: 2208, 573: 2208, 582: 2208, 586: 2208, 638: 2208, 642: 2208, 2208, 2208}, - {2207, 2207, 2207, 2207, 2207, 2207, 2207, 2207, 2207, 2207, 2207, 2207, 2207, 47: 2207, 472: 2207, 2211, 476: 2207, 2207, 2207, 2207, 482: 2207, 490: 2207, 492: 2207, 573: 2207, 582: 2207, 586: 2207, 638: 2207, 642: 2207, 2207, 2207}, + {2278, 2278, 2278, 2278, 2278, 2278, 2278, 2278, 2278, 2278, 2278, 2278, 2278, 47: 2278, 472: 2278, 476: 2278, 2278, 2278, 2278, 482: 2278, 490: 2278, 492: 2278, 573: 2278, 582: 2278, 586: 2278, 638: 2278, 642: 2278, 2278, 2278}, + {2221, 2221, 2221, 2221, 2221, 2221, 2221, 2221, 2221, 2221, 2221, 2221, 2221, 47: 2221, 472: 2221, 476: 2221, 2221, 2221, 2221, 482: 2221, 490: 2221, 492: 2221, 573: 2221, 582: 2221, 586: 2221, 638: 2221, 642: 2221, 2221, 2221}, + {473: 4660}, + {2212, 2212, 2212, 2212, 2212, 2212, 2212, 2212, 2212, 2212, 2212, 2212, 2212, 47: 2212, 472: 2212, 2216, 476: 2212, 2212, 2212, 2212, 482: 2212, 490: 2212, 492: 2212, 573: 2212, 582: 2212, 586: 2212, 638: 2212, 642: 2212, 2212, 2212}, + {2211, 2211, 2211, 2211, 2211, 2211, 2211, 2211, 2211, 2211, 2211, 2211, 2211, 47: 2211, 472: 2211, 2215, 476: 2211, 2211, 2211, 2211, 482: 2211, 490: 2211, 492: 2211, 573: 2211, 582: 2211, 586: 2211, 638: 2211, 642: 2211, 2211, 2211}, // 2145 - {2206, 2206, 2206, 2206, 2206, 2206, 2206, 2206, 2206, 2206, 2206, 2206, 2206, 47: 2206, 472: 2206, 2210, 476: 2206, 2206, 2206, 2206, 482: 2206, 490: 2206, 492: 2206, 573: 2206, 582: 2206, 586: 2206, 638: 2206, 642: 2206, 2206, 2206}, - {473: 2209}, - {47: 4656, 508: 2705, 732: 4657}, - {2216, 2216, 2216, 2216, 2216, 2216, 2216, 2216, 2216, 2216, 2216, 2216, 2216, 47: 2216, 472: 2216, 476: 2216, 2216, 2216, 2216, 482: 2216, 490: 2216, 492: 2216, 573: 2216, 582: 2216, 586: 2216, 638: 2216, 642: 2216, 2216, 2216}, - {47: 4658}, + {2210, 2210, 2210, 2210, 2210, 2210, 2210, 2210, 2210, 2210, 2210, 2210, 2210, 47: 2210, 472: 2210, 2214, 476: 2210, 2210, 2210, 2210, 482: 2210, 490: 2210, 492: 2210, 573: 2210, 582: 2210, 586: 2210, 638: 2210, 642: 2210, 2210, 2210}, + {473: 2213}, + {47: 4661, 508: 2710, 732: 4662}, + {2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 47: 2220, 472: 2220, 476: 2220, 2220, 2220, 2220, 482: 2220, 490: 2220, 492: 2220, 573: 2220, 582: 2220, 586: 2220, 638: 2220, 642: 2220, 2220, 2220}, + {47: 4663}, // 2150 - {2215, 2215, 2215, 2215, 2215, 2215, 2215, 2215, 2215, 2215, 2215, 2215, 2215, 47: 2215, 472: 2215, 476: 2215, 2215, 2215, 2215, 482: 2215, 490: 2215, 492: 2215, 573: 2215, 582: 2215, 586: 2215, 638: 2215, 642: 2215, 2215, 2215}, - {154: 4660}, - {2275, 2275, 2275, 2275, 2275, 2275, 2275, 2275, 2275, 2275, 2275, 2275, 2275, 47: 2275, 472: 2275, 476: 2275, 2275, 2275, 2275, 482: 2275, 490: 2275, 492: 2275, 573: 2275, 582: 2275, 586: 2275, 638: 2275, 642: 2275, 2275, 2275}, - {2276, 2276, 2276, 2276, 2276, 2276, 2276, 2276, 2276, 2276, 2276, 2276, 2276, 47: 2276, 472: 2276, 476: 2276, 2276, 2276, 2276, 482: 2276, 490: 2276, 492: 2276, 573: 2276, 582: 2276, 586: 2276, 638: 2276, 642: 2276, 2276, 2276}, - {2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, 47: 2226, 472: 2226, 476: 2226, 2226, 2226, 2226, 482: 2226, 490: 2226, 492: 2226, 573: 2226, 582: 2226, 586: 2226, 638: 2226, 642: 2226, 2226, 2226}, + {2219, 2219, 2219, 2219, 2219, 2219, 2219, 2219, 2219, 2219, 2219, 2219, 2219, 47: 2219, 472: 2219, 476: 2219, 2219, 2219, 2219, 482: 2219, 490: 2219, 492: 2219, 573: 2219, 582: 2219, 586: 2219, 638: 2219, 642: 2219, 2219, 2219}, + {154: 4665}, + {2279, 2279, 2279, 2279, 2279, 2279, 2279, 2279, 2279, 2279, 2279, 2279, 2279, 47: 2279, 472: 2279, 476: 2279, 2279, 2279, 2279, 482: 2279, 490: 2279, 492: 2279, 573: 2279, 582: 2279, 586: 2279, 638: 2279, 642: 2279, 2279, 2279}, + {2280, 2280, 2280, 2280, 2280, 2280, 2280, 2280, 2280, 2280, 2280, 2280, 2280, 47: 2280, 472: 2280, 476: 2280, 2280, 2280, 2280, 482: 2280, 490: 2280, 492: 2280, 573: 2280, 582: 2280, 586: 2280, 638: 2280, 642: 2280, 2280, 2280}, + {2230, 2230, 2230, 2230, 2230, 2230, 2230, 2230, 2230, 2230, 2230, 2230, 2230, 47: 2230, 472: 2230, 476: 2230, 2230, 2230, 2230, 482: 2230, 490: 2230, 492: 2230, 573: 2230, 582: 2230, 586: 2230, 638: 2230, 642: 2230, 2230, 2230}, // 2155 + {2229, 2229, 2229, 2229, 2229, 2229, 2229, 2229, 2229, 2229, 2229, 2229, 2229, 47: 2229, 472: 2229, 476: 2229, 2229, 2229, 2229, 482: 2229, 490: 2229, 492: 2229, 573: 2229, 582: 2229, 586: 2229, 638: 2229, 642: 2229, 2229, 2229}, + {2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228, 47: 2228, 472: 2228, 476: 2228, 2228, 2228, 2228, 482: 2228, 490: 2228, 492: 2228, 573: 2228, 582: 2228, 586: 2228, 638: 2228, 642: 2228, 2228, 2228}, + {2227, 2227, 2227, 2227, 2227, 2227, 2227, 2227, 2227, 2227, 2227, 2227, 2227, 47: 2227, 472: 2227, 476: 2227, 2227, 2227, 2227, 482: 2227, 490: 2227, 492: 2227, 573: 2227, 582: 2227, 586: 2227, 638: 2227, 642: 2227, 2227, 2227}, + {149: 4672, 473: 4671, 588: 4659, 4656, 591: 4657, 4658, 944: 4654, 4655, 4673, 994: 4680, 1079: 4681}, + {473: 4676}, + // 2160 + {2222, 2222, 2222, 2222, 2222, 2222, 2222, 2222, 2222, 2222, 2222, 2222, 2222, 47: 2222, 472: 2222, 476: 2222, 2222, 2222, 2222, 482: 2222, 490: 2222, 492: 2222, 573: 2222, 582: 2222, 586: 2222, 638: 2222, 642: 2222, 2222, 2222}, + {154: 4152}, + {473: 4149}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 4677, 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 2729, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 3561, 777: 4678}, {2225, 2225, 2225, 2225, 2225, 2225, 2225, 2225, 2225, 2225, 2225, 2225, 2225, 47: 2225, 472: 2225, 476: 2225, 2225, 2225, 2225, 482: 2225, 490: 2225, 492: 2225, 573: 2225, 582: 2225, 586: 2225, 638: 2225, 642: 2225, 2225, 2225}, + // 2165 + {7: 3563, 47: 4679}, {2224, 2224, 2224, 2224, 2224, 2224, 2224, 2224, 2224, 2224, 2224, 2224, 2224, 47: 2224, 472: 2224, 476: 2224, 2224, 2224, 2224, 482: 2224, 490: 2224, 492: 2224, 573: 2224, 582: 2224, 586: 2224, 638: 2224, 642: 2224, 2224, 2224}, + {47: 4683}, + {47: 4682}, {2223, 2223, 2223, 2223, 2223, 2223, 2223, 2223, 2223, 2223, 2223, 2223, 2223, 47: 2223, 472: 2223, 476: 2223, 2223, 2223, 2223, 482: 2223, 490: 2223, 492: 2223, 573: 2223, 582: 2223, 586: 2223, 638: 2223, 642: 2223, 2223, 2223}, - {149: 4667, 473: 4666, 588: 4654, 4651, 591: 4652, 4653, 944: 4649, 4650, 4668, 994: 4675, 1079: 4676}, - {473: 4671}, - // 2160 - {2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 47: 2218, 472: 2218, 476: 2218, 2218, 2218, 2218, 482: 2218, 490: 2218, 492: 2218, 573: 2218, 582: 2218, 586: 2218, 638: 2218, 642: 2218, 2218, 2218}, - {154: 4147}, - {473: 4144}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 4672, 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 2724, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 3556, 777: 4673}, - {2221, 2221, 2221, 2221, 2221, 2221, 2221, 2221, 2221, 2221, 2221, 2221, 2221, 47: 2221, 472: 2221, 476: 2221, 2221, 2221, 2221, 482: 2221, 490: 2221, 492: 2221, 573: 2221, 582: 2221, 586: 2221, 638: 2221, 642: 2221, 2221, 2221}, - // 2165 - {7: 3558, 47: 4674}, - {2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 47: 2220, 472: 2220, 476: 2220, 2220, 2220, 2220, 482: 2220, 490: 2220, 492: 2220, 573: 2220, 582: 2220, 586: 2220, 638: 2220, 642: 2220, 2220, 2220}, - {47: 4678}, - {47: 4677}, - {2219, 2219, 2219, 2219, 2219, 2219, 2219, 2219, 2219, 2219, 2219, 2219, 2219, 47: 2219, 472: 2219, 476: 2219, 2219, 2219, 2219, 482: 2219, 490: 2219, 492: 2219, 573: 2219, 582: 2219, 586: 2219, 638: 2219, 642: 2219, 2219, 2219}, // 2170 - {2222, 2222, 2222, 2222, 2222, 2222, 2222, 2222, 2222, 2222, 2222, 2222, 2222, 47: 2222, 472: 2222, 476: 2222, 2222, 2222, 2222, 482: 2222, 490: 2222, 492: 2222, 573: 2222, 582: 2222, 586: 2222, 638: 2222, 642: 2222, 2222, 2222}, - {2277, 2277, 2277, 2277, 2277, 2277, 2277, 2277, 2277, 2277, 2277, 2277, 2277, 47: 2277, 472: 2277, 476: 2277, 2277, 2277, 2277, 482: 2277, 490: 2277, 492: 2277, 573: 2277, 582: 2277, 586: 2277, 638: 2277, 642: 2277, 2277, 2277}, - {2280, 2280, 2280, 2280, 2280, 2280, 2280, 2280, 2280, 2280, 2280, 2280, 2280, 47: 2280, 83: 4681, 85: 4682, 472: 2280, 476: 2280, 2280, 2280, 2280, 482: 2280, 490: 2280, 492: 2280, 573: 2280, 582: 2280, 586: 2280, 638: 2280, 642: 2280, 2280, 2280, 867: 4683}, - {2408, 2408, 2408, 2408, 2408, 2408, 2408, 2408, 2408, 2408, 2408, 2408, 2408, 17: 2408, 47: 2408, 81: 2408, 2408, 2408, 2408, 2408, 87: 2408, 472: 2408, 474: 2408, 476: 2408, 2408, 2408, 2408, 481: 2408, 2408, 490: 2408, 492: 2408, 496: 2408, 573: 2408, 582: 2408, 586: 2408, 638: 2408, 642: 2408, 2408, 2408}, - {2407, 2407, 2407, 2407, 2407, 2407, 2407, 2407, 2407, 2407, 2407, 2407, 2407, 17: 2407, 47: 2407, 81: 2407, 2407, 2407, 2407, 2407, 87: 2407, 472: 2407, 474: 2407, 476: 2407, 2407, 2407, 2407, 481: 2407, 2407, 490: 2407, 492: 2407, 496: 2407, 573: 2407, 582: 2407, 586: 2407, 638: 2407, 642: 2407, 2407, 2407}, + {2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, 47: 2226, 472: 2226, 476: 2226, 2226, 2226, 2226, 482: 2226, 490: 2226, 492: 2226, 573: 2226, 582: 2226, 586: 2226, 638: 2226, 642: 2226, 2226, 2226}, + {2281, 2281, 2281, 2281, 2281, 2281, 2281, 2281, 2281, 2281, 2281, 2281, 2281, 47: 2281, 472: 2281, 476: 2281, 2281, 2281, 2281, 482: 2281, 490: 2281, 492: 2281, 573: 2281, 582: 2281, 586: 2281, 638: 2281, 642: 2281, 2281, 2281}, + {2284, 2284, 2284, 2284, 2284, 2284, 2284, 2284, 2284, 2284, 2284, 2284, 2284, 47: 2284, 83: 4686, 85: 4687, 472: 2284, 476: 2284, 2284, 2284, 2284, 482: 2284, 490: 2284, 492: 2284, 573: 2284, 582: 2284, 586: 2284, 638: 2284, 642: 2284, 2284, 2284, 867: 4688}, + {2412, 2412, 2412, 2412, 2412, 2412, 2412, 2412, 2412, 2412, 2412, 2412, 2412, 17: 2412, 47: 2412, 81: 2412, 2412, 2412, 2412, 2412, 87: 2412, 472: 2412, 474: 2412, 476: 2412, 2412, 2412, 2412, 481: 2412, 2412, 490: 2412, 492: 2412, 496: 2412, 573: 2412, 582: 2412, 586: 2412, 638: 2412, 642: 2412, 2412, 2412}, + {2411, 2411, 2411, 2411, 2411, 2411, 2411, 2411, 2411, 2411, 2411, 2411, 2411, 17: 2411, 47: 2411, 81: 2411, 2411, 2411, 2411, 2411, 87: 2411, 472: 2411, 474: 2411, 476: 2411, 2411, 2411, 2411, 481: 2411, 2411, 490: 2411, 492: 2411, 496: 2411, 573: 2411, 582: 2411, 586: 2411, 638: 2411, 642: 2411, 2411, 2411}, // 2175 - {2279, 2279, 2279, 2279, 2279, 2279, 2279, 2279, 2279, 2279, 2279, 2279, 2279, 47: 2279, 472: 2279, 476: 2279, 2279, 2279, 2279, 482: 2279, 490: 2279, 492: 2279, 573: 2279, 582: 2279, 586: 2279, 638: 2279, 642: 2279, 2279, 2279}, {2283, 2283, 2283, 2283, 2283, 2283, 2283, 2283, 2283, 2283, 2283, 2283, 2283, 47: 2283, 472: 2283, 476: 2283, 2283, 2283, 2283, 482: 2283, 490: 2283, 492: 2283, 573: 2283, 582: 2283, 586: 2283, 638: 2283, 642: 2283, 2283, 2283}, - {573: 2380, 582: 2380, 586: 2380, 638: 2380, 648: 2380, 674: 2380, 2380}, - {2379, 2379, 2379, 2379, 7: 2379, 490: 2379, 573: 2379, 582: 2379, 586: 2379, 638: 2379, 648: 2379, 674: 2379, 2379}, - {2316, 2316, 2316, 2316, 7: 2316, 2316, 2316, 47: 2316, 490: 2316}, + {2287, 2287, 2287, 2287, 2287, 2287, 2287, 2287, 2287, 2287, 2287, 2287, 2287, 47: 2287, 472: 2287, 476: 2287, 2287, 2287, 2287, 482: 2287, 490: 2287, 492: 2287, 573: 2287, 582: 2287, 586: 2287, 638: 2287, 642: 2287, 2287, 2287}, + {573: 2384, 582: 2384, 586: 2384, 638: 2384, 648: 2384, 674: 2384, 2384}, + {2383, 2383, 2383, 2383, 7: 2383, 490: 2383, 573: 2383, 582: 2383, 586: 2383, 638: 2383, 648: 2383, 674: 2383, 2383}, + {2320, 2320, 2320, 2320, 7: 2320, 2320, 2320, 47: 2320, 490: 2320}, // 2180 - {2438, 2438, 2438, 2438, 7: 2438, 490: 2438}, - {2390, 2390, 2390, 2390, 7: 2390, 490: 2390}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 4111, 2731, 2732, 2730, 742: 4691}, - {2389, 2389, 2389, 2389, 7: 2389, 490: 2389}, - {2: 1850, 1850, 1850, 1850, 1850, 8: 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 48: 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 566: 4416, 780: 4693}, + {2442, 2442, 2442, 2442, 7: 2442, 490: 2442}, + {2394, 2394, 2394, 2394, 7: 2394, 490: 2394}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 4116, 2736, 2737, 2735, 743: 4696}, + {2393, 2393, 2393, 2393, 7: 2393, 490: 2393}, + {2: 1854, 1854, 1854, 1854, 1854, 8: 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 48: 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 566: 4421, 780: 4698}, // 2185 - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 4111, 2731, 2732, 2730, 742: 4420, 846: 4694}, - {2391, 2391, 2391, 2391, 7: 2391, 4689, 4690, 490: 2391, 927: 4695}, - {2439, 2439, 2439, 2439, 7: 2439, 490: 2439}, - {2440, 2440, 2440, 2440, 7: 2440, 490: 2440}, - {2441, 2441, 2441, 2441, 7: 2441, 490: 2441}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 4116, 2736, 2737, 2735, 743: 4425, 846: 4699}, + {2395, 2395, 2395, 2395, 7: 2395, 4694, 4695, 490: 2395, 927: 4700}, + {2443, 2443, 2443, 2443, 7: 2443, 490: 2443}, + {2444, 2444, 2444, 2444, 7: 2444, 490: 2444}, + {2445, 2445, 2445, 2445, 7: 2445, 490: 2445}, // 2190 - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 4111, 2731, 2732, 2730, 742: 4701, 983: 4700, 1164: 4699}, - {2442, 2442, 2442, 2442, 7: 4703, 490: 2442}, - {1300, 1300, 1300, 1300, 7: 1300, 490: 1300}, - {1290, 1290, 1290, 1290, 7: 1290, 490: 1290, 529: 4587, 4586, 947: 4702}, - {1298, 1298, 1298, 1298, 7: 1298, 490: 1298}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 4116, 2736, 2737, 2735, 743: 4706, 983: 4705, 1165: 4704}, + {2446, 2446, 2446, 2446, 7: 4708, 490: 2446}, + {1304, 1304, 1304, 1304, 7: 1304, 490: 1304}, + {1294, 1294, 1294, 1294, 7: 1294, 490: 1294, 529: 4592, 4591, 947: 4707}, + {1302, 1302, 1302, 1302, 7: 1302, 490: 1302}, // 2195 - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 4111, 2731, 2732, 2730, 742: 4701, 983: 4704}, - {1299, 1299, 1299, 1299, 7: 1299, 490: 1299}, - {2: 564, 564, 564, 564, 564, 8: 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 48: 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 4708, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 650: 564, 817: 4707, 835: 4706}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 650: 4710, 663: 4712, 2731, 2732, 2730, 788: 4711, 830: 4709}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 4116, 2736, 2737, 2735, 743: 4706, 983: 4709}, + {1303, 1303, 1303, 1303, 7: 1303, 490: 1303}, + {2: 564, 564, 564, 564, 564, 8: 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 48: 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 4713, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 650: 564, 817: 4712, 835: 4711}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 650: 4715, 663: 4717, 2736, 2737, 2735, 788: 4716, 830: 4714}, {563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 48: 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 473: 563, 490: 563, 508: 563, 543: 563, 569: 563, 650: 563}, // 2200 {562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 48: 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 562, 473: 562, 490: 562, 508: 562, 543: 562, 569: 562, 650: 562}, - {2445, 2445, 2445, 2445, 7: 2445, 490: 2445}, - {2414, 2414, 2414, 2414, 7: 2414, 18: 2414, 490: 2414}, - {2413, 2413, 2413, 2413, 7: 4713, 18: 2413, 490: 2413}, - {2384, 2384, 2384, 2384, 7: 2384, 18: 2384, 47: 2384, 98: 2384, 161: 2384, 474: 2384, 490: 2384, 495: 2384, 648: 2384, 650: 2384}, + {2449, 2449, 2449, 2449, 7: 2449, 490: 2449}, + {2418, 2418, 2418, 2418, 7: 2418, 18: 2418, 490: 2418}, + {2417, 2417, 2417, 2417, 7: 4718, 18: 2417, 490: 2417}, + {2388, 2388, 2388, 2388, 7: 2388, 18: 2388, 47: 2388, 98: 2388, 162: 2388, 474: 2388, 490: 2388, 495: 2388, 648: 2388, 650: 2388}, // 2205 - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 4714, 2731, 2732, 2730}, - {2383, 2383, 2383, 2383, 7: 2383, 18: 2383, 47: 2383, 98: 2383, 161: 2383, 474: 2383, 490: 2383, 495: 2383, 648: 2383, 650: 2383}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 650: 4710, 663: 4712, 2731, 2732, 2730, 788: 4711, 830: 4717}, - {2446, 2446, 2446, 2446, 7: 2446, 490: 2446}, - {18: 4718}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 4719, 2736, 2737, 2735}, + {2387, 2387, 2387, 2387, 7: 2387, 18: 2387, 47: 2387, 98: 2387, 162: 2387, 474: 2387, 490: 2387, 495: 2387, 648: 2387, 650: 2387}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 650: 4715, 663: 4717, 2736, 2737, 2735, 788: 4716, 830: 4722}, + {2450, 2450, 2450, 2450, 7: 2450, 490: 2450}, + {18: 4723}, // 2210 - {2448, 2448, 2448, 2448, 7: 2448, 490: 2448}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 650: 4710, 663: 4712, 2731, 2732, 2730, 788: 4711, 830: 4721}, - {2447, 2447, 2447, 2447, 7: 2447, 490: 2447}, - {18: 4722}, - {2449, 2449, 2449, 2449, 7: 2449, 490: 2449}, + {2452, 2452, 2452, 2452, 7: 2452, 490: 2452}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 650: 4715, 663: 4717, 2736, 2737, 2735, 788: 4716, 830: 4726}, + {2451, 2451, 2451, 2451, 7: 2451, 490: 2451}, + {18: 4727}, + {2453, 2453, 2453, 2453, 7: 2453, 490: 2453}, // 2215 - {2: 564, 564, 564, 564, 564, 8: 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 48: 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 4708, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 650: 564, 817: 4707, 835: 4724}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 650: 4710, 663: 4712, 2731, 2732, 2730, 788: 4711, 830: 4725}, - {2450, 2450, 2450, 2450, 7: 2450, 490: 2450}, - {2: 564, 564, 564, 564, 564, 8: 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 48: 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 4708, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 650: 564, 817: 4707, 835: 4727}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 650: 4710, 663: 4712, 2731, 2732, 2730, 788: 4711, 830: 4728}, + {2: 564, 564, 564, 564, 564, 8: 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 48: 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 4713, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 650: 564, 817: 4712, 835: 4729}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 650: 4715, 663: 4717, 2736, 2737, 2735, 788: 4716, 830: 4730}, + {2454, 2454, 2454, 2454, 7: 2454, 490: 2454}, + {2: 564, 564, 564, 564, 564, 8: 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 48: 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 4713, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 650: 564, 817: 4712, 835: 4732}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 650: 4715, 663: 4717, 2736, 2737, 2735, 788: 4716, 830: 4733}, // 2220 - {2451, 2451, 2451, 2451, 7: 2451, 490: 2451}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 650: 4710, 663: 4712, 2731, 2732, 2730, 788: 4711, 830: 4730}, - {2452, 2452, 2452, 2452, 7: 2452, 490: 2452}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 4732, 2731, 2732, 2730}, - {474: 4733}, + {2455, 2455, 2455, 2455, 7: 2455, 490: 2455}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 650: 4715, 663: 4717, 2736, 2737, 2735, 788: 4716, 830: 4735}, + {2456, 2456, 2456, 2456, 7: 2456, 490: 2456}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 4737, 2736, 2737, 2735}, + {474: 4738}, // 2225 - {569: 4734}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 3889, 2731, 2732, 2730, 736: 4735}, - {2412, 2412, 2412, 2412, 7: 2412, 219: 4739, 474: 4738, 490: 2412, 1344: 4737, 4736}, - {2453, 2453, 2453, 2453, 7: 2453, 490: 2453}, - {2411, 2411, 2411, 2411, 7: 2411, 490: 2411}, + {569: 4739}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 3894, 2736, 2737, 2735, 736: 4740}, + {2416, 2416, 2416, 2416, 7: 2416, 219: 4744, 474: 4743, 490: 2416, 1345: 4742, 4741}, + {2457, 2457, 2457, 2457, 7: 2457, 490: 2457}, + {2415, 2415, 2415, 2415, 7: 2415, 490: 2415}, // 2230 - {194: 4741}, - {194: 4740}, - {2409, 2409, 2409, 2409, 7: 2409, 490: 2409}, - {2410, 2410, 2410, 2410, 7: 2410, 490: 2410}, - {2: 1850, 1850, 1850, 1850, 1850, 8: 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 48: 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 566: 4416, 780: 4760}, + {194: 4746}, + {194: 4745}, + {2413, 2413, 2413, 2413, 7: 2413, 490: 2413}, + {2414, 2414, 2414, 2414, 7: 2414, 490: 2414}, + {2: 1854, 1854, 1854, 1854, 1854, 8: 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 48: 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 566: 4421, 780: 4765}, // 2235 - {573: 4759}, - {2: 1850, 1850, 1850, 1850, 1850, 8: 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 48: 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 566: 4416, 780: 4757}, - {2: 1850, 1850, 1850, 1850, 1850, 8: 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 48: 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 566: 4416, 780: 4755}, - {2: 1850, 1850, 1850, 1850, 1850, 8: 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 48: 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 566: 4416, 780: 4753}, - {573: 4750}, + {573: 4764}, + {2: 1854, 1854, 1854, 1854, 1854, 8: 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 48: 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 566: 4421, 780: 4762}, + {2: 1854, 1854, 1854, 1854, 1854, 8: 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 48: 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 566: 4421, 780: 4760}, + {2: 1854, 1854, 1854, 1854, 1854, 8: 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 48: 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 566: 4421, 780: 4758}, + {573: 4755}, // 2240 - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 4749, 2731, 2732, 2730}, - {2420, 2420, 2420, 2420, 7: 2420, 490: 2420}, - {2: 1850, 1850, 1850, 1850, 1850, 8: 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 48: 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 566: 4416, 780: 4751}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 4686, 2731, 2732, 2730, 1141: 4752}, - {2443, 2443, 2443, 2443, 7: 2443, 490: 2443}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 4754, 2736, 2737, 2735}, + {2424, 2424, 2424, 2424, 7: 2424, 490: 2424}, + {2: 1854, 1854, 1854, 1854, 1854, 8: 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 48: 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 566: 4421, 780: 4756}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 4691, 2736, 2737, 2735, 1141: 4757}, + {2447, 2447, 2447, 2447, 7: 2447, 490: 2447}, // 2245 - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 4754, 2731, 2732, 2730}, - {2444, 2444, 2444, 2444, 7: 2444, 490: 2444}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 4756, 2731, 2732, 2730}, - {2454, 2454, 2454, 2454, 7: 2454, 490: 2454}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 4712, 2731, 2732, 2730, 788: 4758}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 4759, 2736, 2737, 2735}, + {2448, 2448, 2448, 2448, 7: 2448, 490: 2448}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 4761, 2736, 2737, 2735}, + {2458, 2458, 2458, 2458, 7: 2458, 490: 2458}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 4717, 2736, 2737, 2735, 788: 4763}, // 2250 - {2455, 2455, 2455, 2455, 7: 4713, 490: 2455}, - {2456, 2456, 2456, 2456, 7: 2456, 490: 2456}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 4111, 2731, 2732, 2730, 742: 4761}, - {2042, 2042, 2042, 2042, 7: 2042, 490: 2042, 669: 4764, 671: 4763, 909: 4762}, - {2457, 2457, 2457, 2457, 7: 2457, 490: 2457}, + {2459, 2459, 2459, 2459, 7: 4718, 490: 2459}, + {2460, 2460, 2460, 2460, 7: 2460, 490: 2460}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 4116, 2736, 2737, 2735, 743: 4766}, + {2046, 2046, 2046, 2046, 7: 2046, 490: 2046, 669: 4769, 671: 4768, 909: 4767}, + {2461, 2461, 2461, 2461, 7: 2461, 490: 2461}, // 2255 - {2041, 2041, 2041, 2041, 7: 2041, 490: 2041}, - {2040, 2040, 2040, 2040, 7: 2040, 490: 2040}, - {136: 4708, 508: 564, 817: 4707, 835: 4766}, - {508: 2705, 732: 4767}, - {2458, 2458, 2458, 2458, 7: 2458, 490: 2458}, + {2045, 2045, 2045, 2045, 7: 2045, 490: 2045}, + {2044, 2044, 2044, 2044, 7: 2044, 490: 2044}, + {136: 4713, 508: 564, 817: 4712, 835: 4771}, + {508: 2710, 732: 4772}, + {2462, 2462, 2462, 2462, 7: 2462, 490: 2462}, // 2260 - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 650: 4710, 663: 4712, 2731, 2732, 2730, 788: 4711, 830: 4769}, - {2459, 2459, 2459, 2459, 7: 2459, 490: 2459}, - {2: 1848, 1848, 1848, 1848, 1848, 8: 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 48: 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 473: 1848, 566: 4788, 784: 4902}, - {2465, 2465, 2465, 2465, 7: 2465, 490: 2465}, - {1848, 1848, 1848, 1848, 7: 1848, 105: 1848, 136: 1848, 473: 1848, 490: 1848, 566: 4788, 784: 4856, 817: 1848}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 650: 4715, 663: 4717, 2736, 2737, 2735, 788: 4716, 830: 4774}, + {2463, 2463, 2463, 2463, 7: 2463, 490: 2463}, + {2: 1852, 1852, 1852, 1852, 1852, 8: 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 48: 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 473: 1852, 566: 4793, 784: 4907}, + {2469, 2469, 2469, 2469, 7: 2469, 490: 2469}, + {1852, 1852, 1852, 1852, 7: 1852, 105: 1852, 136: 1852, 473: 1852, 490: 1852, 566: 4793, 784: 4861, 817: 1852}, // 2265 - {2: 1848, 1848, 1848, 1848, 1848, 8: 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 48: 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 566: 4788, 784: 4847}, - {573: 4374, 582: 4780, 586: 4775, 638: 4778, 648: 4375, 674: 4779, 4776, 827: 4777, 1192: 4781}, - {573: 4841}, - {2: 2395, 2395, 2395, 2395, 2395, 8: 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 48: 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 473: 2395, 573: 4374, 648: 4375, 827: 4797, 1065: 4835}, - {2: 1848, 1848, 1848, 1848, 1848, 8: 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 48: 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 473: 1848, 481: 1848, 566: 4788, 784: 4829}, + {2: 1852, 1852, 1852, 1852, 1852, 8: 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 48: 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 566: 4793, 784: 4852}, + {573: 4379, 582: 4785, 586: 4780, 638: 4783, 648: 4380, 674: 4784, 4781, 827: 4782, 1193: 4786}, + {573: 4846}, + {2: 2399, 2399, 2399, 2399, 2399, 8: 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 48: 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 473: 2399, 573: 4379, 648: 4380, 827: 4802, 1065: 4840}, + {2: 1852, 1852, 1852, 1852, 1852, 8: 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 48: 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 473: 1852, 481: 1852, 566: 4793, 784: 4834}, // 2270 - {2: 2395, 2395, 2395, 2395, 2395, 8: 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 48: 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 2395, 473: 2395, 481: 2395, 573: 4374, 648: 4375, 827: 4797, 1065: 4798}, - {573: 4786}, - {473: 4782}, + {2: 2399, 2399, 2399, 2399, 2399, 8: 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 48: 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 473: 2399, 481: 2399, 573: 4379, 648: 4380, 827: 4802, 1065: 4803}, + {573: 4791}, + {473: 4787}, {440, 440, 440, 440, 7: 440, 47: 440, 490: 440}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 2724, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 4783}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 2729, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 4788}, // 2275 - {47: 4784, 505: 3313, 509: 3311, 3312, 3310, 3308, 733: 3309, 3307}, - {2287, 2287, 2287, 2287, 7: 2287, 47: 2287, 147: 4397, 476: 4057, 4056, 490: 2287, 809: 4398, 932: 4642, 1039: 4785}, - {2245, 2245, 2245, 2245, 7: 2245, 47: 2245, 490: 2245}, - {2: 1848, 1848, 1848, 1848, 1848, 8: 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 48: 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 473: 1848, 566: 4788, 784: 4787}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 473: 1844, 663: 4792, 2731, 2732, 2730, 876: 4791}, + {47: 4789, 505: 3318, 509: 3316, 3317, 3315, 3313, 733: 3314, 3312}, + {2291, 2291, 2291, 2291, 7: 2291, 47: 2291, 147: 4402, 476: 4062, 4061, 490: 2291, 809: 4403, 932: 4647, 1039: 4790}, + {2249, 2249, 2249, 2249, 7: 2249, 47: 2249, 490: 2249}, + {2: 1852, 1852, 1852, 1852, 1852, 8: 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 48: 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 473: 1852, 566: 4793, 784: 4792}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 473: 1848, 663: 4797, 2736, 2737, 2735, 876: 4796}, // 2280 - {476: 4057, 4056, 809: 4789}, - {584: 4790}, - {1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 48: 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 1847, 473: 1847, 475: 1847, 481: 1847, 490: 1847, 570: 1847, 817: 1847}, - {473: 4793}, - {473: 1843}, + {476: 4062, 4061, 809: 4794}, + {584: 4795}, + {1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 48: 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 473: 1851, 475: 1851, 481: 1851, 490: 1851, 570: 1851, 817: 1851}, + {473: 4798}, + {473: 1847}, // 2285 - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 473: 4582, 663: 4111, 2731, 2732, 2730, 742: 4581, 826: 4580, 834: 4794}, - {7: 4591, 47: 4795}, - {643: 4575, 908: 4796}, - {2246, 2246, 2246, 2246, 7: 2246, 47: 2246, 490: 2246}, - {2: 2394, 2394, 2394, 2394, 2394, 8: 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 48: 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 473: 2394, 481: 2394}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 473: 4587, 663: 4116, 2736, 2737, 2735, 743: 4586, 826: 4585, 834: 4799}, + {7: 4596, 47: 4800}, + {643: 4580, 908: 4801}, + {2250, 2250, 2250, 2250, 7: 2250, 47: 2250, 490: 2250}, + {2: 2398, 2398, 2398, 2398, 2398, 8: 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 48: 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 473: 2398, 481: 2398}, // 2290 - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 473: 1844, 481: 1844, 663: 4800, 2731, 2732, 2730, 876: 4801, 940: 4799}, - {473: 4809}, - {82: 4807, 473: 1843, 481: 1843}, - {473: 1834, 481: 4802}, - {141: 4805, 172: 4804, 187: 4806, 903: 4803}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 473: 1848, 481: 1848, 663: 4805, 2736, 2737, 2735, 876: 4806, 940: 4804}, + {473: 4814}, + {82: 4812, 473: 1847, 481: 1847}, + {473: 1838, 481: 4807}, + {141: 4810, 172: 4809, 187: 4811, 903: 4808}, // 2295 - {473: 1833}, - {1827, 1827, 1827, 1827, 1827, 7: 1827, 17: 1827, 47: 1827, 81: 1827, 1827, 1827, 1827, 1827, 87: 1827, 472: 1827, 1827, 1827, 481: 1827, 490: 1827, 496: 1827}, - {1826, 1826, 1826, 1826, 1826, 7: 1826, 17: 1826, 47: 1826, 81: 1826, 1826, 1826, 1826, 1826, 87: 1826, 472: 1826, 1826, 1826, 481: 1826, 490: 1826, 496: 1826}, - {1825, 1825, 1825, 1825, 1825, 7: 1825, 17: 1825, 47: 1825, 81: 1825, 1825, 1825, 1825, 1825, 87: 1825, 472: 1825, 1825, 1825, 481: 1825, 490: 1825, 496: 1825}, - {141: 4805, 172: 4804, 187: 4806, 903: 4808}, + {473: 1837}, + {1831, 1831, 1831, 1831, 1831, 7: 1831, 17: 1831, 47: 1831, 81: 1831, 1831, 1831, 1831, 1831, 87: 1831, 472: 1831, 1831, 1831, 481: 1831, 490: 1831, 496: 1831}, + {1830, 1830, 1830, 1830, 1830, 7: 1830, 17: 1830, 47: 1830, 81: 1830, 1830, 1830, 1830, 1830, 87: 1830, 472: 1830, 1830, 1830, 481: 1830, 490: 1830, 496: 1830}, + {1829, 1829, 1829, 1829, 1829, 7: 1829, 17: 1829, 47: 1829, 81: 1829, 1829, 1829, 1829, 1829, 87: 1829, 472: 1829, 1829, 1829, 481: 1829, 490: 1829, 496: 1829}, + {141: 4810, 172: 4809, 187: 4811, 903: 4813}, // 2300 - {473: 1832}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 473: 4582, 663: 4111, 2731, 2732, 2730, 742: 4581, 826: 4580, 834: 4810}, - {7: 4591, 47: 4811}, - {1842, 1842, 1842, 1842, 1842, 7: 1842, 17: 1842, 47: 1842, 82: 1842, 1842, 1842, 1842, 87: 1842, 474: 1842, 481: 1842, 490: 1842, 878: 4812}, - {2247, 2247, 2247, 2247, 4817, 7: 2247, 17: 4814, 47: 2247, 82: 4821, 4681, 4394, 4682, 87: 4393, 474: 4816, 481: 4820, 490: 2247, 854: 4818, 856: 4815, 867: 4819, 877: 4813}, + {473: 1836}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 473: 4587, 663: 4116, 2736, 2737, 2735, 743: 4586, 826: 4585, 834: 4815}, + {7: 4596, 47: 4816}, + {1846, 1846, 1846, 1846, 1846, 7: 1846, 17: 1846, 47: 1846, 82: 1846, 1846, 1846, 1846, 87: 1846, 474: 1846, 481: 1846, 490: 1846, 878: 4817}, + {2251, 2251, 2251, 2251, 4822, 7: 2251, 17: 4819, 47: 2251, 82: 4826, 4686, 4399, 4687, 87: 4398, 474: 4821, 481: 4825, 490: 2251, 854: 4823, 856: 4820, 867: 4824, 877: 4818}, // 2305 - {1841, 1841, 1841, 1841, 1841, 7: 1841, 17: 1841, 47: 1841, 81: 1841, 1841, 1841, 1841, 1841, 87: 1841, 474: 1841, 481: 1841, 490: 1841, 496: 1841}, - {498: 4246, 508: 2037, 735: 4827}, - {1839, 1839, 1839, 1839, 1839, 7: 1839, 17: 1839, 47: 1839, 81: 1839, 1839, 1839, 1839, 1839, 87: 1839, 474: 1839, 481: 1839, 490: 1839, 496: 1839}, - {367: 4825}, - {475: 4824}, + {1845, 1845, 1845, 1845, 1845, 7: 1845, 17: 1845, 47: 1845, 81: 1845, 1845, 1845, 1845, 1845, 87: 1845, 474: 1845, 481: 1845, 490: 1845, 496: 1845}, + {498: 4251, 508: 2041, 735: 4832}, + {1843, 1843, 1843, 1843, 1843, 7: 1843, 17: 1843, 47: 1843, 81: 1843, 1843, 1843, 1843, 1843, 87: 1843, 474: 1843, 481: 1843, 490: 1843, 496: 1843}, + {367: 4830}, + {475: 4829}, // 2310 - {1836, 1836, 1836, 1836, 1836, 7: 1836, 17: 1836, 47: 1836, 81: 1836, 1836, 1836, 1836, 1836, 87: 1836, 474: 1836, 481: 1836, 490: 1836, 496: 1836}, - {1835, 1835, 1835, 1835, 1835, 7: 1835, 17: 1835, 47: 1835, 81: 1835, 1835, 1835, 1835, 1835, 87: 1835, 474: 1835, 481: 1835, 490: 1835, 496: 1835}, - {141: 4805, 172: 4804, 187: 4806, 903: 4823}, - {141: 4805, 172: 4804, 187: 4806, 903: 4822}, - {1828, 1828, 1828, 1828, 1828, 7: 1828, 17: 1828, 47: 1828, 81: 1828, 1828, 1828, 1828, 1828, 87: 1828, 472: 1828, 474: 1828, 481: 1828, 490: 1828, 496: 1828}, + {1840, 1840, 1840, 1840, 1840, 7: 1840, 17: 1840, 47: 1840, 81: 1840, 1840, 1840, 1840, 1840, 87: 1840, 474: 1840, 481: 1840, 490: 1840, 496: 1840}, + {1839, 1839, 1839, 1839, 1839, 7: 1839, 17: 1839, 47: 1839, 81: 1839, 1839, 1839, 1839, 1839, 87: 1839, 474: 1839, 481: 1839, 490: 1839, 496: 1839}, + {141: 4810, 172: 4809, 187: 4811, 903: 4828}, + {141: 4810, 172: 4809, 187: 4811, 903: 4827}, + {1832, 1832, 1832, 1832, 1832, 7: 1832, 17: 1832, 47: 1832, 81: 1832, 1832, 1832, 1832, 1832, 87: 1832, 472: 1832, 474: 1832, 481: 1832, 490: 1832, 496: 1832}, // 2315 - {1829, 1829, 1829, 1829, 1829, 7: 1829, 17: 1829, 47: 1829, 81: 1829, 1829, 1829, 1829, 1829, 87: 1829, 472: 1829, 474: 1829, 481: 1829, 490: 1829, 496: 1829}, - {1837, 1837, 1837, 1837, 1837, 7: 1837, 17: 1837, 47: 1837, 81: 1837, 1837, 1837, 1837, 1837, 87: 1837, 474: 1837, 481: 1837, 490: 1837, 496: 1837}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 4826, 2731, 2732, 2730}, - {1838, 1838, 1838, 1838, 1838, 7: 1838, 17: 1838, 47: 1838, 81: 1838, 1838, 1838, 1838, 1838, 87: 1838, 474: 1838, 481: 1838, 490: 1838, 496: 1838}, - {508: 2705, 732: 2704, 743: 4828}, + {1833, 1833, 1833, 1833, 1833, 7: 1833, 17: 1833, 47: 1833, 81: 1833, 1833, 1833, 1833, 1833, 87: 1833, 472: 1833, 474: 1833, 481: 1833, 490: 1833, 496: 1833}, + {1841, 1841, 1841, 1841, 1841, 7: 1841, 17: 1841, 47: 1841, 81: 1841, 1841, 1841, 1841, 1841, 87: 1841, 474: 1841, 481: 1841, 490: 1841, 496: 1841}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 4831, 2736, 2737, 2735}, + {1842, 1842, 1842, 1842, 1842, 7: 1842, 17: 1842, 47: 1842, 81: 1842, 1842, 1842, 1842, 1842, 87: 1842, 474: 1842, 481: 1842, 490: 1842, 496: 1842}, + {508: 2710, 732: 2709, 742: 4833}, // 2320 - {1840, 1840, 1840, 1840, 1840, 7: 1840, 17: 1840, 47: 1840, 81: 1840, 1840, 1840, 1840, 1840, 87: 1840, 474: 1840, 481: 1840, 490: 1840, 496: 1840}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 473: 1844, 481: 1844, 663: 4800, 2731, 2732, 2730, 876: 4801, 940: 4830}, - {473: 4831}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 473: 4582, 663: 4111, 2731, 2732, 2730, 742: 4581, 826: 4580, 834: 4832}, - {7: 4591, 47: 4833}, + {1844, 1844, 1844, 1844, 1844, 7: 1844, 17: 1844, 47: 1844, 81: 1844, 1844, 1844, 1844, 1844, 87: 1844, 474: 1844, 481: 1844, 490: 1844, 496: 1844}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 473: 1848, 481: 1848, 663: 4805, 2736, 2737, 2735, 876: 4806, 940: 4835}, + {473: 4836}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 473: 4587, 663: 4116, 2736, 2737, 2735, 743: 4586, 826: 4585, 834: 4837}, + {7: 4596, 47: 4838}, // 2325 - {1842, 1842, 1842, 1842, 1842, 7: 1842, 17: 1842, 47: 1842, 82: 1842, 1842, 1842, 1842, 87: 1842, 474: 1842, 481: 1842, 490: 1842, 878: 4834}, - {2248, 2248, 2248, 2248, 4817, 7: 2248, 17: 4814, 47: 2248, 82: 4821, 4681, 4394, 4682, 87: 4393, 474: 4816, 481: 4820, 490: 2248, 854: 4818, 856: 4815, 867: 4819, 877: 4813}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 473: 1844, 663: 4792, 2731, 2732, 2730, 876: 4836}, - {473: 4837}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 473: 4582, 663: 4111, 2731, 2732, 2730, 742: 4581, 826: 4580, 834: 4838}, + {1846, 1846, 1846, 1846, 1846, 7: 1846, 17: 1846, 47: 1846, 82: 1846, 1846, 1846, 1846, 87: 1846, 474: 1846, 481: 1846, 490: 1846, 878: 4839}, + {2252, 2252, 2252, 2252, 4822, 7: 2252, 17: 4819, 47: 2252, 82: 4826, 4686, 4399, 4687, 87: 4398, 474: 4821, 481: 4825, 490: 2252, 854: 4823, 856: 4820, 867: 4824, 877: 4818}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 473: 1848, 663: 4797, 2736, 2737, 2735, 876: 4841}, + {473: 4842}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 473: 4587, 663: 4116, 2736, 2737, 2735, 743: 4586, 826: 4585, 834: 4843}, // 2330 - {7: 4591, 47: 4839}, - {1842, 1842, 1842, 1842, 1842, 7: 1842, 17: 1842, 47: 1842, 82: 1842, 1842, 1842, 1842, 87: 1842, 474: 1842, 481: 1842, 490: 1842, 878: 4840}, - {2249, 2249, 2249, 2249, 4817, 7: 2249, 17: 4814, 47: 2249, 82: 4821, 4681, 4394, 4682, 87: 4393, 474: 4816, 481: 4820, 490: 2249, 854: 4818, 856: 4815, 867: 4819, 877: 4813}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 473: 1844, 481: 1844, 663: 4800, 2731, 2732, 2730, 876: 4801, 940: 4842}, - {473: 4843}, + {7: 4596, 47: 4844}, + {1846, 1846, 1846, 1846, 1846, 7: 1846, 17: 1846, 47: 1846, 82: 1846, 1846, 1846, 1846, 87: 1846, 474: 1846, 481: 1846, 490: 1846, 878: 4845}, + {2253, 2253, 2253, 2253, 4822, 7: 2253, 17: 4819, 47: 2253, 82: 4826, 4686, 4399, 4687, 87: 4398, 474: 4821, 481: 4825, 490: 2253, 854: 4823, 856: 4820, 867: 4824, 877: 4818}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 473: 1848, 481: 1848, 663: 4805, 2736, 2737, 2735, 876: 4806, 940: 4847}, + {473: 4848}, // 2335 - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 473: 4582, 663: 4111, 2731, 2732, 2730, 742: 4581, 826: 4580, 834: 4844}, - {7: 4591, 47: 4845}, - {1842, 1842, 1842, 1842, 1842, 7: 1842, 17: 1842, 47: 1842, 82: 1842, 1842, 1842, 1842, 87: 1842, 474: 1842, 481: 1842, 490: 1842, 878: 4846}, - {2250, 2250, 2250, 2250, 4817, 7: 2250, 17: 4814, 47: 2250, 82: 4821, 4681, 4394, 4682, 87: 4393, 474: 4816, 481: 4820, 490: 2250, 854: 4818, 856: 4815, 867: 4819, 877: 4813}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 4848, 2731, 2732, 2730}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 473: 4587, 663: 4116, 2736, 2737, 2735, 743: 4586, 826: 4585, 834: 4849}, + {7: 4596, 47: 4850}, + {1846, 1846, 1846, 1846, 1846, 7: 1846, 17: 1846, 47: 1846, 82: 1846, 1846, 1846, 1846, 87: 1846, 474: 1846, 481: 1846, 490: 1846, 878: 4851}, + {2254, 2254, 2254, 2254, 4822, 7: 2254, 17: 4819, 47: 2254, 82: 4826, 4686, 4399, 4687, 87: 4398, 474: 4821, 481: 4825, 490: 2254, 854: 4823, 856: 4820, 867: 4824, 877: 4818}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 4853, 2736, 2737, 2735}, // 2340 - {228: 4850, 236: 4852, 239: 4851, 1137: 4849}, - {473: 4853}, - {47: 2199, 473: 2199}, - {47: 2198, 473: 2198}, - {47: 2197, 473: 2197}, + {228: 4855, 236: 4857, 239: 4856, 1137: 4854}, + {473: 4858}, + {47: 2203, 473: 2203}, + {47: 2202, 473: 2202}, + {47: 2201, 473: 2201}, // 2345 - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 4111, 2731, 2732, 2730, 742: 4112, 807: 4854}, - {7: 4114, 47: 4855}, - {2462, 2462, 2462, 2462, 7: 2462, 490: 2462}, - {564, 564, 564, 564, 7: 564, 105: 564, 136: 4708, 473: 564, 490: 564, 817: 4707, 835: 4857}, - {2132, 2132, 2132, 2132, 7: 2132, 105: 4859, 473: 4860, 490: 2132, 1096: 4858}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 4116, 2736, 2737, 2735, 743: 4117, 807: 4859}, + {7: 4119, 47: 4860}, + {2466, 2466, 2466, 2466, 7: 2466, 490: 2466}, + {564, 564, 564, 564, 7: 564, 105: 564, 136: 4713, 473: 564, 490: 564, 817: 4712, 835: 4862}, + {2136, 2136, 2136, 2136, 7: 2136, 105: 4864, 473: 4865, 490: 2136, 1096: 4863}, // 2350 - {2464, 2464, 2464, 2464, 7: 2464, 490: 2464}, - {508: 2705, 732: 4901}, - {490: 4863, 950: 4862, 1095: 4861}, - {7: 4899, 47: 4898}, - {7: 2130, 47: 2130}, + {2468, 2468, 2468, 2468, 7: 2468, 490: 2468}, + {508: 2710, 732: 4906}, + {490: 4868, 950: 4867, 1095: 4866}, + {7: 4904, 47: 4903}, + {7: 2134, 47: 2134}, // 2355 - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 4864, 2731, 2732, 2730}, - {4: 2109, 2109, 7: 2109, 16: 2109, 18: 2109, 20: 2109, 2109, 2109, 2109, 2109, 2109, 47: 2109, 146: 4869, 343: 4868, 473: 2109, 479: 4867, 501: 4866, 648: 2109, 1266: 4865}, - {4: 2122, 2122, 7: 2122, 16: 2122, 18: 2122, 20: 2122, 2122, 2122, 2122, 2122, 2122, 47: 2122, 473: 2122, 648: 2122, 949: 4885}, - {352: 4870, 544: 4871}, - {4: 2106, 2106, 7: 2106, 16: 2106, 18: 2106, 20: 2106, 2106, 2106, 2106, 2106, 2106, 47: 2106, 473: 2106, 648: 2106}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 4869, 2736, 2737, 2735}, + {4: 2113, 2113, 7: 2113, 16: 2113, 18: 2113, 20: 2113, 2113, 2113, 2113, 2113, 2113, 47: 2113, 146: 4874, 343: 4873, 473: 2113, 479: 4872, 501: 4871, 648: 2113, 1267: 4870}, + {4: 2126, 2126, 7: 2126, 16: 2126, 18: 2126, 20: 2126, 2126, 2126, 2126, 2126, 2126, 47: 2126, 473: 2126, 648: 2126, 949: 4890}, + {352: 4875, 544: 4876}, + {4: 2110, 2110, 7: 2110, 16: 2110, 18: 2110, 20: 2110, 2110, 2110, 2110, 2110, 2110, 47: 2110, 473: 2110, 648: 2110}, // 2360 - {4: 2104, 2104, 7: 2104, 16: 2104, 18: 2104, 20: 2104, 2104, 2104, 2104, 2104, 2104, 47: 2104, 473: 2104, 648: 2104}, - {4: 2103, 2103, 7: 2103, 16: 2103, 18: 2103, 20: 2103, 2103, 2103, 2103, 2103, 2103, 47: 2103, 473: 2103, 648: 2103}, - {399: 4880}, - {473: 4872}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 3317, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 656: 4874, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 4875, 943: 4876, 1077: 4873}, + {4: 2108, 2108, 7: 2108, 16: 2108, 18: 2108, 20: 2108, 2108, 2108, 2108, 2108, 2108, 47: 2108, 473: 2108, 648: 2108}, + {4: 2107, 2107, 7: 2107, 16: 2107, 18: 2107, 20: 2107, 2107, 2107, 2107, 2107, 2107, 47: 2107, 473: 2107, 648: 2107}, + {399: 4885}, + {473: 4877}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 3322, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 656: 4879, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 4880, 943: 4881, 1077: 4878}, // 2365 - {7: 4878, 47: 4877}, - {7: 1924, 47: 1924}, - {7: 1923, 47: 1923, 485: 3654, 3655, 3660, 523: 3656, 556: 3657, 3658, 3651, 3661, 3650, 3659, 3652, 3653}, - {7: 1911, 47: 1911}, - {4: 2105, 2105, 7: 2105, 16: 2105, 18: 2105, 20: 2105, 2105, 2105, 2105, 2105, 2105, 47: 2105, 473: 2105, 648: 2105}, + {7: 4883, 47: 4882}, + {7: 1928, 47: 1928}, + {7: 1927, 47: 1927, 485: 3659, 3660, 3665, 523: 3661, 556: 3662, 3663, 3656, 3666, 3655, 3664, 3657, 3658}, + {7: 1915, 47: 1915}, + {4: 2109, 2109, 7: 2109, 16: 2109, 18: 2109, 20: 2109, 2109, 2109, 2109, 2109, 2109, 47: 2109, 473: 2109, 648: 2109}, // 2370 - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 3317, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 656: 4874, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 4875, 943: 4879}, - {7: 1910, 47: 1910}, - {473: 4882, 656: 4881}, - {4: 2108, 2108, 7: 2108, 16: 2108, 18: 2108, 20: 2108, 2108, 2108, 2108, 2108, 2108, 47: 2108, 473: 2108, 648: 2108}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 3317, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 656: 4874, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 4875, 943: 4876, 1077: 4883}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 3322, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 656: 4879, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 4880, 943: 4884}, + {7: 1914, 47: 1914}, + {473: 4887, 656: 4886}, + {4: 2112, 2112, 7: 2112, 16: 2112, 18: 2112, 20: 2112, 2112, 2112, 2112, 2112, 2112, 47: 2112, 473: 2112, 648: 2112}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 3322, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 656: 4879, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 4880, 943: 4881, 1077: 4888}, // 2375 - {7: 4878, 47: 4884}, - {4: 2107, 2107, 7: 2107, 16: 2107, 18: 2107, 20: 2107, 2107, 2107, 2107, 2107, 2107, 47: 2107, 473: 2107, 648: 2107}, - {4: 4206, 4889, 7: 2127, 16: 4164, 18: 4214, 20: 4207, 4210, 4209, 4212, 4213, 4215, 47: 2127, 473: 4887, 648: 4211, 779: 4216, 811: 4888, 1308: 4886}, - {7: 2128, 47: 2128}, - {100: 4892, 1139: 4891, 1307: 4890}, + {7: 4883, 47: 4889}, + {4: 2111, 2111, 7: 2111, 16: 2111, 18: 2111, 20: 2111, 2111, 2111, 2111, 2111, 2111, 47: 2111, 473: 2111, 648: 2111}, + {4: 4211, 4894, 7: 2131, 16: 4169, 18: 4219, 20: 4212, 4215, 4214, 4217, 4218, 4220, 47: 2131, 473: 4892, 648: 4216, 779: 4221, 811: 4893, 1309: 4891}, + {7: 2132, 47: 2132}, + {100: 4897, 1139: 4896, 1308: 4895}, // 2380 - {2121, 2121, 4: 2121, 2121, 7: 2121, 16: 2121, 18: 2121, 20: 2121, 2121, 2121, 2121, 2121, 2121, 47: 2121, 473: 2121, 648: 2121}, - {20: 4345}, - {7: 4896, 47: 4895}, - {7: 2125, 47: 2125}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 4893, 2731, 2732, 2730}, + {2125, 2125, 4: 2125, 2125, 7: 2125, 16: 2125, 18: 2125, 20: 2125, 2125, 2125, 2125, 2125, 2125, 47: 2125, 473: 2125, 648: 2125}, + {20: 4350}, + {7: 4901, 47: 4900}, + {7: 2129, 47: 2129}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 4898, 2736, 2737, 2735}, // 2385 - {4: 2122, 2122, 7: 2122, 16: 2122, 18: 2122, 20: 2122, 2122, 2122, 2122, 2122, 2122, 47: 2122, 648: 2122, 949: 4894}, - {4: 4206, 4889, 7: 2123, 16: 4164, 18: 4214, 20: 4207, 4210, 4209, 4212, 4213, 4215, 47: 2123, 648: 4211, 779: 4216, 811: 4888}, - {7: 2126, 47: 2126}, - {100: 4892, 1139: 4897}, - {7: 2124, 47: 2124}, + {4: 2126, 2126, 7: 2126, 16: 2126, 18: 2126, 20: 2126, 2126, 2126, 2126, 2126, 2126, 47: 2126, 648: 2126, 949: 4899}, + {4: 4211, 4894, 7: 2127, 16: 4169, 18: 4219, 20: 4212, 4215, 4214, 4217, 4218, 4220, 47: 2127, 648: 4216, 779: 4221, 811: 4893}, + {7: 2130, 47: 2130}, + {100: 4897, 1139: 4902}, + {7: 2128, 47: 2128}, // 2390 - {2131, 2131, 2131, 2131, 7: 2131, 472: 2131, 2131, 2131, 478: 2131, 490: 2131, 2131, 501: 2131, 507: 2131, 569: 2131, 645: 2131}, - {490: 4863, 950: 4900}, - {7: 2129, 47: 2129}, - {2463, 2463, 2463, 2463, 7: 2463, 490: 2463}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 473: 4904, 663: 4111, 2731, 2732, 2730, 742: 4420, 846: 4903}, + {2135, 2135, 2135, 2135, 7: 2135, 472: 2135, 2135, 2135, 478: 2135, 490: 2135, 2135, 501: 2135, 507: 2135, 569: 2135, 645: 2135}, + {490: 4868, 950: 4905}, + {7: 2133, 47: 2133}, + {2467, 2467, 2467, 2467, 7: 2467, 490: 2467}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 473: 4909, 663: 4116, 2736, 2737, 2735, 743: 4425, 846: 4908}, // 2395 - {2391, 2391, 2391, 2391, 7: 2391, 4689, 4690, 490: 2391, 927: 4912}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 573: 2382, 582: 2382, 586: 2382, 638: 2382, 642: 4553, 648: 2382, 663: 4111, 2731, 2732, 2730, 674: 2382, 2382, 742: 4420, 831: 4774, 846: 4906, 901: 4907, 966: 4908, 1142: 4905}, - {7: 4910, 47: 4909}, + {2395, 2395, 2395, 2395, 7: 2395, 4694, 4695, 490: 2395, 927: 4917}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 573: 2386, 582: 2386, 586: 2386, 638: 2386, 642: 4558, 648: 2386, 663: 4116, 2736, 2737, 2735, 674: 2386, 2386, 743: 4425, 831: 4779, 846: 4911, 901: 4912, 966: 4913, 1142: 4910}, + {7: 4915, 47: 4914}, {7: 437, 47: 437}, {7: 436, 47: 436}, // 2400 {7: 435, 47: 435}, - {2466, 2466, 2466, 2466, 7: 2466, 490: 2466}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 573: 2382, 582: 2382, 586: 2382, 638: 2382, 642: 4553, 648: 2382, 663: 4111, 2731, 2732, 2730, 674: 2382, 2382, 742: 4420, 831: 4774, 846: 4906, 901: 4907, 966: 4911}, + {2470, 2470, 2470, 2470, 7: 2470, 490: 2470}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 573: 2386, 582: 2386, 586: 2386, 638: 2386, 642: 4558, 648: 2386, 663: 4116, 2736, 2737, 2735, 674: 2386, 2386, 743: 4425, 831: 4779, 846: 4911, 901: 4912, 966: 4916}, {7: 434, 47: 434}, - {2467, 2467, 2467, 2467, 7: 2467, 490: 2467}, + {2471, 2471, 2471, 2471, 7: 2471, 490: 2471}, // 2405 - {14: 3804, 506: 3805, 646: 3803, 772: 4914}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 475: 3458, 479: 4916, 543: 3729, 663: 3459, 2731, 2732, 2730, 737: 3728, 806: 4915}, - {265, 265, 265, 265, 7: 265, 482: 4918, 490: 265, 1087: 4920}, - {265, 265, 265, 265, 7: 265, 482: 4918, 490: 265, 1087: 4917}, - {2468, 2468, 2468, 2468, 7: 2468, 490: 2468}, + {14: 3809, 506: 3810, 646: 3808, 772: 4919}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 475: 3463, 479: 4921, 543: 3734, 663: 3464, 2736, 2737, 2735, 737: 3733, 806: 4920}, + {265, 265, 265, 265, 7: 265, 482: 4923, 490: 265, 1087: 4925}, + {265, 265, 265, 265, 7: 265, 482: 4923, 490: 265, 1087: 4922}, + {2472, 2472, 2472, 2472, 7: 2472, 490: 2472}, // 2410 - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 475: 3458, 543: 3457, 663: 3459, 2731, 2732, 2730, 737: 3456, 870: 4919}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 475: 3463, 543: 3462, 663: 3464, 2736, 2737, 2735, 737: 3461, 870: 4924}, {264, 264, 264, 264, 7: 264, 490: 264}, - {2469, 2469, 2469, 2469, 7: 2469, 490: 2469}, - {181: 4923, 213: 4922}, - {508: 2705, 732: 2704, 743: 4926}, + {2473, 2473, 2473, 2473, 7: 2473, 490: 2473}, + {181: 4928, 213: 4927}, + {508: 2710, 732: 2709, 742: 4931}, // 2415 - {338: 4925, 362: 4924}, - {2471, 2471, 2471, 2471, 7: 2471, 490: 2471}, - {2470, 2470, 2470, 2470, 7: 2470, 490: 2470}, - {2475, 2475, 2475, 2475, 7: 2475, 178: 4927, 490: 2475, 1075: 4928}, - {262: 4929}, + {338: 4930, 362: 4929}, + {2475, 2475, 2475, 2475, 7: 2475, 490: 2475}, + {2474, 2474, 2474, 2474, 7: 2474, 490: 2474}, + {2479, 2479, 2479, 2479, 7: 2479, 178: 4932, 490: 2479, 1075: 4933}, + {262: 4934}, // 2420 - {2472, 2472, 2472, 2472, 7: 2472, 490: 2472}, - {475: 4931, 1304: 4930}, - {2474, 2474, 2474, 2474, 7: 4932, 14: 2474, 16: 2474, 19: 2474, 479: 2474, 482: 2474, 490: 2474, 504: 2474, 506: 2474, 646: 2474}, + {2476, 2476, 2476, 2476, 7: 2476, 490: 2476}, + {475: 4936, 1305: 4935}, + {2478, 2478, 2478, 2478, 7: 4937, 14: 2478, 16: 2478, 19: 2478, 479: 2478, 482: 2478, 490: 2478, 504: 2478, 506: 2478, 646: 2478}, {263, 263, 263, 263, 7: 263, 14: 263, 16: 263, 19: 263, 479: 263, 482: 263, 490: 263, 504: 263, 506: 263, 646: 263}, - {475: 4933}, + {475: 4938}, // 2425 {262, 262, 262, 262, 7: 262, 14: 262, 16: 262, 19: 262, 479: 262, 482: 262, 490: 262, 504: 262, 506: 262, 646: 262}, {6: 396, 27: 396}, {390, 390, 390, 390, 390, 390, 390, 390, 13: 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 472: 390, 390, 390, 478: 390, 390, 390, 482: 390, 490: 390, 390, 501: 390, 503: 390, 506: 390, 390, 569: 390, 645: 390, 390, 648: 390}, - {4: 4206, 4208, 397, 13: 4225, 2156, 4223, 4164, 4227, 4214, 4243, 4207, 4210, 4209, 4212, 4213, 4215, 4222, 397, 4233, 4234, 4220, 4221, 4226, 4228, 4240, 4239, 4245, 4241, 4238, 4231, 4236, 4237, 4230, 4232, 4235, 4224, 479: 4205, 4242, 482: 2156, 503: 4934, 506: 2156, 646: 2156, 648: 4211, 779: 4216, 791: 4218, 811: 4217, 833: 4219, 837: 4229, 841: 4937}, + {4: 4211, 4213, 397, 13: 4230, 2160, 4228, 4169, 4232, 4219, 4248, 4212, 4215, 4214, 4217, 4218, 4220, 4227, 397, 4238, 4239, 4225, 4226, 4231, 4233, 4245, 4244, 4250, 4246, 4243, 4236, 4241, 4242, 4235, 4237, 4240, 4229, 479: 4210, 4247, 482: 2160, 503: 4939, 506: 2160, 646: 2160, 648: 4216, 779: 4221, 791: 4223, 811: 4222, 833: 4224, 837: 4234, 841: 4942}, {389, 389, 389, 389, 389, 389, 389, 389, 13: 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 472: 389, 389, 389, 478: 389, 389, 389, 482: 389, 490: 389, 389, 501: 389, 503: 389, 506: 389, 389, 569: 389, 645: 389, 389, 648: 389}, // 2430 - {475: 4940, 479: 4939}, - {2482, 2482, 2482, 2482, 7: 2482, 490: 2482}, - {2481, 2481, 2481, 2481, 7: 2481, 490: 2481}, - {475: 4943, 479: 4942}, - {2484, 2484, 2484, 2484, 7: 2484, 490: 2484}, + {475: 4945, 479: 4944}, + {2486, 2486, 2486, 2486, 7: 2486, 490: 2486}, + {2485, 2485, 2485, 2485, 7: 2485, 490: 2485}, + {475: 4948, 479: 4947}, + {2488, 2488, 2488, 2488, 7: 2488, 490: 2488}, // 2435 - {2483, 2483, 2483, 2483, 7: 2483, 490: 2483}, - {2: 2037, 2037, 2037, 2037, 2037, 8: 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 48: 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 475: 2037, 479: 2037, 498: 4246, 504: 4946, 735: 4945}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 475: 4948, 479: 4950, 663: 4951, 2731, 2732, 2730, 884: 4949}, - {479: 4947}, - {2485, 2485, 2485, 2485, 2485, 2485, 2485, 2485, 13: 2485, 2485, 2485, 2485, 2485, 2485, 2485, 2485, 2485, 2485, 2485, 2485, 2485, 2485, 2485, 2485, 2485, 2485, 2485, 2485, 2485, 2485, 2485, 2485, 2485, 2485, 2485, 2485, 2485, 2485, 2485, 2485, 2485, 47: 2485, 472: 2485, 2485, 2485, 478: 2485, 2485, 2485, 482: 2485, 490: 2485, 2485, 501: 2485, 503: 2485, 2485, 506: 2485, 2485, 569: 2485, 645: 2485, 2485, 648: 2485}, + {2487, 2487, 2487, 2487, 7: 2487, 490: 2487}, + {2: 2041, 2041, 2041, 2041, 2041, 8: 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 48: 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 475: 2041, 479: 2041, 498: 4251, 504: 4951, 735: 4950}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 475: 4953, 479: 4955, 663: 4956, 2736, 2737, 2735, 884: 4954}, + {479: 4952}, + {2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 13: 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 47: 2489, 472: 2489, 2489, 2489, 478: 2489, 2489, 2489, 482: 2489, 490: 2489, 2489, 501: 2489, 503: 2489, 2489, 506: 2489, 2489, 569: 2489, 645: 2489, 2489, 648: 2489}, // 2440 - {2488, 2488, 2488, 2488, 2488, 2488, 2488, 2488, 13: 2488, 2488, 2488, 2488, 2488, 2488, 2488, 2488, 2488, 2488, 2488, 2488, 2488, 2488, 2488, 2488, 2488, 2488, 2488, 2488, 2488, 2488, 2488, 2488, 2488, 2488, 2488, 2488, 2488, 2488, 2488, 2488, 2488, 47: 2488, 472: 2488, 2488, 2488, 478: 2488, 2488, 2488, 482: 2488, 490: 2488, 2488, 501: 2488, 503: 2488, 2488, 506: 2488, 2488, 569: 2488, 645: 2488, 2488, 648: 2488}, - {2487, 2487, 2487, 2487, 2487, 2487, 2487, 2487, 13: 2487, 2487, 2487, 2487, 2487, 2487, 2487, 2487, 2487, 2487, 2487, 2487, 2487, 2487, 2487, 2487, 2487, 2487, 2487, 2487, 2487, 2487, 2487, 2487, 2487, 2487, 2487, 2487, 2487, 2487, 2487, 2487, 2487, 47: 2487, 472: 2487, 2487, 2487, 478: 2487, 2487, 2487, 482: 2487, 490: 2487, 2487, 501: 2487, 503: 2487, 2487, 506: 2487, 2487, 569: 2487, 645: 2487, 2487, 648: 2487}, - {2486, 2486, 2486, 2486, 2486, 2486, 2486, 2486, 13: 2486, 2486, 2486, 2486, 2486, 2486, 2486, 2486, 2486, 2486, 2486, 2486, 2486, 2486, 2486, 2486, 2486, 2486, 2486, 2486, 2486, 2486, 2486, 2486, 2486, 2486, 2486, 2486, 2486, 2486, 2486, 2486, 2486, 47: 2486, 472: 2486, 2486, 2486, 478: 2486, 2486, 2486, 482: 2486, 490: 2486, 2486, 501: 2486, 503: 2486, 2486, 506: 2486, 2486, 569: 2486, 645: 2486, 2486, 648: 2486}, - {2172, 2172, 2172, 2172, 2172, 2172, 2172, 2172, 13: 2172, 2172, 2172, 2172, 2172, 2172, 2172, 2172, 2172, 2172, 2172, 2172, 2172, 2172, 2172, 2172, 2172, 2172, 2172, 2172, 2172, 2172, 2172, 2172, 2172, 2172, 2172, 2172, 2172, 2172, 2172, 2172, 2172, 47: 2172, 86: 2172, 88: 2172, 2172, 2172, 2172, 2172, 2172, 2172, 2172, 2172, 2172, 472: 2172, 2172, 2172, 478: 2172, 2172, 2172, 482: 2172, 490: 2172, 2172, 501: 2172, 503: 2172, 2172, 506: 2172, 2172, 569: 2172, 645: 2172, 2172, 648: 2172}, - {213: 4953}, + {2492, 2492, 2492, 2492, 2492, 2492, 2492, 2492, 13: 2492, 2492, 2492, 2492, 2492, 2492, 2492, 2492, 2492, 2492, 2492, 2492, 2492, 2492, 2492, 2492, 2492, 2492, 2492, 2492, 2492, 2492, 2492, 2492, 2492, 2492, 2492, 2492, 2492, 2492, 2492, 2492, 2492, 47: 2492, 472: 2492, 2492, 2492, 478: 2492, 2492, 2492, 482: 2492, 490: 2492, 2492, 501: 2492, 503: 2492, 2492, 506: 2492, 2492, 569: 2492, 645: 2492, 2492, 648: 2492}, + {2491, 2491, 2491, 2491, 2491, 2491, 2491, 2491, 13: 2491, 2491, 2491, 2491, 2491, 2491, 2491, 2491, 2491, 2491, 2491, 2491, 2491, 2491, 2491, 2491, 2491, 2491, 2491, 2491, 2491, 2491, 2491, 2491, 2491, 2491, 2491, 2491, 2491, 2491, 2491, 2491, 2491, 47: 2491, 472: 2491, 2491, 2491, 478: 2491, 2491, 2491, 482: 2491, 490: 2491, 2491, 501: 2491, 503: 2491, 2491, 506: 2491, 2491, 569: 2491, 645: 2491, 2491, 648: 2491}, + {2490, 2490, 2490, 2490, 2490, 2490, 2490, 2490, 13: 2490, 2490, 2490, 2490, 2490, 2490, 2490, 2490, 2490, 2490, 2490, 2490, 2490, 2490, 2490, 2490, 2490, 2490, 2490, 2490, 2490, 2490, 2490, 2490, 2490, 2490, 2490, 2490, 2490, 2490, 2490, 2490, 2490, 47: 2490, 472: 2490, 2490, 2490, 478: 2490, 2490, 2490, 482: 2490, 490: 2490, 2490, 501: 2490, 503: 2490, 2490, 506: 2490, 2490, 569: 2490, 645: 2490, 2490, 648: 2490}, + {2176, 2176, 2176, 2176, 2176, 2176, 2176, 2176, 13: 2176, 2176, 2176, 2176, 2176, 2176, 2176, 2176, 2176, 2176, 2176, 2176, 2176, 2176, 2176, 2176, 2176, 2176, 2176, 2176, 2176, 2176, 2176, 2176, 2176, 2176, 2176, 2176, 2176, 2176, 2176, 2176, 2176, 47: 2176, 86: 2176, 88: 2176, 2176, 2176, 2176, 2176, 2176, 2176, 2176, 2176, 2176, 472: 2176, 2176, 2176, 478: 2176, 2176, 2176, 482: 2176, 490: 2176, 2176, 501: 2176, 503: 2176, 2176, 506: 2176, 2176, 569: 2176, 645: 2176, 2176, 648: 2176}, + {213: 4958}, // 2445 - {2503, 2503}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 4712, 2731, 2732, 2730, 788: 4955}, - {2343, 2343, 7: 4713, 474: 4958, 648: 4957, 803: 4956}, - {2505, 2505}, - {899, 899, 2971, 2816, 2852, 2973, 2743, 899, 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 474: 899, 586: 4975, 663: 4974, 2731, 2732, 2730, 855: 4973}, + {2507, 2507}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 4717, 2736, 2737, 2735, 788: 4960}, + {2347, 2347, 7: 4718, 474: 4963, 648: 4962, 803: 4961}, + {2510, 2510}, + {903, 903, 2976, 2821, 2857, 2978, 2748, 903, 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 474: 903, 586: 4980, 663: 4979, 2736, 2737, 2735, 855: 4978}, // 2450 - {508: 4963, 574: 3393, 3392, 732: 4961, 818: 4962, 989: 4960, 1169: 4959}, - {2342, 2342, 7: 4971}, - {2341, 2341, 7: 2341}, - {227: 4965, 231: 4967, 278: 4968, 297: 4966}, - {189: 4964}, + {508: 4968, 574: 3398, 3397, 732: 4966, 818: 4967, 989: 4965, 1170: 4964}, + {2346, 2346, 7: 4976}, + {2345, 2345, 7: 2345}, + {227: 4970, 231: 4972, 278: 4973, 297: 4971}, + {189: 4969}, // 2455 - {189: 2202, 227: 1963, 231: 1963, 278: 1963, 297: 1963}, - {2334, 2334, 7: 2334}, - {2339, 2339, 7: 2339}, + {189: 2206, 227: 1967, 231: 1967, 278: 1967, 297: 1967}, {2338, 2338, 7: 2338}, - {327: 4969, 406: 4970}, + {2343, 2343, 7: 2343}, + {2342, 2342, 7: 2342}, + {327: 4974, 406: 4975}, // 2460 - {2335, 2335, 7: 2335}, - {2337, 2337, 7: 2337}, - {2336, 2336, 7: 2336}, - {508: 4963, 574: 3393, 3392, 732: 4961, 818: 4962, 989: 4972}, + {2339, 2339, 7: 2339}, + {2341, 2341, 7: 2341}, {2340, 2340, 7: 2340}, + {508: 4968, 574: 3398, 3397, 732: 4966, 818: 4967, 989: 4977}, + {2344, 2344, 7: 2344}, // 2465 - {2343, 2343, 7: 4977, 474: 4958, 803: 4976}, - {898, 898, 7: 898, 47: 898, 474: 898}, - {896, 896, 7: 896, 47: 896, 474: 896}, - {2504, 2504}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 586: 4979, 663: 4978, 2731, 2732, 2730}, + {2347, 2347, 7: 4982, 474: 4963, 803: 4981}, + {902, 902, 7: 902, 47: 902, 474: 902}, + {900, 900, 7: 900, 47: 900, 474: 900}, + {2509, 2509}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 586: 4984, 663: 4983, 2736, 2737, 2735}, // 2470 - {897, 897, 7: 897, 47: 897, 474: 897}, - {895, 895, 7: 895, 47: 895, 474: 895}, - {2506, 2506}, - {2480, 2480}, - {369: 5047}, + {901, 901, 7: 901, 47: 901, 474: 901}, + {899, 899, 7: 899, 47: 899, 474: 899}, + {2511, 2511}, + {2484, 2484}, + {369: 5052}, // 2475 - {490: 5039}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 659: 4986, 663: 4985, 2731, 2732, 2730}, - {2122, 2122, 4: 2122, 2122, 16: 2122, 18: 2122, 20: 2122, 2122, 2122, 2122, 2122, 2122, 196: 4165, 648: 2122, 924: 5037, 949: 5038}, - {141: 2140, 354: 4991, 394: 4992, 527: 4990, 573: 2140, 1070: 4993, 4988, 1140: 4989, 1268: 4987}, - {2134, 2134, 100: 2134, 105: 5027, 472: 2134, 2134, 2134, 478: 2134, 491: 2134, 501: 2134, 507: 2134, 569: 2134, 645: 2134, 1269: 5026}, + {490: 5044}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 659: 4991, 663: 4990, 2736, 2737, 2735}, + {2126, 2126, 4: 2126, 2126, 16: 2126, 18: 2126, 20: 2126, 2126, 2126, 2126, 2126, 2126, 196: 4170, 648: 2126, 924: 5042, 949: 5043}, + {141: 2144, 354: 4996, 394: 4997, 527: 4995, 573: 2144, 1070: 4998, 4993, 1140: 4994, 1269: 4992}, + {2138, 2138, 100: 2138, 105: 5032, 472: 2138, 2138, 2138, 478: 2138, 491: 2138, 501: 2138, 507: 2138, 569: 2138, 645: 2138, 1270: 5031}, // 2480 - {141: 5014, 573: 5013}, - {2148, 2148, 100: 2148, 105: 2148, 472: 2148, 2148, 2148, 478: 2148, 491: 2148, 501: 2148, 507: 2148, 569: 2148, 645: 2148}, - {98: 3912, 107: 3911, 473: 5006, 832: 5007}, - {98: 3912, 107: 3911, 473: 4999, 832: 5000}, - {2141, 2141, 100: 2141, 105: 2141, 472: 2141, 2141, 2141, 478: 2141, 491: 2141, 493: 4995, 501: 2141, 507: 2141, 569: 2141, 581: 4994, 645: 2141}, + {141: 5019, 573: 5018}, + {2152, 2152, 100: 2152, 105: 2152, 472: 2152, 2152, 2152, 478: 2152, 491: 2152, 501: 2152, 507: 2152, 569: 2152, 645: 2152}, + {98: 3917, 107: 3916, 473: 5011, 832: 5012}, + {98: 3917, 107: 3916, 473: 5004, 832: 5005}, + {2145, 2145, 100: 2145, 105: 2145, 472: 2145, 2145, 2145, 478: 2145, 491: 2145, 493: 5000, 501: 2145, 507: 2145, 569: 2145, 581: 4999, 645: 2145}, // 2485 - {141: 2139, 573: 2139}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 2724, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 4997}, - {508: 2705, 732: 2704, 743: 4996}, - {2142, 2142, 100: 2142, 105: 2142, 472: 2142, 2142, 2142, 478: 2142, 491: 2142, 501: 2142, 507: 2142, 569: 2142, 645: 2142}, - {101: 3432, 104: 3428, 108: 3425, 3440, 3427, 3424, 3426, 3430, 3431, 3436, 3435, 3434, 3438, 3439, 3433, 3437, 123: 3429, 505: 3313, 509: 3311, 3312, 3310, 3308, 531: 3422, 3419, 3421, 3420, 3416, 3418, 3417, 3414, 3415, 3413, 3423, 733: 3309, 3307, 802: 3412, 821: 4998}, + {141: 2143, 573: 2143}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 2729, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 5002}, + {508: 2710, 732: 2709, 742: 5001}, + {2146, 2146, 100: 2146, 105: 2146, 472: 2146, 2146, 2146, 478: 2146, 491: 2146, 501: 2146, 507: 2146, 569: 2146, 645: 2146}, + {101: 3437, 104: 3433, 108: 3430, 3445, 3432, 3429, 3431, 3435, 3436, 3441, 3440, 3439, 3443, 3444, 3438, 3442, 123: 3434, 505: 3318, 509: 3316, 3317, 3315, 3313, 531: 3427, 3424, 3426, 3425, 3421, 3423, 3422, 3419, 3420, 3418, 3428, 733: 3314, 3312, 802: 3417, 821: 5003}, // 2490 - {2143, 2143, 100: 2143, 105: 2143, 472: 2143, 2143, 2143, 478: 2143, 491: 2143, 501: 2143, 507: 2143, 569: 2143, 645: 2143}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 3317, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 5004}, - {473: 5001}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 4111, 2731, 2732, 2730, 742: 4112, 807: 5002}, - {7: 4114, 47: 5003}, + {2147, 2147, 100: 2147, 105: 2147, 472: 2147, 2147, 2147, 478: 2147, 491: 2147, 501: 2147, 507: 2147, 569: 2147, 645: 2147}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 3322, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 5009}, + {473: 5006}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 4116, 2736, 2737, 2735, 743: 4117, 807: 5007}, + {7: 4119, 47: 5008}, // 2495 - {2144, 2144, 100: 2144, 105: 2144, 472: 2144, 2144, 2144, 478: 2144, 491: 2144, 501: 2144, 507: 2144, 569: 2144, 645: 2144}, - {47: 5005, 485: 3654, 3655, 3660, 523: 3656, 556: 3657, 3658, 3651, 3661, 3650, 3659, 3652, 3653}, - {2145, 2145, 100: 2145, 105: 2145, 472: 2145, 2145, 2145, 478: 2145, 491: 2145, 501: 2145, 507: 2145, 569: 2145, 645: 2145}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 3317, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 5011}, - {473: 5008}, + {2148, 2148, 100: 2148, 105: 2148, 472: 2148, 2148, 2148, 478: 2148, 491: 2148, 501: 2148, 507: 2148, 569: 2148, 645: 2148}, + {47: 5010, 485: 3659, 3660, 3665, 523: 3661, 556: 3662, 3663, 3656, 3666, 3655, 3664, 3657, 3658}, + {2149, 2149, 100: 2149, 105: 2149, 472: 2149, 2149, 2149, 478: 2149, 491: 2149, 501: 2149, 507: 2149, 569: 2149, 645: 2149}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 3322, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 5016}, + {473: 5013}, // 2500 - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 4111, 2731, 2732, 2730, 742: 4112, 807: 5009}, - {7: 4114, 47: 5010}, - {2146, 2146, 100: 2146, 105: 2146, 472: 2146, 2146, 2146, 478: 2146, 491: 2146, 501: 2146, 507: 2146, 569: 2146, 645: 2146}, - {47: 5012, 485: 3654, 3655, 3660, 523: 3656, 556: 3657, 3658, 3651, 3661, 3650, 3659, 3652, 3653}, - {2147, 2147, 100: 2147, 105: 2147, 472: 2147, 2147, 2147, 478: 2147, 491: 2147, 501: 2147, 507: 2147, 569: 2147, 645: 2147}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 4116, 2736, 2737, 2735, 743: 4117, 807: 5014}, + {7: 4119, 47: 5015}, + {2150, 2150, 100: 2150, 105: 2150, 472: 2150, 2150, 2150, 478: 2150, 491: 2150, 501: 2150, 507: 2150, 569: 2150, 645: 2150}, + {47: 5017, 485: 3659, 3660, 3665, 523: 3661, 556: 3662, 3663, 3656, 3666, 3655, 3664, 3657, 3658}, + {2151, 2151, 100: 2151, 105: 2151, 472: 2151, 2151, 2151, 478: 2151, 491: 2151, 501: 2151, 507: 2151, 569: 2151, 645: 2151}, // 2505 - {81: 5019, 473: 2150, 1267: 5018}, - {473: 5015}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 3317, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 5016}, - {47: 5017, 485: 3654, 3655, 3660, 523: 3656, 556: 3657, 3658, 3651, 3661, 3650, 3659, 3652, 3653}, - {2151, 2151, 100: 2151, 105: 2151, 215: 2151, 472: 2151, 2151, 2151, 478: 2151, 491: 2151, 501: 2151, 507: 2151, 569: 2151, 645: 2151}, + {81: 5024, 473: 2154, 1268: 5023}, + {473: 5020}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 3322, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 5021}, + {47: 5022, 485: 3659, 3660, 3665, 523: 3661, 556: 3662, 3663, 3656, 3666, 3655, 3664, 3657, 3658}, + {2155, 2155, 100: 2155, 105: 2155, 215: 2155, 472: 2155, 2155, 2155, 478: 2155, 491: 2155, 501: 2155, 507: 2155, 569: 2155, 645: 2155}, // 2510 - {473: 5022}, - {498: 5020}, - {508: 2705, 732: 5021}, - {473: 2149}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 2309, 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 4111, 2731, 2732, 2730, 742: 4112, 807: 5023, 1000: 5024}, + {473: 5027}, + {498: 5025}, + {508: 2710, 732: 5026}, + {473: 2153}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 2313, 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 4116, 2736, 2737, 2735, 743: 4117, 807: 5028, 1000: 5029}, // 2515 - {7: 4114, 47: 2308}, - {47: 5025}, - {2152, 2152, 100: 2152, 105: 2152, 215: 2152, 472: 2152, 2152, 2152, 478: 2152, 491: 2152, 501: 2152, 507: 2152, 569: 2152, 645: 2152}, - {2138, 2138, 100: 5030, 472: 2138, 2138, 2138, 478: 2138, 491: 2138, 501: 2138, 507: 2138, 569: 2138, 645: 2138, 1310: 5029}, - {508: 2705, 732: 2704, 743: 5028}, + {7: 4119, 47: 2312}, + {47: 5030}, + {2156, 2156, 100: 2156, 105: 2156, 215: 2156, 472: 2156, 2156, 2156, 478: 2156, 491: 2156, 501: 2156, 507: 2156, 569: 2156, 645: 2156}, + {2142, 2142, 100: 5035, 472: 2142, 2142, 2142, 478: 2142, 491: 2142, 501: 2142, 507: 2142, 569: 2142, 645: 2142, 1311: 5034}, + {508: 2710, 732: 2709, 742: 5033}, // 2520 - {2133, 2133, 100: 2133, 472: 2133, 2133, 2133, 478: 2133, 491: 2133, 501: 2133, 507: 2133, 569: 2133, 645: 2133}, - {2132, 2132, 472: 2132, 4860, 2132, 478: 2132, 491: 2132, 501: 2132, 507: 2132, 569: 2132, 645: 2132, 1096: 5036}, - {659: 5031}, - {141: 2140, 573: 2140, 1070: 4993, 4988, 1140: 5032}, - {2136, 2136, 215: 5034, 472: 2136, 2136, 2136, 478: 2136, 491: 2136, 501: 2136, 507: 2136, 569: 2136, 645: 2136, 1309: 5033}, + {2137, 2137, 100: 2137, 472: 2137, 2137, 2137, 478: 2137, 491: 2137, 501: 2137, 507: 2137, 569: 2137, 645: 2137}, + {2136, 2136, 472: 2136, 4865, 2136, 478: 2136, 491: 2136, 501: 2136, 507: 2136, 569: 2136, 645: 2136, 1096: 5041}, + {659: 5036}, + {141: 2144, 573: 2144, 1070: 4998, 4993, 1140: 5037}, + {2140, 2140, 215: 5039, 472: 2140, 2140, 2140, 478: 2140, 491: 2140, 501: 2140, 507: 2140, 569: 2140, 645: 2140, 1310: 5038}, // 2525 - {2137, 2137, 472: 2137, 2137, 2137, 478: 2137, 491: 2137, 501: 2137, 507: 2137, 569: 2137, 645: 2137}, - {508: 2705, 732: 2704, 743: 5035}, - {2135, 2135, 472: 2135, 2135, 2135, 478: 2135, 491: 2135, 501: 2135, 507: 2135, 569: 2135, 645: 2135}, - {2153, 2153, 472: 2153, 2153, 2153, 478: 2153, 491: 2153, 501: 2153, 507: 2153, 569: 2153, 645: 2153}, - {2477, 2477}, + {2141, 2141, 472: 2141, 2141, 2141, 478: 2141, 491: 2141, 501: 2141, 507: 2141, 569: 2141, 645: 2141}, + {508: 2710, 732: 2709, 742: 5040}, + {2139, 2139, 472: 2139, 2139, 2139, 478: 2139, 491: 2139, 501: 2139, 507: 2139, 569: 2139, 645: 2139}, + {2157, 2157, 472: 2157, 2157, 2157, 478: 2157, 491: 2157, 501: 2157, 507: 2157, 569: 2157, 645: 2157}, + {2481, 2481}, // 2530 - {2476, 2476, 4: 4206, 4889, 16: 4164, 18: 4214, 20: 4207, 4210, 4209, 4212, 4213, 4215, 648: 4211, 779: 4216, 811: 4888}, - {564, 564, 564, 564, 564, 564, 564, 8: 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 48: 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 4708, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 817: 4707, 835: 5040}, - {2416, 2416, 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 4712, 2731, 2732, 2730, 788: 5042, 1277: 5041}, - {2478, 2478}, - {7: 4713, 495: 5043}, + {2480, 2480, 4: 4211, 4894, 16: 4169, 18: 4219, 20: 4212, 4215, 4214, 4217, 4218, 4220, 648: 4216, 779: 4221, 811: 4893}, + {564, 564, 564, 564, 564, 564, 564, 8: 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 48: 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 4713, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 817: 4712, 835: 5045}, + {2420, 2420, 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 4717, 2736, 2737, 2735, 788: 5047, 1278: 5046}, + {2482, 2482}, + {7: 4718, 495: 5048}, // 2535 - {473: 5044}, - {490: 4863, 950: 4862, 1095: 5045}, - {7: 4899, 47: 5046}, - {2415, 2415}, - {2479, 2479}, + {473: 5049}, + {490: 4868, 950: 4867, 1095: 5050}, + {7: 4904, 47: 5051}, + {2419, 2419}, + {2483, 2483}, // 2540 - {136: 5049, 879: 102, 1074: 5050}, + {136: 5054, 879: 102, 1074: 5055}, {879: 101}, - {879: 5051}, - {475: 5052}, - {17, 17, 179: 17, 356: 5054, 657: 17, 1246: 5053}, + {879: 5056}, + {475: 5057}, + {17, 17, 179: 17, 356: 5059, 657: 17, 1247: 5058}, // 2545 - {15, 15, 179: 5057, 657: 15, 1245: 5056}, - {508: 2705, 732: 5055}, + {15, 15, 179: 5062, 657: 15, 1246: 5061}, + {508: 2710, 732: 5060}, {16, 16, 179: 16, 657: 16}, - {87, 87, 657: 3933, 942: 5064}, - {13, 13, 184: 13, 370: 5059, 657: 13, 1271: 5058}, + {87, 87, 657: 3938, 942: 5069}, + {13, 13, 184: 13, 370: 5064, 657: 13, 1272: 5063}, // 2550 - {11, 11, 184: 5062, 657: 11, 1270: 5061}, - {508: 2705, 732: 5060}, + {11, 11, 184: 5067, 657: 11, 1271: 5066}, + {508: 2710, 732: 5065}, {12, 12, 184: 12, 657: 12}, {14, 14, 657: 14}, - {508: 2705, 732: 5063}, + {508: 2710, 732: 5068}, // 2555 {10, 10, 657: 10}, {18, 18}, {26: 55, 137: 55, 508: 55}, {59, 59}, - {508: 2705, 732: 5070}, + {508: 2710, 732: 5075}, // 2560 - {508: 2705, 732: 5069}, + {508: 2710, 732: 5074}, {57, 57}, {58, 58}, - {493: 5074}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 4111, 2731, 2732, 2730, 742: 5073}, + {493: 5079}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 4116, 2736, 2737, 2735, 743: 5078}, // 2565 {493: 60}, - {508: 2705, 732: 5075}, - {246: 5077, 474: 64, 738: 64, 1200: 5076}, - {474: 2558, 738: 2524, 758: 5080, 765: 2525, 778: 2526, 782: 5081}, - {382: 5078}, + {508: 2710, 732: 5080}, + {246: 5082, 474: 64, 738: 64, 1201: 5081}, + {474: 2563, 738: 2529, 758: 5085, 765: 2530, 778: 2531, 782: 5086}, + {382: 5083}, // 2570 - {137: 5079, 474: 63, 738: 63}, + {137: 5084, 474: 63, 738: 63}, {474: 62, 738: 62}, - {738: 2524, 765: 5082, 778: 5083}, + {738: 2529, 765: 5087, 778: 5088}, {65, 65}, - {2060, 2060}, + {2064, 2064}, // 2575 - {2059, 2059}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 3889, 2731, 2732, 2730, 736: 5088, 1143: 5089, 1312: 5087}, + {2063, 2063}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 3894, 2736, 2737, 2735, 736: 5093, 1143: 5094, 1313: 5092}, {74, 74, 74, 74, 74, 74, 74, 8: 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 48: 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74}, {73, 73, 73, 73, 73, 73, 73, 8: 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 48: 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73}, - {75, 75, 7: 5095}, + {75, 75, 7: 5100}, // 2580 - {670: 5091, 686: 5092, 1241: 5090}, + {670: 5096, 686: 5097, 1242: 5095}, {67, 67, 7: 67}, {72, 72, 7: 72}, - {71, 71, 7: 71, 136: 5094}, - {69, 69, 7: 69, 136: 5093}, + {71, 71, 7: 71, 136: 5099}, + {69, 69, 7: 69, 136: 5098}, // 2585 {68, 68, 7: 68}, {70, 70, 7: 70}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 3889, 2731, 2732, 2730, 736: 5088, 1143: 5096}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 3894, 2736, 2737, 2735, 736: 5093, 1143: 5101}, {66, 66, 7: 66}, {76, 76}, // 2590 - {136: 5049, 879: 102, 1074: 5101}, - {475: 5100}, + {136: 5054, 879: 102, 1074: 5106}, + {475: 5105}, {54, 54}, - {879: 5102}, - {475: 5103}, + {879: 5107}, + {475: 5108}, // 2595 - {491: 5104, 495: 2102, 507: 5105, 1036: 5106}, - {2101, 2101, 472: 2101, 2101, 2101, 478: 2101, 495: 2101, 501: 2101, 569: 2101, 645: 2101}, - {2100, 2100, 472: 2100, 2100, 2100, 478: 2100, 495: 2100, 501: 2100, 569: 2100, 645: 2100}, - {495: 5107}, - {569: 5108}, + {491: 5109, 495: 2106, 507: 5110, 1036: 5111}, + {2105, 2105, 472: 2105, 2105, 2105, 478: 2105, 495: 2105, 501: 2105, 569: 2105, 645: 2105}, + {2104, 2104, 472: 2104, 2104, 2104, 478: 2104, 495: 2104, 501: 2104, 569: 2104, 645: 2104}, + {495: 5112}, + {569: 5113}, // 2600 - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 3889, 2731, 2732, 2730, 736: 5109}, - {104, 104, 98: 104, 107: 104, 473: 104, 491: 104, 504: 104, 646: 5111, 657: 104, 1182: 5110}, - {100, 100, 98: 3912, 107: 3911, 473: 100, 491: 100, 504: 100, 657: 100, 832: 3910, 1047: 5114}, - {504: 5112}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 475: 3458, 543: 3729, 663: 3459, 2731, 2732, 2730, 737: 3728, 806: 5113}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 3894, 2736, 2737, 2735, 736: 5114}, + {104, 104, 98: 104, 107: 104, 473: 104, 491: 104, 504: 104, 646: 5116, 657: 104, 1183: 5115}, + {100, 100, 98: 3917, 107: 3916, 473: 100, 491: 100, 504: 100, 657: 100, 832: 3915, 1047: 5119}, + {504: 5117}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 475: 3463, 543: 3734, 663: 3464, 2736, 2737, 2735, 737: 3733, 806: 5118}, // 2605 {103, 103, 98: 103, 107: 103, 473: 103, 491: 103, 504: 103, 657: 103}, - {87, 87, 473: 87, 491: 87, 504: 87, 657: 3933, 942: 5115}, - {106, 106, 473: 106, 491: 5117, 504: 106, 1223: 5116}, - {2297, 2297, 473: 5120, 504: 2297, 1188: 5121}, - {508: 2705, 732: 5118}, + {87, 87, 473: 87, 491: 87, 504: 87, 657: 3938, 942: 5120}, + {106, 106, 473: 106, 491: 5122, 504: 106, 1224: 5121}, + {2301, 2301, 473: 5125, 504: 2301, 1189: 5126}, + {508: 2710, 732: 5123}, // 2610 - {657: 5119}, + {657: 5124}, {105, 105, 473: 105, 504: 105}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 2303, 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 568: 3317, 663: 4111, 2731, 2732, 2730, 709: 5134, 742: 5133, 1001: 5132, 1186: 5131, 5135}, - {81, 81, 504: 5123, 1240: 5122}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 2307, 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 568: 3322, 663: 4116, 2736, 2737, 2735, 709: 5139, 743: 5138, 1001: 5137, 1187: 5136, 5140}, + {81, 81, 504: 5128, 1241: 5127}, {107, 107}, // 2615 - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 3748, 2731, 2732, 2730, 710: 5126, 1072: 5125, 1239: 5124}, - {80, 80, 7: 5129}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 3753, 2736, 2737, 2735, 710: 5131, 1072: 5130, 1240: 5129}, + {80, 80, 7: 5134}, {78, 78, 7: 78}, - {498: 5127}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 2724, 479: 3871, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 3867, 795: 5128}, + {498: 5132}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 2729, 479: 3876, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 3872, 795: 5133}, // 2620 {77, 77, 7: 77}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 3748, 2731, 2732, 2730, 710: 5126, 1072: 5130}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 3753, 2736, 2737, 2735, 710: 5131, 1072: 5135}, {79, 79, 7: 79}, - {7: 5137, 47: 2302}, - {7: 2301, 47: 2301}, + {7: 5142, 47: 2306}, + {7: 2305, 47: 2305}, // 2625 - {7: 2299, 47: 2299}, - {7: 2298, 47: 2298}, - {47: 5136}, - {2296, 2296, 504: 2296}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 568: 3317, 663: 4111, 2731, 2732, 2730, 709: 5134, 742: 5133, 1001: 5138}, + {7: 2303, 47: 2303}, + {7: 2302, 47: 2302}, + {47: 5141}, + {2300, 2300, 504: 2300}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 568: 3322, 663: 4116, 2736, 2737, 2735, 709: 5139, 743: 5138, 1001: 5143}, // 2630 - {7: 2300, 47: 2300}, - {7: 164, 149: 164, 472: 164, 499: 164, 568: 1822, 649: 164, 662: 1822}, - {7: 129, 472: 129, 129, 499: 129, 568: 1792, 649: 129, 662: 1792}, - {7: 143, 472: 143, 143, 499: 143, 568: 1766, 649: 143, 662: 1766}, - {7: 130, 472: 130, 130, 499: 130, 568: 1763, 649: 130, 662: 1763}, + {7: 2304, 47: 2304}, + {7: 164, 149: 164, 472: 164, 499: 164, 568: 1826, 649: 164, 662: 1826}, + {7: 129, 472: 129, 129, 499: 129, 568: 1796, 649: 129, 662: 1796}, + {7: 143, 472: 143, 143, 499: 143, 568: 1770, 649: 143, 662: 1770}, + {7: 130, 472: 130, 130, 499: 130, 568: 1767, 649: 130, 662: 1767}, // 2635 - {7: 119, 472: 119, 119, 499: 119, 568: 1728, 649: 119, 662: 1728}, - {7: 139, 472: 139, 139, 499: 139, 568: 1651, 649: 139, 662: 1651}, - {7: 144, 472: 144, 144, 499: 144, 568: 1644, 649: 144, 662: 1644}, - {319: 5248, 387: 5247, 568: 1625, 662: 1625}, - {7: 131, 472: 131, 131, 499: 131, 568: 1622, 649: 131, 662: 1622}, + {7: 119, 472: 119, 119, 499: 119, 568: 1732, 649: 119, 662: 1732}, + {7: 139, 472: 139, 139, 499: 139, 568: 1655, 649: 139, 662: 1655}, + {7: 144, 472: 144, 144, 499: 144, 568: 1648, 649: 144, 662: 1648}, + {319: 5253, 387: 5252, 568: 1629, 662: 1629}, + {7: 131, 472: 131, 131, 499: 131, 568: 1626, 649: 131, 662: 1626}, // 2640 - {7: 120, 472: 120, 120, 499: 120, 568: 1619, 649: 120, 662: 1619}, - {568: 5245, 662: 5244}, - {7: 725, 472: 725, 499: 725, 568: 256, 649: 725, 662: 256}, - {7: 724, 472: 724, 499: 724, 649: 724}, - {7: 160, 149: 5243, 472: 160, 499: 160, 649: 160}, + {7: 120, 472: 120, 120, 499: 120, 568: 1623, 649: 120, 662: 1623}, + {568: 5250, 662: 5249}, + {7: 729, 472: 729, 499: 729, 568: 256, 649: 729, 662: 256}, + {7: 728, 472: 728, 499: 728, 649: 728}, + {7: 160, 149: 5248, 472: 160, 499: 160, 649: 160}, // 2645 {7: 162, 472: 162, 499: 162, 649: 162}, {7: 161, 472: 161, 499: 161, 649: 161}, - {499: 5241}, - {7: 140, 472: 140, 140, 495: 5239, 499: 140, 649: 140}, + {499: 5246}, + {7: 140, 472: 140, 140, 495: 5244, 499: 140, 649: 140}, {7: 157, 472: 157, 499: 157, 649: 157}, // 2650 - {7: 5191, 472: 5192, 499: 5193}, - {7: 155, 472: 155, 5188, 499: 155, 649: 155}, - {7: 153, 185: 5187, 472: 153, 153, 499: 153, 649: 153}, - {7: 151, 276: 5186, 472: 151, 151, 499: 151, 649: 151}, - {7: 150, 18: 5180, 99: 5182, 162: 5181, 164: 5179, 169: 5183, 276: 5184, 472: 150, 150, 499: 150, 649: 150}, + {7: 5196, 472: 5197, 499: 5198}, + {7: 155, 472: 155, 5193, 499: 155, 649: 155}, + {7: 153, 185: 5192, 472: 153, 153, 499: 153, 649: 153}, + {7: 151, 276: 5191, 472: 151, 151, 499: 151, 649: 151}, + {7: 150, 18: 5185, 99: 5187, 163: 5186, 165: 5184, 169: 5188, 276: 5189, 472: 150, 150, 499: 150, 649: 150}, // 2655 {7: 147, 472: 147, 147, 499: 147, 649: 147}, {7: 146, 472: 146, 146, 499: 146, 649: 146}, - {7: 145, 169: 5178, 472: 145, 145, 499: 145, 649: 145}, + {7: 145, 169: 5183, 472: 145, 145, 499: 145, 649: 145}, {7: 142, 472: 142, 142, 499: 142, 649: 142}, {7: 141, 472: 141, 141, 499: 141, 649: 141}, // 2660 - {99: 5177, 1019: 5176}, + {99: 5182, 1019: 5181}, {7: 137, 472: 137, 137, 499: 137, 649: 137}, - {904: 5175}, + {904: 5180}, {7: 135, 472: 135, 135, 499: 135, 649: 135}, {7: 132, 472: 132, 132, 499: 132, 649: 132}, // 2665 - {122: 5174}, + {122: 5179}, {7: 127, 472: 127, 127, 499: 127, 649: 127}, {7: 136, 472: 136, 136, 499: 136, 649: 136}, {7: 138, 472: 138, 138, 499: 138, 649: 138}, @@ -9321,7 +9328,7 @@ var ( {7: 123, 472: 123, 123, 499: 123, 649: 123}, {7: 149, 472: 149, 149, 499: 149, 649: 149}, {7: 148, 472: 148, 148, 499: 148, 649: 148}, - {122: 5185}, + {122: 5190}, {7: 126, 472: 126, 126, 499: 126, 649: 126}, // 2675 {7: 124, 472: 124, 124, 499: 124, 649: 124}, @@ -9330,101 +9337,101 @@ var ( {7: 121, 472: 121, 121, 499: 121, 649: 121}, {7: 152, 472: 152, 152, 499: 152, 649: 152}, // 2680 - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 4111, 2731, 2732, 2730, 742: 4112, 807: 5189}, - {7: 4114, 47: 5190}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 4116, 2736, 2737, 2735, 743: 4117, 807: 5194}, + {7: 4119, 47: 5195}, {7: 154, 472: 154, 499: 154, 649: 154}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 5139, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 5141, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 5147, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 5143, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 5140, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 5148, 3173, 2901, 3126, 5142, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 5145, 2812, 2813, 3052, 5146, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 5144, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 475: 5150, 496: 5173, 567: 5167, 643: 5171, 645: 5156, 648: 5166, 650: 5160, 653: 5169, 660: 5161, 663: 3459, 2731, 2732, 2730, 668: 5165, 673: 5162, 737: 5149, 5164, 799: 5151, 808: 5155, 852: 5170, 864: 5168, 934: 5152, 955: 5153, 5159, 961: 5154, 5238, 970: 5163, 972: 5172}, - {2: 118, 118, 118, 118, 118, 8: 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 48: 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 5205, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 523: 118, 569: 5204, 957: 5206, 1081: 5207}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 5144, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 5146, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 5152, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 5148, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 5145, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 5153, 3178, 2906, 3131, 5147, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 5150, 2817, 2818, 3057, 5151, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 5149, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 475: 5155, 496: 5178, 567: 5172, 643: 5176, 645: 5161, 648: 5171, 650: 5165, 653: 5174, 660: 5166, 663: 3464, 2736, 2737, 2735, 668: 5170, 673: 5167, 737: 5154, 5169, 799: 5156, 808: 5160, 852: 5175, 864: 5173, 934: 5157, 955: 5158, 5164, 961: 5159, 5243, 970: 5168, 972: 5177}, + {2: 118, 118, 118, 118, 118, 8: 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 48: 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 5210, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 523: 118, 569: 5209, 957: 5211, 1081: 5212}, // 2685 - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 475: 3458, 570: 5195, 663: 3459, 2731, 2732, 2730, 737: 5194, 776: 5196, 866: 5197}, - {738, 738, 7: 738, 13: 738, 46: 738, 99: 738, 142: 738, 474: 738, 481: 738, 498: 738, 568: 5202, 649: 738, 661: 738, 5201, 667: 738}, - {1196, 1196, 7: 1196, 13: 1196, 46: 1196, 99: 1196, 142: 1196, 473: 3738, 1196, 481: 1196, 498: 1196, 649: 1196, 661: 1196, 667: 1196, 1090: 5200}, - {734, 734, 7: 734, 474: 734}, - {108, 108, 7: 5198}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 475: 3463, 570: 5200, 663: 3464, 2736, 2737, 2735, 737: 5199, 776: 5201, 866: 5202}, + {742, 742, 7: 742, 13: 742, 46: 742, 99: 742, 142: 742, 474: 742, 481: 742, 498: 742, 568: 5207, 649: 742, 661: 742, 5206, 667: 742}, + {1200, 1200, 7: 1200, 13: 1200, 46: 1200, 99: 1200, 142: 1200, 473: 3743, 1200, 481: 1200, 498: 1200, 649: 1200, 661: 1200, 667: 1200, 1090: 5205}, + {738, 738, 7: 738, 474: 738}, + {108, 108, 7: 5203}, // 2690 - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 475: 3458, 570: 5195, 663: 3459, 2731, 2732, 2730, 737: 5194, 776: 5199}, - {733, 733, 7: 733, 474: 733}, - {735, 735, 7: 735, 13: 735, 46: 735, 99: 735, 142: 735, 474: 735, 481: 735, 498: 735, 649: 735, 661: 735, 667: 735}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 475: 3458, 663: 3459, 2731, 2732, 2730, 737: 5203}, - {736, 736, 7: 736, 13: 736, 46: 736, 99: 736, 142: 736, 474: 736, 481: 736, 498: 736, 649: 736, 661: 736, 667: 736}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 475: 3463, 570: 5200, 663: 3464, 2736, 2737, 2735, 737: 5199, 776: 5204}, + {737, 737, 7: 737, 474: 737}, + {739, 739, 7: 739, 13: 739, 46: 739, 99: 739, 142: 739, 474: 739, 481: 739, 498: 739, 649: 739, 661: 739, 667: 739}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 475: 3463, 663: 3464, 2736, 2737, 2735, 737: 5208}, + {740, 740, 7: 740, 13: 740, 46: 740, 99: 740, 142: 740, 474: 740, 481: 740, 498: 740, 649: 740, 661: 740, 667: 740}, // 2695 - {737, 737, 7: 737, 13: 737, 46: 737, 99: 737, 142: 737, 474: 737, 481: 737, 498: 737, 649: 737, 661: 737, 667: 737}, + {741, 741, 7: 741, 13: 741, 46: 741, 99: 741, 142: 741, 474: 741, 481: 741, 498: 741, 649: 741, 661: 741, 667: 741}, {2: 117, 117, 117, 117, 117, 8: 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 48: 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 523: 117}, {2: 116, 116, 116, 116, 116, 8: 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 48: 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 523: 116}, {2: 115, 115, 115, 115, 115, 8: 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 48: 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 523: 115}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 523: 5208, 663: 5209, 2731, 2732, 2730, 1104: 5210}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 523: 5213, 663: 5214, 2736, 2737, 2735, 1104: 5215}, // 2700 - {499: 114, 649: 114, 651: 5236}, - {499: 110, 649: 110, 651: 5233}, - {499: 5211}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 475: 3458, 570: 5195, 663: 3459, 2731, 2732, 2730, 737: 5194, 776: 5212, 889: 5213, 920: 5214}, - {198, 198, 7: 198, 13: 198, 46: 198, 142: 5218, 474: 198, 661: 198, 1173: 5217}, + {499: 114, 649: 114, 651: 5241}, + {499: 110, 649: 110, 651: 5238}, + {499: 5216}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 475: 3463, 570: 5200, 663: 3464, 2736, 2737, 2735, 737: 5199, 776: 5217, 889: 5218, 920: 5219}, + {198, 198, 7: 198, 13: 198, 46: 198, 142: 5223, 474: 198, 661: 198, 1174: 5222}, // 2705 {233, 233, 7: 233, 13: 233, 46: 233, 474: 233, 661: 233}, - {109, 109, 7: 5215}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 475: 3458, 570: 5195, 663: 3459, 2731, 2732, 2730, 737: 5194, 776: 5212, 889: 5216}, + {109, 109, 7: 5220}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 475: 3463, 570: 5200, 663: 3464, 2736, 2737, 2735, 737: 5199, 776: 5217, 889: 5221}, {232, 232, 7: 232, 13: 232, 46: 232, 474: 232, 661: 232}, {234, 234, 7: 234, 13: 234, 46: 234, 474: 234, 661: 234}, // 2710 - {474: 5220, 659: 5219}, - {13: 5231, 475: 5228, 891: 5230}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 475: 3458, 663: 3459, 2731, 2732, 2730, 737: 5222, 1174: 5221}, - {196, 196, 7: 196, 13: 196, 46: 196, 474: 196, 478: 5224, 659: 5223, 661: 196}, + {474: 5225, 659: 5224}, + {13: 5236, 475: 5233, 891: 5235}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 475: 3463, 663: 3464, 2736, 2737, 2735, 737: 5227, 1175: 5226}, + {196, 196, 7: 196, 13: 196, 46: 196, 474: 196, 478: 5229, 659: 5228, 661: 196}, {192, 192, 7: 192, 13: 192, 46: 192, 474: 192, 478: 192, 659: 192, 661: 192}, // 2715 - {475: 5228, 891: 5229}, - {475: 5226, 577: 5227, 1056: 5225}, + {475: 5233, 891: 5234}, + {475: 5231, 577: 5232, 1056: 5230}, {194, 194, 7: 194, 13: 194, 46: 194, 474: 194, 661: 194}, {191, 191, 7: 191, 13: 191, 46: 191, 474: 191, 661: 191}, {190, 190, 7: 190, 13: 190, 46: 190, 474: 190, 661: 190}, // 2720 - {730, 730, 7: 730, 13: 730, 46: 730, 730, 474: 730, 661: 730}, + {734, 734, 7: 734, 13: 734, 46: 734, 734, 474: 734, 661: 734}, {195, 195, 7: 195, 13: 195, 46: 195, 474: 195, 661: 195}, {197, 197, 7: 197, 13: 197, 46: 197, 474: 197, 661: 197}, - {475: 5226, 577: 5227, 1056: 5232}, + {475: 5231, 577: 5232, 1056: 5237}, {193, 193, 7: 193, 13: 193, 46: 193, 474: 193, 661: 193}, // 2725 - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 523: 5234, 663: 5235, 2731, 2732, 2730}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 523: 5239, 663: 5240, 2736, 2737, 2735}, {499: 112, 649: 112}, {499: 111, 649: 111}, - {523: 5237}, + {523: 5242}, {499: 113, 649: 113}, // 2730 {7: 156, 472: 156, 499: 156, 649: 156}, - {277: 5240}, + {277: 5245}, {7: 158, 472: 158, 499: 158, 649: 158}, - {277: 5242}, + {277: 5247}, {7: 159, 472: 159, 499: 159, 649: 159}, // 2735 {7: 163, 149: 163, 472: 163, 499: 163, 649: 163}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 475: 3458, 663: 3459, 2731, 2732, 2730, 737: 5246}, - {726, 726, 7: 726, 472: 726, 499: 726, 649: 726}, - {727, 727, 7: 727, 472: 727, 499: 727, 649: 727}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 475: 3463, 663: 3464, 2736, 2737, 2735, 737: 5251}, + {730, 730, 7: 730, 472: 730, 499: 730, 649: 730}, + {731, 731, 7: 731, 472: 731, 499: 731, 649: 731}, {7: 134, 472: 134, 134, 499: 134, 649: 134}, // 2740 {7: 133, 472: 133, 133, 499: 133, 649: 133}, - {472: 5289, 568: 1739, 662: 1739}, - {7: 5191, 472: 5251, 649: 5252}, - {2: 118, 118, 118, 118, 118, 8: 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 48: 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 5205, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 523: 118, 569: 5204, 957: 5206, 1081: 5254}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 475: 3458, 570: 5195, 663: 3459, 2731, 2732, 2730, 737: 5194, 776: 5196, 866: 5253}, + {472: 5294, 568: 1743, 662: 1743}, + {7: 5196, 472: 5256, 649: 5257}, + {2: 118, 118, 118, 118, 118, 8: 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 48: 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 5210, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 523: 118, 569: 5209, 957: 5211, 1081: 5259}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 475: 3463, 570: 5200, 663: 3464, 2736, 2737, 2735, 737: 5199, 776: 5201, 866: 5258}, // 2745 - {171, 171, 7: 5198}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 523: 5208, 663: 5209, 2731, 2732, 2730, 1104: 5255}, - {649: 5256}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 475: 3458, 570: 5195, 663: 3459, 2731, 2732, 2730, 737: 5194, 776: 5212, 889: 5213, 920: 5257}, - {223, 223, 7: 5215, 474: 223, 661: 5259, 958: 5258, 5260}, + {171, 171, 7: 5203}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 523: 5213, 663: 5214, 2736, 2737, 2735, 1104: 5260}, + {649: 5261}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 475: 3463, 570: 5200, 663: 3464, 2736, 2737, 2735, 737: 5199, 776: 5217, 889: 5218, 920: 5262}, + {223, 223, 7: 5220, 474: 223, 661: 5264, 958: 5263, 5265}, // 2750 {222, 222, 13: 222, 46: 222, 474: 222}, - {131: 5280, 133: 5278, 5281, 5279, 361: 5273, 407: 5275, 960: 5277, 1278: 5276, 1296: 5274}, - {170, 170, 474: 5262, 1160: 5261}, + {131: 5285, 133: 5283, 5286, 5284, 361: 5278, 407: 5280, 960: 5282, 1279: 5281, 1297: 5279}, + {170, 170, 474: 5267, 1160: 5266}, {173, 173}, - {126: 5266, 5264, 5265, 5267, 852: 5263}, + {126: 5271, 5269, 5270, 5272, 852: 5268}, // 2755 - {904: 5272}, - {508: 2705, 732: 5271}, - {508: 2705, 732: 5270}, - {508: 2705, 732: 5269}, - {508: 2705, 732: 5268}, + {904: 5277}, + {508: 2710, 732: 5276}, + {508: 2710, 732: 5275}, + {508: 2710, 732: 5274}, + {508: 2710, 732: 5273}, // 2760 {165, 165}, {166, 166}, @@ -9435,209 +9442,209 @@ var ( {221, 221, 13: 221, 46: 221, 474: 221}, {220, 220, 13: 220, 46: 220, 474: 220}, {219, 219, 13: 219, 46: 219, 474: 219}, - {218, 218, 13: 218, 46: 218, 131: 5280, 133: 5278, 5281, 5279, 474: 218, 505: 5286, 960: 5287}, + {218, 218, 13: 218, 46: 218, 131: 5285, 133: 5283, 5286, 5284, 474: 218, 505: 5291, 960: 5292}, {217, 217, 13: 217, 46: 217, 131: 217, 133: 217, 217, 217, 474: 217, 505: 217}, // 2770 - {475: 5285}, - {475: 5284}, - {475: 5283}, - {475: 5282}, + {475: 5290}, + {475: 5289}, + {475: 5288}, + {475: 5287}, {211, 211, 13: 211, 46: 211, 131: 211, 133: 211, 211, 211, 474: 211, 505: 211}, // 2775 {212, 212, 13: 212, 46: 212, 131: 212, 133: 212, 212, 212, 474: 212, 505: 212}, {213, 213, 13: 213, 46: 213, 131: 213, 133: 213, 213, 213, 474: 213, 505: 213}, {214, 214, 13: 214, 46: 214, 131: 214, 133: 214, 214, 214, 474: 214, 505: 214}, - {131: 5280, 133: 5278, 5281, 5279, 960: 5288}, + {131: 5285, 133: 5283, 5286, 5284, 960: 5293}, {215, 215, 13: 215, 46: 215, 131: 215, 133: 215, 215, 215, 474: 215, 505: 215}, // 2780 {216, 216, 13: 216, 46: 216, 131: 216, 133: 216, 216, 216, 474: 216, 505: 216}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 475: 3458, 570: 5195, 663: 3459, 2731, 2732, 2730, 737: 5194, 776: 5290}, - {649: 5291}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 475: 3458, 570: 5195, 663: 3459, 2731, 2732, 2730, 737: 5194, 776: 5196, 866: 5292}, - {170, 170, 7: 5198, 474: 5262, 1160: 5293}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 475: 3463, 570: 5200, 663: 3464, 2736, 2737, 2735, 737: 5199, 776: 5295}, + {649: 5296}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 475: 3463, 570: 5200, 663: 3464, 2736, 2737, 2735, 737: 5199, 776: 5201, 866: 5297}, + {170, 170, 7: 5203, 474: 5267, 1160: 5298}, // 2785 {172, 172}, - {2173, 2173, 7: 2173, 14: 2173, 16: 2173, 19: 2173, 479: 2173, 482: 2173, 497: 2173, 499: 2173, 504: 2173, 506: 2173, 518: 2173, 646: 2173, 649: 2173}, + {2177, 2177, 7: 2177, 14: 2177, 16: 2177, 19: 2177, 479: 2177, 482: 2177, 497: 2177, 499: 2177, 504: 2177, 506: 2177, 518: 2177, 646: 2177, 649: 2177}, {247, 247}, - {2: 845, 845, 845, 845, 845, 8: 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 48: 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 473: 845, 475: 845, 845, 845, 479: 845, 483: 845, 845, 845, 845, 845, 491: 845, 845, 495: 845, 499: 845, 501: 845, 506: 845, 845, 845, 515: 845, 523: 845, 543: 845, 566: 845, 845, 845, 570: 845, 845, 845, 574: 845, 845, 845, 845, 845, 845, 845, 845, 583: 845, 845, 587: 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 639: 845, 845, 845, 647: 845, 650: 845, 744: 845, 845, 752: 845, 845, 845, 761: 845, 768: 845, 845, 845}, - {2: 843, 843, 843, 843, 843, 8: 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 48: 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 473: 843, 491: 843, 495: 843, 499: 843, 579: 843, 752: 843, 843, 843}, + {2: 849, 849, 849, 849, 849, 8: 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 48: 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 473: 849, 475: 849, 849, 849, 479: 849, 483: 849, 849, 849, 849, 849, 491: 849, 849, 495: 849, 499: 849, 501: 849, 506: 849, 849, 849, 515: 849, 523: 849, 543: 849, 566: 849, 849, 849, 570: 849, 849, 849, 574: 849, 849, 849, 849, 849, 849, 849, 849, 583: 849, 849, 587: 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 639: 849, 849, 849, 647: 849, 650: 849, 744: 849, 849, 752: 849, 849, 849, 761: 849, 768: 849, 849, 849}, + {2: 847, 847, 847, 847, 847, 8: 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 48: 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 473: 847, 491: 847, 495: 847, 499: 847, 579: 847, 752: 847, 847, 847}, // 2790 - {2: 1048, 1048, 1048, 1048, 1048, 8: 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 48: 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 473: 1048, 491: 1048, 579: 1048, 752: 5301, 5300, 5299, 836: 5302, 885: 5303}, - {2: 1051, 1051, 1051, 1051, 1051, 8: 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 48: 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 473: 1051, 475: 1051, 1051, 1051, 479: 1051, 483: 1051, 1051, 1051, 1051, 1051, 491: 1051, 1051, 495: 1051, 499: 1051, 501: 1051, 506: 1051, 1051, 1051, 515: 1051, 523: 1051, 543: 1051, 566: 1051, 1051, 1051, 570: 1051, 1051, 1051, 574: 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 583: 1051, 1051, 587: 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 639: 1051, 1051, 1051, 647: 1051, 650: 1051, 744: 1051, 1051, 752: 1051, 1051, 1051, 761: 1051, 768: 1051, 1051, 1051}, - {2: 1050, 1050, 1050, 1050, 1050, 8: 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 48: 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 473: 1050, 475: 1050, 1050, 1050, 479: 1050, 483: 1050, 1050, 1050, 1050, 1050, 491: 1050, 1050, 495: 1050, 499: 1050, 501: 1050, 506: 1050, 1050, 1050, 515: 1050, 523: 1050, 543: 1050, 566: 1050, 1050, 1050, 570: 1050, 1050, 1050, 574: 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 583: 1050, 1050, 587: 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 639: 1050, 1050, 1050, 647: 1050, 650: 1050, 744: 1050, 1050, 752: 1050, 1050, 1050, 761: 1050, 768: 1050, 1050, 1050}, - {2: 1049, 1049, 1049, 1049, 1049, 8: 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 48: 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 473: 1049, 475: 1049, 1049, 1049, 479: 1049, 483: 1049, 1049, 1049, 1049, 1049, 491: 1049, 1049, 495: 1049, 499: 1049, 501: 1049, 506: 1049, 1049, 1049, 515: 1049, 523: 1049, 543: 1049, 566: 1049, 1049, 1049, 570: 1049, 1049, 1049, 574: 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 583: 1049, 1049, 587: 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 639: 1049, 1049, 1049, 647: 1049, 650: 1049, 744: 1049, 1049, 752: 1049, 1049, 1049, 761: 1049, 768: 1049, 1049, 1049}, - {2: 1047, 1047, 1047, 1047, 1047, 8: 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 48: 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 473: 1047, 491: 1047, 495: 1047, 499: 1047, 579: 1047}, + {2: 1052, 1052, 1052, 1052, 1052, 8: 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 48: 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 473: 1052, 491: 1052, 579: 1052, 752: 5306, 5305, 5304, 836: 5307, 885: 5308}, + {2: 1055, 1055, 1055, 1055, 1055, 8: 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 48: 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 473: 1055, 475: 1055, 1055, 1055, 479: 1055, 483: 1055, 1055, 1055, 1055, 1055, 491: 1055, 1055, 495: 1055, 499: 1055, 501: 1055, 506: 1055, 1055, 1055, 515: 1055, 523: 1055, 543: 1055, 566: 1055, 1055, 1055, 570: 1055, 1055, 1055, 574: 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 583: 1055, 1055, 587: 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 639: 1055, 1055, 1055, 647: 1055, 650: 1055, 744: 1055, 1055, 752: 1055, 1055, 1055, 761: 1055, 768: 1055, 1055, 1055}, + {2: 1054, 1054, 1054, 1054, 1054, 8: 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 48: 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 473: 1054, 475: 1054, 1054, 1054, 479: 1054, 483: 1054, 1054, 1054, 1054, 1054, 491: 1054, 1054, 495: 1054, 499: 1054, 501: 1054, 506: 1054, 1054, 1054, 515: 1054, 523: 1054, 543: 1054, 566: 1054, 1054, 1054, 570: 1054, 1054, 1054, 574: 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 583: 1054, 1054, 587: 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 639: 1054, 1054, 1054, 647: 1054, 650: 1054, 744: 1054, 1054, 752: 1054, 1054, 1054, 761: 1054, 768: 1054, 1054, 1054}, + {2: 1053, 1053, 1053, 1053, 1053, 8: 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 48: 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 473: 1053, 475: 1053, 1053, 1053, 479: 1053, 483: 1053, 1053, 1053, 1053, 1053, 491: 1053, 1053, 495: 1053, 499: 1053, 501: 1053, 506: 1053, 1053, 1053, 515: 1053, 523: 1053, 543: 1053, 566: 1053, 1053, 1053, 570: 1053, 1053, 1053, 574: 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 583: 1053, 1053, 587: 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 639: 1053, 1053, 1053, 647: 1053, 650: 1053, 744: 1053, 1053, 752: 1053, 1053, 1053, 761: 1053, 768: 1053, 1053, 1053}, + {2: 1051, 1051, 1051, 1051, 1051, 8: 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 48: 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 473: 1051, 491: 1051, 495: 1051, 499: 1051, 579: 1051}, // 2795 - {2: 1846, 1846, 1846, 1846, 1846, 8: 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 48: 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 473: 1846, 491: 4158, 579: 1846, 853: 5304}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 473: 5313, 579: 5308, 663: 3889, 2731, 2732, 2730, 708: 5312, 736: 5311, 796: 5310, 800: 5309, 5307, 850: 5305, 888: 5306}, - {922, 922, 7: 922, 47: 922, 472: 922, 474: 922, 480: 922, 922, 488: 922, 922, 493: 922, 922, 922, 922, 922, 500: 922, 502: 922, 504: 922, 513: 922, 922, 516: 922}, - {7: 5359, 504: 5429}, - {7: 920, 483: 5326, 5327, 504: 5416, 515: 5325, 517: 5328, 519: 5324, 5329, 5330, 816: 5323, 822: 5322}, + {2: 1850, 1850, 1850, 1850, 1850, 8: 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 48: 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 473: 1850, 491: 4163, 579: 1850, 853: 5309}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 473: 5318, 579: 5313, 663: 3894, 2736, 2737, 2735, 708: 5317, 736: 5316, 796: 5315, 800: 5314, 5312, 850: 5310, 888: 5311}, + {926, 926, 7: 926, 47: 926, 472: 926, 474: 926, 480: 926, 926, 488: 926, 926, 493: 926, 926, 926, 926, 926, 500: 926, 502: 926, 504: 926, 513: 926, 926, 516: 926}, + {7: 5364, 504: 5434}, + {7: 924, 483: 5331, 5332, 504: 5421, 515: 5330, 517: 5333, 519: 5329, 5334, 5335, 816: 5328, 822: 5327}, // 2800 - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 5413, 2731, 2732, 2730}, - {918, 918, 7: 918, 47: 918, 472: 918, 474: 918, 480: 918, 918, 483: 918, 918, 488: 918, 918, 493: 918, 918, 918, 918, 918, 500: 918, 502: 918, 504: 918, 513: 918, 918, 918, 918, 918, 519: 918, 918, 918, 918}, - {917, 917, 7: 917, 47: 917, 472: 917, 474: 917, 480: 917, 917, 483: 917, 917, 488: 917, 917, 493: 917, 917, 917, 917, 917, 500: 917, 502: 917, 504: 917, 513: 917, 917, 917, 917, 917, 519: 917, 917, 917, 917}, - {913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 474: 913, 478: 913, 480: 913, 913, 483: 913, 913, 488: 913, 913, 5363, 913, 493: 913, 913, 913, 913, 913, 500: 913, 502: 913, 913, 913, 513: 913, 913, 913, 913, 913, 519: 913, 913, 913, 913, 525: 913, 913, 672: 913, 858: 5362}, - {911, 911, 2971, 2816, 2852, 2973, 2743, 911, 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 911, 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 911, 474: 911, 478: 5320, 480: 911, 911, 483: 911, 911, 488: 911, 911, 493: 911, 911, 911, 911, 911, 500: 911, 502: 911, 504: 911, 513: 911, 911, 911, 911, 911, 519: 911, 911, 911, 911, 663: 5319, 2731, 2732, 2730, 913: 5318, 5317}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 5418, 2736, 2737, 2735}, + {922, 922, 7: 922, 47: 922, 472: 922, 474: 922, 480: 922, 922, 483: 922, 922, 488: 922, 922, 493: 922, 922, 922, 922, 922, 500: 922, 502: 922, 504: 922, 513: 922, 922, 922, 922, 922, 519: 922, 922, 922, 922}, + {921, 921, 7: 921, 47: 921, 472: 921, 474: 921, 480: 921, 921, 483: 921, 921, 488: 921, 921, 493: 921, 921, 921, 921, 921, 500: 921, 502: 921, 504: 921, 513: 921, 921, 921, 921, 921, 519: 921, 921, 921, 921}, + {917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 474: 917, 478: 917, 480: 917, 917, 483: 917, 917, 488: 917, 917, 5368, 917, 493: 917, 917, 917, 917, 917, 500: 917, 502: 917, 917, 917, 513: 917, 917, 917, 917, 917, 519: 917, 917, 917, 917, 525: 917, 917, 672: 917, 858: 5367}, + {915, 915, 2976, 2821, 2857, 2978, 2748, 915, 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 915, 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 915, 474: 915, 478: 5325, 480: 915, 915, 483: 915, 915, 488: 915, 915, 493: 915, 915, 915, 915, 915, 500: 915, 502: 915, 504: 915, 513: 915, 915, 915, 915, 915, 519: 915, 915, 915, 915, 663: 5324, 2736, 2737, 2735, 913: 5323, 5322}, // 2805 - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 473: 5313, 2558, 501: 2557, 569: 2556, 579: 5308, 645: 2552, 663: 3889, 2731, 2732, 2730, 708: 5316, 736: 5311, 747: 3849, 2553, 2554, 2555, 2564, 755: 2562, 2561, 2560, 3848, 3851, 3850, 796: 5310, 800: 5309, 5315, 850: 5305, 888: 5314}, - {7: 5359, 47: 5360}, - {920, 920, 7: 920, 47: 920, 472: 920, 474: 920, 480: 920, 920, 483: 5326, 5327, 488: 920, 920, 493: 920, 920, 920, 920, 920, 500: 920, 502: 920, 504: 920, 513: 920, 920, 5325, 920, 5328, 519: 5324, 5329, 5330, 816: 5323, 822: 5322}, - {2: 2971, 2816, 2852, 2973, 2743, 911, 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 3942, 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 478: 5320, 480: 805, 483: 911, 911, 488: 805, 805, 493: 2697, 500: 2698, 502: 2694, 515: 911, 517: 911, 519: 911, 911, 911, 663: 5319, 2731, 2732, 2730, 766: 3859, 3860, 913: 5318, 5317}, - {915, 915, 7: 915, 47: 915, 472: 915, 474: 915, 480: 915, 915, 483: 915, 915, 488: 915, 915, 493: 915, 915, 915, 915, 915, 500: 915, 502: 915, 504: 915, 513: 915, 915, 915, 915, 915, 519: 915, 915, 915, 915}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 473: 5318, 2563, 501: 2562, 569: 2561, 579: 5313, 645: 2557, 663: 3894, 2736, 2737, 2735, 708: 5321, 736: 5316, 747: 3854, 2558, 2559, 2560, 2569, 755: 2567, 2566, 2565, 3853, 3856, 3855, 796: 5315, 800: 5314, 5320, 850: 5310, 888: 5319}, + {7: 5364, 47: 5365}, + {924, 924, 7: 924, 47: 924, 472: 924, 474: 924, 480: 924, 924, 483: 5331, 5332, 488: 924, 924, 493: 924, 924, 924, 924, 924, 500: 924, 502: 924, 504: 924, 513: 924, 924, 5330, 924, 5333, 519: 5329, 5334, 5335, 816: 5328, 822: 5327}, + {2: 2976, 2821, 2857, 2978, 2748, 915, 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 3947, 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 478: 5325, 480: 809, 483: 915, 915, 488: 809, 809, 493: 2702, 500: 2703, 502: 2699, 515: 915, 517: 915, 519: 915, 915, 915, 663: 5324, 2736, 2737, 2735, 766: 3864, 3865, 913: 5323, 5322}, + {919, 919, 7: 919, 47: 919, 472: 919, 474: 919, 480: 919, 919, 483: 919, 919, 488: 919, 919, 493: 919, 919, 919, 919, 919, 500: 919, 502: 919, 504: 919, 513: 919, 919, 919, 919, 919, 519: 919, 919, 919, 919}, // 2810 - {910, 910, 7: 910, 47: 910, 472: 910, 474: 910, 480: 910, 910, 483: 910, 910, 488: 910, 910, 491: 910, 493: 910, 910, 910, 910, 910, 500: 910, 502: 910, 910, 910, 513: 910, 910, 910, 910, 910, 519: 910, 910, 910, 910, 525: 910, 910, 672: 910}, - {909, 909, 7: 909, 47: 909, 472: 909, 474: 909, 480: 909, 909, 483: 909, 909, 488: 909, 909, 491: 909, 493: 909, 909, 909, 909, 909, 500: 909, 502: 909, 909, 909, 513: 909, 909, 909, 909, 909, 519: 909, 909, 909, 909, 525: 909, 909, 672: 909}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 5321, 2731, 2732, 2730}, - {908, 908, 7: 908, 47: 908, 472: 908, 474: 908, 480: 908, 908, 483: 908, 908, 488: 908, 908, 491: 908, 493: 908, 908, 908, 908, 908, 500: 908, 502: 908, 908, 908, 513: 908, 908, 908, 908, 908, 519: 908, 908, 908, 908, 525: 908, 908, 672: 908}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 473: 5313, 663: 3889, 2731, 2732, 2730, 708: 5312, 736: 5311, 796: 5310, 800: 5309, 5352}, + {914, 914, 7: 914, 47: 914, 472: 914, 474: 914, 480: 914, 914, 483: 914, 914, 488: 914, 914, 491: 914, 493: 914, 914, 914, 914, 914, 500: 914, 502: 914, 914, 914, 513: 914, 914, 914, 914, 914, 519: 914, 914, 914, 914, 525: 914, 914, 672: 914}, + {913, 913, 7: 913, 47: 913, 472: 913, 474: 913, 480: 913, 913, 483: 913, 913, 488: 913, 913, 491: 913, 493: 913, 913, 913, 913, 913, 500: 913, 502: 913, 913, 913, 513: 913, 913, 913, 913, 913, 519: 913, 913, 913, 913, 525: 913, 913, 672: 913}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 5326, 2736, 2737, 2735}, + {912, 912, 7: 912, 47: 912, 472: 912, 474: 912, 480: 912, 912, 483: 912, 912, 488: 912, 912, 491: 912, 493: 912, 912, 912, 912, 912, 500: 912, 502: 912, 912, 912, 513: 912, 912, 912, 912, 912, 519: 912, 912, 912, 912, 525: 912, 912, 672: 912}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 473: 5318, 663: 3894, 2736, 2737, 2735, 708: 5317, 736: 5316, 796: 5315, 800: 5314, 5357}, // 2815 - {517: 879, 906: 5339, 1094: 5343}, - {483: 5326, 5327, 517: 5336, 816: 5337}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 473: 5313, 663: 3889, 2731, 2732, 2730, 708: 5312, 736: 5311, 796: 5310, 800: 5309, 5333}, - {517: 881, 906: 881}, - {517: 880, 906: 880}, + {517: 883, 906: 5344, 1094: 5348}, + {483: 5331, 5332, 517: 5341, 816: 5342}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 473: 5318, 663: 3894, 2736, 2737, 2735, 708: 5317, 736: 5316, 796: 5315, 800: 5314, 5338}, + {517: 885, 906: 885}, + {517: 884, 906: 884}, // 2820 - {2: 877, 877, 877, 877, 877, 8: 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 48: 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 473: 877}, - {517: 5332}, - {517: 5331}, - {2: 875, 875, 875, 875, 875, 8: 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 48: 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 473: 875}, - {2: 876, 876, 876, 876, 876, 8: 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 48: 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 876, 473: 876}, + {2: 881, 881, 881, 881, 881, 8: 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 48: 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 473: 881}, + {517: 5337}, + {517: 5336}, + {2: 879, 879, 879, 879, 879, 8: 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 48: 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 473: 879}, + {2: 880, 880, 880, 880, 880, 8: 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 48: 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 473: 880}, // 2825 - {883, 883, 7: 883, 47: 883, 472: 5334, 474: 883, 480: 883, 883, 483: 883, 883, 488: 883, 883, 493: 883, 883, 883, 883, 883, 500: 883, 502: 883, 504: 883, 513: 883, 883, 883, 883, 883, 519: 883, 883, 883, 883, 816: 5323, 822: 5322}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 2724, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 5335}, - {882, 882, 7: 882, 47: 882, 472: 882, 474: 882, 480: 882, 882, 483: 882, 882, 488: 882, 882, 493: 882, 882, 882, 882, 882, 500: 882, 502: 882, 504: 882, 3313, 509: 3311, 3312, 3310, 3308, 882, 882, 882, 882, 882, 519: 882, 882, 882, 882, 733: 3309, 3307}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 473: 5313, 663: 3889, 2731, 2732, 2730, 708: 5312, 736: 5311, 796: 5310, 800: 5309, 5342}, - {517: 879, 906: 5339, 1094: 5338}, + {887, 887, 7: 887, 47: 887, 472: 5339, 474: 887, 480: 887, 887, 483: 887, 887, 488: 887, 887, 493: 887, 887, 887, 887, 887, 500: 887, 502: 887, 504: 887, 513: 887, 887, 887, 887, 887, 519: 887, 887, 887, 887, 816: 5328, 822: 5327}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 2729, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 5340}, + {886, 886, 7: 886, 47: 886, 472: 886, 474: 886, 480: 886, 886, 483: 886, 886, 488: 886, 886, 493: 886, 886, 886, 886, 886, 500: 886, 502: 886, 504: 886, 3318, 509: 3316, 3317, 3315, 3313, 886, 886, 886, 886, 886, 519: 886, 886, 886, 886, 733: 3314, 3312}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 473: 5318, 663: 3894, 2736, 2737, 2735, 708: 5317, 736: 5316, 796: 5315, 800: 5314, 5347}, + {517: 883, 906: 5344, 1094: 5343}, // 2830 - {517: 5340}, - {517: 878}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 473: 5313, 663: 3889, 2731, 2732, 2730, 708: 5312, 736: 5311, 796: 5310, 800: 5309, 5341}, - {884, 884, 7: 884, 47: 884, 472: 884, 474: 884, 480: 884, 884, 483: 884, 884, 488: 884, 884, 493: 884, 884, 884, 884, 884, 500: 884, 502: 884, 504: 884, 513: 884, 884, 884, 884, 884, 519: 884, 884, 884, 884, 816: 5323, 822: 5322}, - {885, 885, 7: 885, 47: 885, 472: 885, 474: 885, 480: 885, 885, 483: 885, 885, 488: 885, 885, 493: 885, 885, 885, 885, 885, 500: 885, 502: 885, 504: 885, 513: 885, 885, 885, 885, 885, 519: 885, 885, 885, 885, 816: 5323, 822: 5322}, + {517: 5345}, + {517: 882}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 473: 5318, 663: 3894, 2736, 2737, 2735, 708: 5317, 736: 5316, 796: 5315, 800: 5314, 5346}, + {888, 888, 7: 888, 47: 888, 472: 888, 474: 888, 480: 888, 888, 483: 888, 888, 488: 888, 888, 493: 888, 888, 888, 888, 888, 500: 888, 502: 888, 504: 888, 513: 888, 888, 888, 888, 888, 519: 888, 888, 888, 888, 816: 5328, 822: 5327}, + {889, 889, 7: 889, 47: 889, 472: 889, 474: 889, 480: 889, 889, 483: 889, 889, 488: 889, 889, 493: 889, 889, 889, 889, 889, 500: 889, 502: 889, 504: 889, 513: 889, 889, 889, 889, 889, 519: 889, 889, 889, 889, 816: 5328, 822: 5327}, // 2835 - {517: 5344}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 473: 5313, 663: 3889, 2731, 2732, 2730, 708: 5312, 736: 5311, 796: 5310, 800: 5309, 5345}, - {472: 5346, 481: 5347, 483: 5326, 5327, 515: 5325, 517: 5328, 519: 5324, 5329, 5330, 816: 5323, 822: 5322}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 2724, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 5351}, - {473: 5348}, + {517: 5349}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 473: 5318, 663: 3894, 2736, 2737, 2735, 708: 5317, 736: 5316, 796: 5315, 800: 5314, 5350}, + {472: 5351, 481: 5352, 483: 5331, 5332, 515: 5330, 517: 5333, 519: 5329, 5334, 5335, 816: 5328, 822: 5327}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 2729, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 5356}, + {473: 5353}, // 2840 - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 4111, 2731, 2732, 2730, 742: 4112, 807: 5349}, - {7: 4114, 47: 5350}, - {886, 886, 7: 886, 47: 886, 472: 886, 474: 886, 480: 886, 886, 483: 886, 886, 488: 886, 886, 493: 886, 886, 886, 886, 886, 500: 886, 502: 886, 504: 886, 513: 886, 886, 886, 886, 886, 519: 886, 886, 886, 886}, - {887, 887, 7: 887, 47: 887, 472: 887, 474: 887, 480: 887, 887, 483: 887, 887, 488: 887, 887, 493: 887, 887, 887, 887, 887, 500: 887, 502: 887, 504: 887, 3313, 509: 3311, 3312, 3310, 3308, 887, 887, 887, 887, 887, 519: 887, 887, 887, 887, 733: 3309, 3307}, - {890, 890, 7: 890, 47: 890, 472: 5353, 474: 890, 480: 890, 5354, 483: 5326, 5327, 488: 890, 890, 493: 890, 890, 890, 890, 890, 500: 890, 502: 890, 504: 890, 513: 890, 890, 5325, 890, 5328, 519: 5324, 5329, 5330, 890, 816: 5323, 822: 5322}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 4116, 2736, 2737, 2735, 743: 4117, 807: 5354}, + {7: 4119, 47: 5355}, + {890, 890, 7: 890, 47: 890, 472: 890, 474: 890, 480: 890, 890, 483: 890, 890, 488: 890, 890, 493: 890, 890, 890, 890, 890, 500: 890, 502: 890, 504: 890, 513: 890, 890, 890, 890, 890, 519: 890, 890, 890, 890}, + {891, 891, 7: 891, 47: 891, 472: 891, 474: 891, 480: 891, 891, 483: 891, 891, 488: 891, 891, 493: 891, 891, 891, 891, 891, 500: 891, 502: 891, 504: 891, 3318, 509: 3316, 3317, 3315, 3313, 891, 891, 891, 891, 891, 519: 891, 891, 891, 891, 733: 3314, 3312}, + {894, 894, 7: 894, 47: 894, 472: 5358, 474: 894, 480: 894, 5359, 483: 5331, 5332, 488: 894, 894, 493: 894, 894, 894, 894, 894, 500: 894, 502: 894, 504: 894, 513: 894, 894, 5330, 894, 5333, 519: 5329, 5334, 5335, 894, 816: 5328, 822: 5327}, // 2845 - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 2724, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 5358}, - {473: 5355}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 4111, 2731, 2732, 2730, 742: 4112, 807: 5356}, - {7: 4114, 47: 5357}, - {888, 888, 7: 888, 47: 888, 472: 888, 474: 888, 480: 888, 888, 483: 888, 888, 488: 888, 888, 493: 888, 888, 888, 888, 888, 500: 888, 502: 888, 504: 888, 513: 888, 888, 888, 888, 888, 519: 888, 888, 888, 888}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 2729, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 5363}, + {473: 5360}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 4116, 2736, 2737, 2735, 743: 4117, 807: 5361}, + {7: 4119, 47: 5362}, + {892, 892, 7: 892, 47: 892, 472: 892, 474: 892, 480: 892, 892, 483: 892, 892, 488: 892, 892, 493: 892, 892, 892, 892, 892, 500: 892, 502: 892, 504: 892, 513: 892, 892, 892, 892, 892, 519: 892, 892, 892, 892}, // 2850 - {889, 889, 7: 889, 47: 889, 472: 889, 474: 889, 480: 889, 889, 483: 889, 889, 488: 889, 889, 493: 889, 889, 889, 889, 889, 500: 889, 502: 889, 504: 889, 3313, 509: 3311, 3312, 3310, 3308, 889, 889, 889, 889, 889, 519: 889, 889, 889, 889, 733: 3309, 3307}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 473: 5313, 579: 5308, 663: 3889, 2731, 2732, 2730, 708: 5312, 736: 5311, 796: 5310, 800: 5309, 5315, 850: 5361}, - {914, 914, 7: 914, 47: 914, 472: 914, 474: 914, 480: 914, 914, 483: 914, 914, 488: 914, 914, 493: 914, 914, 914, 914, 914, 500: 914, 502: 914, 504: 914, 513: 914, 914, 914, 914, 914, 519: 914, 914, 914, 914}, - {921, 921, 7: 921, 47: 921, 472: 921, 474: 921, 480: 921, 921, 488: 921, 921, 493: 921, 921, 921, 921, 921, 500: 921, 502: 921, 504: 921, 513: 921, 921, 516: 921}, - {911, 911, 2971, 2816, 2852, 2973, 2743, 911, 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 911, 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 911, 474: 911, 478: 5320, 480: 911, 911, 483: 911, 911, 488: 911, 911, 491: 911, 493: 911, 911, 911, 911, 911, 500: 911, 502: 911, 911, 911, 513: 911, 911, 911, 911, 911, 519: 911, 911, 911, 911, 525: 911, 911, 663: 5319, 2731, 2732, 2730, 672: 911, 913: 5318, 5367}, + {893, 893, 7: 893, 47: 893, 472: 893, 474: 893, 480: 893, 893, 483: 893, 893, 488: 893, 893, 493: 893, 893, 893, 893, 893, 500: 893, 502: 893, 504: 893, 3318, 509: 3316, 3317, 3315, 3313, 893, 893, 893, 893, 893, 519: 893, 893, 893, 893, 733: 3314, 3312}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 473: 5318, 579: 5313, 663: 3894, 2736, 2737, 2735, 708: 5317, 736: 5316, 796: 5315, 800: 5314, 5320, 850: 5366}, + {918, 918, 7: 918, 47: 918, 472: 918, 474: 918, 480: 918, 918, 483: 918, 918, 488: 918, 918, 493: 918, 918, 918, 918, 918, 500: 918, 502: 918, 504: 918, 513: 918, 918, 918, 918, 918, 519: 918, 918, 918, 918}, + {925, 925, 7: 925, 47: 925, 472: 925, 474: 925, 480: 925, 925, 488: 925, 925, 493: 925, 925, 925, 925, 925, 500: 925, 502: 925, 504: 925, 513: 925, 925, 516: 925}, + {915, 915, 2976, 2821, 2857, 2978, 2748, 915, 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 915, 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 915, 474: 915, 478: 5325, 480: 915, 915, 483: 915, 915, 488: 915, 915, 491: 915, 493: 915, 915, 915, 915, 915, 500: 915, 502: 915, 915, 915, 513: 915, 915, 915, 915, 915, 519: 915, 915, 915, 915, 525: 915, 915, 663: 5324, 2736, 2737, 2735, 672: 915, 913: 5323, 5372}, // 2855 - {473: 5364}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 4712, 2731, 2732, 2730, 788: 5365}, - {7: 4713, 47: 5366}, - {912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 478: 912, 480: 912, 912, 483: 912, 912, 488: 912, 912, 491: 912, 493: 912, 912, 912, 912, 912, 500: 912, 912, 912, 912, 912, 513: 912, 912, 912, 912, 912, 519: 912, 912, 912, 912, 525: 912, 912, 555: 912, 569: 912, 645: 912, 648: 912, 659: 912, 672: 912}, - {1853, 1853, 7: 1853, 47: 1853, 472: 1853, 474: 1853, 480: 1853, 1853, 483: 1853, 1853, 488: 1853, 1853, 491: 1853, 493: 1853, 1853, 1853, 1853, 1853, 500: 1853, 502: 1853, 1853, 1853, 513: 1853, 1853, 1853, 1853, 1853, 519: 1853, 1853, 1853, 1853, 525: 1853, 1853, 672: 5369, 922: 5368, 1171: 5370}, + {473: 5369}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 4717, 2736, 2737, 2735, 788: 5370}, + {7: 4718, 47: 5371}, + {916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 478: 916, 480: 916, 916, 483: 916, 916, 488: 916, 916, 491: 916, 493: 916, 916, 916, 916, 916, 500: 916, 916, 916, 916, 916, 513: 916, 916, 916, 916, 916, 519: 916, 916, 916, 916, 525: 916, 916, 555: 916, 569: 916, 645: 916, 648: 916, 659: 916, 672: 916}, + {1857, 1857, 7: 1857, 47: 1857, 472: 1857, 474: 1857, 480: 1857, 1857, 483: 1857, 1857, 488: 1857, 1857, 491: 1857, 493: 1857, 1857, 1857, 1857, 1857, 500: 1857, 502: 1857, 1857, 1857, 513: 1857, 1857, 1857, 1857, 1857, 519: 1857, 1857, 1857, 1857, 525: 1857, 1857, 672: 5374, 922: 5373, 1172: 5375}, // 2860 - {1852, 1852, 7: 1852, 47: 1852, 472: 1852, 474: 1852, 480: 1852, 1852, 483: 1852, 1852, 488: 1852, 1852, 491: 1852, 493: 1852, 1852, 1852, 1852, 1852, 500: 1852, 502: 1852, 1852, 1852, 513: 1852, 1852, 1852, 1852, 1852, 519: 1852, 1852, 1852, 1852, 525: 1852, 1852}, - {218: 5411}, - {892, 892, 7: 892, 47: 892, 472: 892, 474: 892, 480: 892, 892, 483: 892, 892, 488: 892, 892, 491: 5373, 493: 892, 892, 892, 892, 892, 500: 892, 502: 892, 5374, 892, 513: 892, 892, 892, 892, 892, 519: 892, 892, 892, 892, 525: 5372, 892, 938: 5376, 5375, 1060: 5377, 5371}, - {1007, 1007, 7: 1007, 47: 1007, 472: 1007, 474: 1007, 480: 1007, 1007, 483: 1007, 1007, 488: 1007, 1007, 493: 1007, 1007, 1007, 1007, 1007, 500: 1007, 502: 1007, 504: 1007, 513: 1007, 1007, 1007, 1007, 1007, 519: 1007, 1007, 1007, 1007, 526: 5392, 1315: 5393}, - {573: 4374, 648: 4375, 827: 5391}, + {1856, 1856, 7: 1856, 47: 1856, 472: 1856, 474: 1856, 480: 1856, 1856, 483: 1856, 1856, 488: 1856, 1856, 491: 1856, 493: 1856, 1856, 1856, 1856, 1856, 500: 1856, 502: 1856, 1856, 1856, 513: 1856, 1856, 1856, 1856, 1856, 519: 1856, 1856, 1856, 1856, 525: 1856, 1856}, + {218: 5416}, + {896, 896, 7: 896, 47: 896, 472: 896, 474: 896, 480: 896, 896, 483: 896, 896, 488: 896, 896, 491: 5378, 493: 896, 896, 896, 896, 896, 500: 896, 502: 896, 5379, 896, 513: 896, 896, 896, 896, 896, 519: 896, 896, 896, 896, 525: 5377, 896, 938: 5381, 5380, 1060: 5382, 5376}, + {1011, 1011, 7: 1011, 47: 1011, 472: 1011, 474: 1011, 480: 1011, 1011, 483: 1011, 1011, 488: 1011, 1011, 493: 1011, 1011, 1011, 1011, 1011, 500: 1011, 502: 1011, 504: 1011, 513: 1011, 1011, 1011, 1011, 1011, 519: 1011, 1011, 1011, 1011, 526: 5397, 1316: 5398}, + {573: 4379, 648: 4380, 827: 5396}, // 2865 - {573: 4374, 648: 4375, 827: 5390}, - {573: 4374, 648: 4375, 827: 5389}, - {473: 904, 494: 5379, 1225: 5380}, - {894, 894, 7: 894, 47: 894, 472: 894, 474: 894, 480: 894, 894, 483: 894, 894, 488: 894, 894, 491: 894, 493: 894, 894, 894, 894, 894, 500: 894, 502: 894, 894, 894, 513: 894, 894, 894, 894, 894, 519: 894, 894, 894, 894, 525: 894, 894}, - {891, 891, 7: 891, 47: 891, 472: 891, 474: 891, 480: 891, 891, 483: 891, 891, 488: 891, 891, 491: 5373, 493: 891, 891, 891, 891, 891, 500: 891, 502: 891, 5374, 891, 513: 891, 891, 891, 891, 891, 519: 891, 891, 891, 891, 525: 5372, 891, 938: 5378, 5375}, + {573: 4379, 648: 4380, 827: 5395}, + {573: 4379, 648: 4380, 827: 5394}, + {473: 908, 494: 5384, 1226: 5385}, + {898, 898, 7: 898, 47: 898, 472: 898, 474: 898, 480: 898, 898, 483: 898, 898, 488: 898, 898, 491: 898, 493: 898, 898, 898, 898, 898, 500: 898, 502: 898, 898, 898, 513: 898, 898, 898, 898, 898, 519: 898, 898, 898, 898, 525: 898, 898}, + {895, 895, 7: 895, 47: 895, 472: 895, 474: 895, 480: 895, 895, 483: 895, 895, 488: 895, 895, 491: 5378, 493: 895, 895, 895, 895, 895, 500: 895, 502: 895, 5379, 895, 513: 895, 895, 895, 895, 895, 519: 895, 895, 895, 895, 525: 5377, 895, 938: 5383, 5380}, // 2870 - {893, 893, 7: 893, 47: 893, 472: 893, 474: 893, 480: 893, 893, 483: 893, 893, 488: 893, 893, 491: 893, 493: 893, 893, 893, 893, 893, 500: 893, 502: 893, 893, 893, 513: 893, 893, 893, 893, 893, 519: 893, 893, 893, 893, 525: 893, 893}, - {502: 5385, 513: 5386, 517: 5384}, - {473: 5381}, - {2: 2971, 2816, 2852, 2973, 2743, 899, 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 899, 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 586: 4975, 663: 4974, 2731, 2732, 2730, 855: 5382}, - {7: 4977, 47: 5383}, + {897, 897, 7: 897, 47: 897, 472: 897, 474: 897, 480: 897, 897, 483: 897, 897, 488: 897, 897, 491: 897, 493: 897, 897, 897, 897, 897, 500: 897, 502: 897, 897, 897, 513: 897, 897, 897, 897, 897, 519: 897, 897, 897, 897, 525: 897, 897}, + {502: 5390, 513: 5391, 517: 5389}, + {473: 5386}, + {2: 2976, 2821, 2857, 2978, 2748, 903, 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 903, 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 586: 4980, 663: 4979, 2736, 2737, 2735, 855: 5387}, + {7: 4982, 47: 5388}, // 2875 - {900, 900, 7: 900, 47: 900, 472: 900, 474: 900, 480: 900, 900, 483: 900, 900, 488: 900, 900, 491: 900, 493: 900, 900, 900, 900, 900, 500: 900, 502: 900, 900, 900, 513: 900, 900, 900, 900, 900, 519: 900, 900, 900, 900, 525: 900, 900}, - {473: 903}, - {659: 5388}, - {659: 5387}, - {473: 901}, + {904, 904, 7: 904, 47: 904, 472: 904, 474: 904, 480: 904, 904, 483: 904, 904, 488: 904, 904, 491: 904, 493: 904, 904, 904, 904, 904, 500: 904, 502: 904, 904, 904, 513: 904, 904, 904, 904, 904, 519: 904, 904, 904, 904, 525: 904, 904}, + {473: 907}, + {659: 5393}, + {659: 5392}, + {473: 905}, // 2880 - {473: 902}, - {473: 905, 494: 905}, - {473: 906, 494: 906}, - {473: 907, 494: 907}, - {86: 5397, 309: 5396, 393: 5395, 473: 1004, 1314: 5394}, + {473: 906}, + {473: 909, 494: 909}, + {473: 910, 494: 910}, + {473: 911, 494: 911}, + {86: 5402, 309: 5401, 393: 5400, 473: 1008, 1315: 5399}, // 2885 - {916, 916, 7: 916, 47: 916, 472: 916, 474: 916, 480: 916, 916, 483: 916, 916, 488: 916, 916, 493: 916, 916, 916, 916, 916, 500: 916, 502: 916, 504: 916, 513: 916, 916, 916, 916, 916, 519: 916, 916, 916, 916}, - {473: 5398}, - {473: 1003}, - {473: 1002}, - {473: 1001}, - // 2890 - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 5400, 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 2724, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 5399}, - {47: 1000, 371: 5408, 505: 3313, 509: 3311, 3312, 3310, 3308, 524: 5407, 733: 3309, 3307, 1316: 5406}, - {997, 997, 7: 997, 47: 997, 212: 5402, 472: 997, 474: 997, 480: 997, 997, 483: 997, 997, 488: 997, 997, 493: 997, 997, 997, 997, 997, 500: 997, 502: 997, 504: 997, 513: 997, 997, 997, 997, 997, 519: 997, 997, 997, 997, 1112: 5401}, - {1005, 1005, 7: 1005, 47: 1005, 472: 1005, 474: 1005, 480: 1005, 1005, 483: 1005, 1005, 488: 1005, 1005, 493: 1005, 1005, 1005, 1005, 1005, 500: 1005, 502: 1005, 504: 1005, 513: 1005, 1005, 1005, 1005, 1005, 519: 1005, 1005, 1005, 1005}, + {920, 920, 7: 920, 47: 920, 472: 920, 474: 920, 480: 920, 920, 483: 920, 920, 488: 920, 920, 493: 920, 920, 920, 920, 920, 500: 920, 502: 920, 504: 920, 513: 920, 920, 920, 920, 920, 519: 920, 920, 920, 920}, {473: 5403}, + {473: 1007}, + {473: 1006}, + {473: 1005}, + // 2890 + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 5405, 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 2729, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 5404}, + {47: 1004, 371: 5413, 505: 3318, 509: 3316, 3317, 3315, 3313, 524: 5412, 733: 3314, 3312, 1317: 5411}, + {1001, 1001, 7: 1001, 47: 1001, 212: 5407, 472: 1001, 474: 1001, 480: 1001, 1001, 483: 1001, 1001, 488: 1001, 1001, 493: 1001, 1001, 1001, 1001, 1001, 500: 1001, 502: 1001, 504: 1001, 513: 1001, 1001, 1001, 1001, 1001, 519: 1001, 1001, 1001, 1001, 1112: 5406}, + {1009, 1009, 7: 1009, 47: 1009, 472: 1009, 474: 1009, 480: 1009, 1009, 483: 1009, 1009, 488: 1009, 1009, 493: 1009, 1009, 1009, 1009, 1009, 500: 1009, 502: 1009, 504: 1009, 513: 1009, 1009, 1009, 1009, 1009, 519: 1009, 1009, 1009, 1009}, + {473: 5408}, // 2895 - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 2724, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 5404}, - {47: 5405, 505: 3313, 509: 3311, 3312, 3310, 3308, 733: 3309, 3307}, - {996, 996, 7: 996, 47: 996, 472: 996, 474: 996, 480: 996, 996, 483: 996, 996, 488: 996, 996, 493: 996, 996, 996, 996, 996, 500: 996, 502: 996, 504: 996, 513: 996, 996, 996, 996, 996, 519: 996, 996, 996, 996}, - {47: 5409}, - {47: 999}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 2729, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 5409}, + {47: 5410, 505: 3318, 509: 3316, 3317, 3315, 3313, 733: 3314, 3312}, + {1000, 1000, 7: 1000, 47: 1000, 472: 1000, 474: 1000, 480: 1000, 1000, 483: 1000, 1000, 488: 1000, 1000, 493: 1000, 1000, 1000, 1000, 1000, 500: 1000, 502: 1000, 504: 1000, 513: 1000, 1000, 1000, 1000, 1000, 519: 1000, 1000, 1000, 1000}, + {47: 5414}, + {47: 1003}, // 2900 - {47: 998}, - {997, 997, 7: 997, 47: 997, 212: 5402, 472: 997, 474: 997, 480: 997, 997, 483: 997, 997, 488: 997, 997, 493: 997, 997, 997, 997, 997, 500: 997, 502: 997, 504: 997, 513: 997, 997, 997, 997, 997, 519: 997, 997, 997, 997, 1112: 5410}, - {1006, 1006, 7: 1006, 47: 1006, 472: 1006, 474: 1006, 480: 1006, 1006, 483: 1006, 1006, 488: 1006, 1006, 493: 1006, 1006, 1006, 1006, 1006, 500: 1006, 502: 1006, 504: 1006, 513: 1006, 1006, 1006, 1006, 1006, 519: 1006, 1006, 1006, 1006}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 2724, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 5412}, - {1851, 1851, 7: 1851, 47: 1851, 472: 1851, 474: 1851, 480: 1851, 1851, 483: 1851, 1851, 488: 1851, 1851, 491: 1851, 493: 1851, 1851, 1851, 1851, 1851, 500: 1851, 502: 1851, 1851, 1851, 3313, 509: 3311, 3312, 3310, 3308, 1851, 1851, 1851, 1851, 1851, 519: 1851, 1851, 1851, 1851, 525: 1851, 1851, 733: 3309, 3307}, + {47: 1002}, + {1001, 1001, 7: 1001, 47: 1001, 212: 5407, 472: 1001, 474: 1001, 480: 1001, 1001, 483: 1001, 1001, 488: 1001, 1001, 493: 1001, 1001, 1001, 1001, 1001, 500: 1001, 502: 1001, 504: 1001, 513: 1001, 1001, 1001, 1001, 1001, 519: 1001, 1001, 1001, 1001, 1112: 5415}, + {1010, 1010, 7: 1010, 47: 1010, 472: 1010, 474: 1010, 480: 1010, 1010, 483: 1010, 1010, 488: 1010, 1010, 493: 1010, 1010, 1010, 1010, 1010, 500: 1010, 502: 1010, 504: 1010, 513: 1010, 1010, 1010, 1010, 1010, 519: 1010, 1010, 1010, 1010}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 2729, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 5417}, + {1855, 1855, 7: 1855, 47: 1855, 472: 1855, 474: 1855, 480: 1855, 1855, 483: 1855, 1855, 488: 1855, 1855, 491: 1855, 493: 1855, 1855, 1855, 1855, 1855, 500: 1855, 502: 1855, 1855, 1855, 3318, 509: 3316, 3317, 3315, 3313, 1855, 1855, 1855, 1855, 1855, 519: 1855, 1855, 1855, 1855, 525: 1855, 1855, 733: 3314, 3312}, // 2905 - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 473: 5313, 663: 3889, 2731, 2732, 2730, 708: 5312, 736: 5311, 796: 5310, 800: 5309, 5414}, - {483: 5326, 5327, 515: 5325, 517: 5328, 519: 5324, 5329, 5330, 5415, 816: 5323, 822: 5322}, - {919, 919, 7: 919, 47: 919, 472: 919, 474: 919, 480: 919, 919, 488: 919, 919, 493: 919, 919, 919, 919, 919, 500: 919, 502: 919, 504: 919, 513: 919, 919, 516: 919}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 4111, 2731, 2732, 2730, 742: 5417, 890: 5418, 923: 5419}, - {498: 5427}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 473: 5318, 663: 3894, 2736, 2737, 2735, 708: 5317, 736: 5316, 796: 5315, 800: 5314, 5419}, + {483: 5331, 5332, 515: 5330, 517: 5333, 519: 5329, 5334, 5335, 5420, 816: 5328, 822: 5327}, + {923, 923, 7: 923, 47: 923, 472: 923, 474: 923, 480: 923, 923, 488: 923, 923, 493: 923, 923, 923, 923, 923, 500: 923, 502: 923, 504: 923, 513: 923, 923, 516: 923}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 4116, 2736, 2737, 2735, 743: 5422, 890: 5423, 923: 5424}, + {498: 5432}, // 2910 - {2332, 2332, 7: 2332, 481: 2332, 493: 2332, 497: 2332, 502: 2332}, - {245, 245, 7: 5420, 481: 245, 493: 245, 497: 2691, 502: 245, 789: 2692, 5421}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 4111, 2731, 2732, 2730, 742: 5417, 890: 5426}, - {1287, 1287, 481: 1287, 493: 1287, 502: 2694, 766: 2695, 810: 5422}, - {874, 874, 481: 874, 493: 5423, 1069: 5424}, + {2336, 2336, 7: 2336, 481: 2336, 493: 2336, 497: 2336, 502: 2336}, + {245, 245, 7: 5425, 481: 245, 493: 245, 497: 2696, 502: 245, 789: 2697, 5426}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 4116, 2736, 2737, 2735, 743: 5422, 890: 5431}, + {1291, 1291, 481: 1291, 493: 1291, 502: 2699, 766: 2700, 810: 5427}, + {878, 878, 481: 878, 493: 5428, 1069: 5429}, // 2915 - {508: 2705, 578: 2707, 732: 2704, 743: 2706, 880: 5425}, + {508: 2710, 578: 2712, 732: 2709, 742: 2711, 880: 5430}, {249, 249, 481: 249}, - {873, 873, 481: 873}, - {2331, 2331, 7: 2331, 481: 2331, 493: 2331, 497: 2331, 502: 2331}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 2724, 479: 3871, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 3867, 795: 5428}, + {877, 877, 481: 877}, + {2335, 2335, 7: 2335, 481: 2335, 493: 2335, 497: 2335, 502: 2335}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 2729, 479: 3876, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 3872, 795: 5433}, // 2920 - {2333, 2333, 7: 2333, 481: 2333, 493: 2333, 497: 2333, 502: 2333}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 4111, 2731, 2732, 2730, 742: 5417, 890: 5418, 923: 5430}, - {245, 245, 7: 5420, 481: 245, 497: 2691, 789: 2692, 5431}, + {2337, 2337, 7: 2337, 481: 2337, 493: 2337, 497: 2337, 502: 2337}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 4116, 2736, 2737, 2735, 743: 5422, 890: 5423, 923: 5435}, + {245, 245, 7: 5425, 481: 245, 497: 2696, 789: 2697, 5436}, {248, 248, 481: 248}, {2: 387, 387, 387, 387, 387, 8: 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 48: 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387}, // 2925 - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 3889, 2731, 2732, 2730, 736: 5434}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 3894, 2736, 2737, 2735, 736: 5439}, {386, 386}, - {20: 5447, 122: 5437, 124: 5440, 143: 570, 185: 5439, 192: 5450, 202: 5448, 216: 5441, 230: 5445, 252: 5449, 255: 5442, 543: 5446, 569: 5436, 1145: 5444, 1214: 5438, 1242: 5443}, - {2039, 2039, 2039, 2039, 2039, 2039, 2039, 8: 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 48: 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 474: 2039, 566: 2039}, - {2038, 2038, 2038, 2038, 2038, 2038, 2038, 8: 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 48: 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 474: 2038, 566: 2038}, + {20: 5452, 122: 5442, 124: 5445, 143: 570, 185: 5444, 192: 5455, 202: 5453, 216: 5446, 230: 5450, 252: 5454, 255: 5447, 543: 5451, 569: 5441, 1145: 5449, 1215: 5443, 1243: 5448}, + {2043, 2043, 2043, 2043, 2043, 2043, 2043, 8: 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 48: 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 2043, 474: 2043, 566: 2043}, + {2042, 2042, 2042, 2042, 2042, 2042, 2042, 8: 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 48: 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 2042, 474: 2042, 566: 2042}, // 2930 {580, 580}, {577, 577}, {576, 576}, - {208: 5457}, + {208: 5462}, {574, 574}, // 2935 - {143: 5456}, - {561, 561, 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 474: 561, 663: 3889, 2731, 2732, 2730, 736: 3890, 794: 4267, 1144: 5451}, + {143: 5461}, + {561, 561, 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 474: 561, 663: 3894, 2736, 2737, 2735, 736: 3895, 794: 4272, 1144: 5456}, {571, 571}, {143: 569}, {143: 568}, @@ -9645,1575 +9652,1583 @@ var ( {143: 567}, {143: 566}, {143: 565}, - {557, 557, 474: 5453, 1343: 5452}, + {557, 557, 474: 5458, 1344: 5457}, {572, 572}, // 2945 - {670: 5454}, - {496: 5455}, + {670: 5459}, + {496: 5460}, {556, 556}, {573, 573}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 5458, 2731, 2732, 2730, 953: 5459}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 5463, 2736, 2737, 2735, 953: 5464}, // 2950 {579, 579, 7: 579}, - {575, 575, 7: 5460}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 5461, 2731, 2732, 2730}, + {575, 575, 7: 5465}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 5466, 2736, 2737, 2735}, {578, 578, 7: 578}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 5565, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 5566, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 5567, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 3889, 2731, 2732, 2730, 736: 5568}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 5570, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 5571, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 5572, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 3894, 2736, 2737, 2735, 736: 5573}, // 2955 - {569: 5551, 648: 5552}, - {648: 5548}, - {569: 5543, 648: 5542}, - {569: 5540}, - {326: 5534}, + {569: 5556, 648: 5557}, + {648: 5553}, + {569: 5548, 648: 5547}, + {569: 5545}, + {326: 5539}, // 2960 - {139: 5531, 214: 5533, 336: 5529, 366: 5530, 912: 5532}, - {198: 5526, 201: 5525}, - {569: 5484}, - {139: 5478, 158: 5480, 167: 589, 191: 5482, 257: 5481, 1301: 5479}, - {139: 5477}, + {139: 5536, 214: 5538, 336: 5534, 366: 5535, 912: 5537}, + {198: 5531, 201: 5530}, + {569: 5489}, + {139: 5483, 158: 5485, 167: 589, 191: 5487, 257: 5486, 1302: 5484}, + {139: 5482}, // 2965 - {139: 5476}, - {396: 5475}, + {139: 5481}, + {396: 5480}, {693, 693}, {698, 698}, {699, 699}, // 2970 {700, 700}, - {167: 5483}, + {167: 5488}, {167: 588}, {167: 587}, {167: 586}, // 2975 {692, 692}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 3889, 2731, 2732, 2730, 736: 5485}, - {673: 5486, 929: 5487}, - {158: 5490, 162: 5489, 569: 2054, 948: 5488}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 3894, 2736, 2737, 2735, 736: 5490}, + {673: 5491, 929: 5492}, + {158: 5495, 163: 5494, 569: 2058, 948: 5493}, {701, 701}, // 2980 - {569: 5492}, - {122: 2053, 569: 2053}, - {162: 5491}, - {122: 2052, 569: 2052}, - {2: 1848, 1848, 1848, 1848, 1848, 8: 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 48: 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 566: 4788, 784: 5493}, + {569: 5497}, + {122: 2057, 569: 2057}, + {163: 5496}, + {122: 2056, 569: 2056}, + {2: 1852, 1852, 1852, 1852, 1852, 8: 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 48: 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 566: 4793, 784: 5498}, // 2985 - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 3889, 2731, 2732, 2730, 736: 5494}, - {433, 433, 4: 433, 433, 433, 13: 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 472: 433, 5498, 433, 478: 433, 433, 433, 482: 433, 490: 433, 433, 501: 433, 503: 433, 506: 433, 433, 518: 5497, 569: 433, 645: 433, 433, 648: 433, 1237: 5496, 1311: 5495}, - {393, 393, 4: 4206, 4208, 397, 13: 4225, 2156, 4223, 4164, 4227, 4214, 4243, 4207, 4210, 4209, 4212, 4213, 4215, 4222, 397, 4233, 4234, 4220, 4221, 4226, 4228, 4240, 4239, 4245, 4241, 4238, 4231, 4236, 4237, 4230, 4232, 4235, 4224, 472: 393, 393, 393, 478: 393, 4205, 4242, 482: 2156, 490: 393, 393, 501: 393, 503: 4934, 506: 2156, 393, 569: 393, 645: 393, 2156, 648: 4211, 779: 4216, 791: 4218, 811: 4217, 833: 4219, 837: 4229, 841: 4244, 917: 5513, 1016: 5512}, - {2159, 2159, 472: 5506, 1084: 5505}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 3889, 2731, 2732, 2730, 736: 5504}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 3894, 2736, 2737, 2735, 736: 5499}, + {433, 433, 4: 433, 433, 433, 13: 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 472: 433, 5503, 433, 478: 433, 433, 433, 482: 433, 490: 433, 433, 501: 433, 503: 433, 506: 433, 433, 518: 5502, 569: 433, 645: 433, 433, 648: 433, 1238: 5501, 1312: 5500}, + {393, 393, 4: 4211, 4213, 397, 13: 4230, 2160, 4228, 4169, 4232, 4219, 4248, 4212, 4215, 4214, 4217, 4218, 4220, 4227, 397, 4238, 4239, 4225, 4226, 4231, 4233, 4245, 4244, 4250, 4246, 4243, 4236, 4241, 4242, 4235, 4237, 4240, 4229, 472: 393, 393, 393, 478: 393, 4210, 4247, 482: 2160, 490: 393, 393, 501: 393, 503: 4939, 506: 2160, 393, 569: 393, 645: 393, 2160, 648: 4216, 779: 4221, 791: 4223, 811: 4222, 833: 4224, 837: 4234, 841: 4249, 917: 5518, 1016: 5517}, + {2163, 2163, 472: 5511, 1084: 5510}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 3894, 2736, 2737, 2735, 736: 5509}, // 2990 - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 518: 5499, 573: 2382, 582: 2382, 586: 2382, 638: 2382, 642: 4553, 648: 2382, 663: 4111, 2731, 2732, 2730, 674: 2382, 2382, 742: 4420, 831: 4774, 846: 4906, 901: 4907, 966: 4908, 1142: 5500}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 3889, 2731, 2732, 2730, 736: 5502}, - {7: 4910, 47: 5501}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 518: 5504, 573: 2386, 582: 2386, 586: 2386, 638: 2386, 642: 4558, 648: 2386, 663: 4116, 2736, 2737, 2735, 674: 2386, 2386, 743: 4425, 831: 4779, 846: 4911, 901: 4912, 966: 4913, 1142: 5505}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 3894, 2736, 2737, 2735, 736: 5507}, + {7: 4915, 47: 5506}, {432, 432, 4: 432, 432, 432, 13: 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 472: 432, 432, 432, 478: 432, 432, 432, 482: 432, 490: 432, 432, 501: 432, 503: 432, 506: 432, 432, 569: 432, 645: 432, 432, 648: 432}, - {47: 5503}, + {47: 5508}, // 2995 - {2087, 2087, 472: 2087}, - {2088, 2088, 472: 2088}, - {2160, 2160}, - {145: 5507}, - {373: 5509, 738: 5508}, + {2091, 2091, 472: 2091}, + {2092, 2092, 472: 2092}, + {2164, 2164}, + {145: 5512}, + {373: 5514, 738: 5513}, // 3000 - {524: 5511}, - {524: 5510}, - {2157, 2157}, - {2158, 2158}, - {2154, 2154, 472: 2154, 2154, 2154, 478: 2154, 490: 5515, 2154, 501: 2154, 507: 2154, 569: 2154, 645: 2154, 1097: 5514}, + {524: 5516}, + {524: 5515}, + {2161, 2161}, + {2162, 2162}, + {2158, 2158, 472: 2158, 2158, 2158, 478: 2158, 490: 5520, 2158, 501: 2158, 507: 2158, 569: 2158, 645: 2158, 1097: 5519}, // 3005 - {392, 392, 4: 4206, 4208, 397, 4936, 13: 4225, 2156, 4223, 4164, 4227, 4214, 4243, 4207, 4210, 4209, 4212, 4213, 4215, 4222, 397, 4233, 4234, 4220, 4221, 4226, 4228, 4240, 4239, 4245, 4241, 4238, 4231, 4236, 4237, 4230, 4232, 4235, 4224, 472: 392, 392, 392, 478: 392, 4205, 4242, 482: 2156, 490: 392, 392, 501: 392, 503: 4934, 506: 2156, 392, 569: 392, 645: 392, 2156, 648: 4211, 779: 4216, 791: 4218, 811: 4217, 833: 4219, 837: 4229, 841: 4935}, - {2102, 2102, 472: 2102, 2102, 2102, 478: 2102, 491: 5104, 501: 2102, 507: 5105, 569: 2102, 645: 2102, 1036: 5516}, - {659: 4986}, - {2099, 2099, 472: 2099, 2099, 2099, 478: 5518, 501: 2099, 569: 2099, 645: 2099, 1172: 5517}, - {2097, 2097, 472: 2097, 2559, 2558, 501: 2557, 569: 2556, 645: 2552, 708: 5523, 747: 5521, 2553, 2554, 2555, 2564, 755: 2562, 2561, 2560, 3848, 5522, 5520, 1194: 5519}, + {392, 392, 4: 4211, 4213, 397, 4941, 13: 4230, 2160, 4228, 4169, 4232, 4219, 4248, 4212, 4215, 4214, 4217, 4218, 4220, 4227, 397, 4238, 4239, 4225, 4226, 4231, 4233, 4245, 4244, 4250, 4246, 4243, 4236, 4241, 4242, 4235, 4237, 4240, 4229, 472: 392, 392, 392, 478: 392, 4210, 4247, 482: 2160, 490: 392, 392, 501: 392, 503: 4939, 506: 2160, 392, 569: 392, 645: 392, 2160, 648: 4216, 779: 4221, 791: 4223, 811: 4222, 833: 4224, 837: 4234, 841: 4940}, + {2106, 2106, 472: 2106, 2106, 2106, 478: 2106, 491: 5109, 501: 2106, 507: 5110, 569: 2106, 645: 2106, 1036: 5521}, + {659: 4991}, + {2103, 2103, 472: 2103, 2103, 2103, 478: 5523, 501: 2103, 569: 2103, 645: 2103, 1173: 5522}, + {2101, 2101, 472: 2101, 2564, 2563, 501: 2562, 569: 2561, 645: 2557, 708: 5528, 747: 5526, 2558, 2559, 2560, 2569, 755: 2567, 2566, 2565, 3853, 5527, 5525, 1195: 5524}, // 3010 - {2098, 2098, 472: 2098, 2098, 2098, 501: 2098, 569: 2098, 645: 2098}, - {2159, 2159, 472: 5506, 1084: 5524}, - {2096, 2096, 472: 2096}, - {2095, 2095, 472: 2095, 480: 806, 488: 806, 806}, - {2094, 2094, 472: 2094}, + {2102, 2102, 472: 2102, 2102, 2102, 501: 2102, 569: 2102, 645: 2102}, + {2163, 2163, 472: 5511, 1084: 5529}, + {2100, 2100, 472: 2100}, + {2099, 2099, 472: 2099, 480: 810, 488: 810, 810}, + {2098, 2098, 472: 2098}, // 3015 - {2093, 2093, 472: 2093, 480: 805, 488: 805, 805, 493: 2697, 500: 2698, 502: 2694, 766: 3859, 3860}, - {2161, 2161}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 5458, 2731, 2732, 2730, 953: 5528}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 5458, 2731, 2732, 2730, 953: 5527}, - {703, 703, 7: 5460}, + {2097, 2097, 472: 2097, 480: 809, 488: 809, 809, 493: 2702, 500: 2703, 502: 2699, 766: 3864, 3865}, + {2165, 2165}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 5463, 2736, 2737, 2735, 953: 5533}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 5463, 2736, 2737, 2735, 953: 5532}, + {703, 703, 7: 5465}, // 3020 - {704, 704, 7: 5460}, + {704, 704, 7: 5465}, {706, 706}, {705, 705}, {697, 697}, {696, 696}, // 3025 {695, 695}, - {261: 5535}, - {508: 2705, 732: 4021, 763: 5537, 1080: 5536}, - {709, 709, 7: 5538}, + {261: 5540}, + {508: 2710, 732: 4026, 763: 5542, 1080: 5541}, + {710, 710, 7: 5543}, {684, 684, 7: 684}, // 3030 - {508: 2705, 732: 4021, 763: 5539}, + {508: 2710, 732: 4026, 763: 5544}, {683, 683, 7: 683}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 3889, 2731, 2732, 2730, 736: 3890, 794: 5541}, - {710, 710, 7: 3892}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 3889, 2731, 2732, 2730, 736: 5546}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 3894, 2736, 2737, 2735, 736: 3895, 794: 5546}, + {711, 711, 7: 3897}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 3894, 2736, 2737, 2735, 736: 5551}, // 3035 - {496: 5544}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 3889, 2731, 2732, 2730, 736: 3890, 794: 5545}, - {702, 702, 7: 3892}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 5547, 2731, 2732, 2730}, - {712, 712}, - // 3040 - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 3889, 2731, 2732, 2730, 736: 5549}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 5550, 2731, 2732, 2730}, + {496: 5549}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 3894, 2736, 2737, 2735, 736: 3895, 794: 5550}, + {702, 702, 7: 3897}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 5552, 2736, 2737, 2735}, {713, 713}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 3889, 2731, 2732, 2730, 736: 3890, 794: 5564}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 3889, 2731, 2732, 2730, 736: 5553}, + // 3040 + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 3894, 2736, 2737, 2735, 736: 5554}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 5555, 2736, 2737, 2735}, + {714, 714}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 3894, 2736, 2737, 2735, 736: 3895, 794: 5569}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 3894, 2736, 2737, 2735, 736: 5558}, // 3045 - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 5554, 2731, 2732, 2730}, - {714, 714, 473: 5557, 1055: 5556, 1219: 5555}, - {711, 711, 7: 5562}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 5559, 2736, 2737, 2735}, + {715, 715, 473: 5562, 1055: 5561, 1220: 5560}, + {712, 712, 7: 5567}, {687, 687, 7: 687}, - {508: 2705, 732: 4021, 763: 5558}, + {508: 2710, 732: 4026, 763: 5563}, // 3050 - {7: 5559}, - {508: 2705, 732: 4021, 763: 5560}, - {47: 5561}, + {7: 5564}, + {508: 2710, 732: 4026, 763: 5565}, + {47: 5566}, {685, 685, 7: 685}, - {473: 5557, 1055: 5563}, + {473: 5562, 1055: 5568}, // 3055 {686, 686, 7: 686}, - {715, 715, 7: 3892}, - {159: 1630, 377: 5578, 401: 5579, 651: 1630, 1163: 5577}, - {719, 719, 159: 1471, 260: 5571, 5570, 651: 1471}, - {694, 694, 159: 1451, 651: 1451}, + {716, 716, 7: 3897}, + {159: 1634, 377: 5590, 401: 5591, 651: 1634, 1163: 5589}, + {720, 720, 159: 1475, 260: 5576, 5575, 651: 1475}, + {694, 694, 159: 1455, 651: 1455}, // 3060 - {159: 5569}, - {716, 716}, - {245, 245, 497: 2691, 508: 2705, 732: 4021, 763: 5575, 789: 2692, 5574}, - {376: 5572}, - {508: 2705, 732: 4021, 763: 5537, 1080: 5573}, + {159: 5574}, + {717, 717}, + {245, 245, 497: 2696, 508: 2710, 732: 4026, 763: 5587, 789: 2697, 5586}, + {376: 5577}, + {493: 5578, 508: 2710, 732: 4026, 763: 5542, 1080: 5579, 1164: 5580}, // 3065 - {708, 708, 7: 5538}, + {508: 2710, 732: 2709, 742: 5581}, + {709, 709, 7: 5543}, + {708, 708}, + {723, 723, 7: 5582, 160: 5583}, + {508: 2710, 732: 2709, 742: 5585}, + // 3070 + {508: 2710, 732: 2709, 742: 5584}, + {721, 721}, + {722, 722}, + {719, 719}, + {245, 245, 497: 2696, 789: 2697, 5588}, + // 3075 {718, 718}, - {245, 245, 497: 2691, 789: 2692, 5576}, - {717, 717}, {707, 707}, - // 3070 - {508: 2705, 732: 5585}, - {347: 5581, 508: 2705, 650: 5582, 732: 5580}, + {508: 2710, 732: 5597}, + {347: 5593, 508: 2710, 650: 5594, 732: 5592}, {690, 690}, - {508: 2705, 732: 5584}, - {508: 2705, 732: 5583}, - // 3075 + // 3080 + {508: 2710, 732: 5596}, + {508: 2710, 732: 5595}, {688, 688}, {689, 689}, {691, 691}, - {2: 267, 267, 267, 267, 267, 8: 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 48: 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 475: 267, 479: 267, 498: 1794, 543: 267, 651: 1794, 658: 1794}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 475: 5738, 498: 1792, 651: 1792, 658: 1792, 663: 5737, 2731, 2732, 2730}, - // 3080 - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 5735, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 498: 1755, 651: 1755, 658: 1755, 663: 5599, 2731, 2732, 2730, 829: 5642}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 498: 1749, 651: 1749, 658: 1749, 663: 5599, 2731, 2732, 2730, 829: 5732}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 475: 3458, 479: 5728, 498: 1747, 543: 3729, 651: 1747, 658: 1747, 663: 3459, 2731, 2732, 2730, 737: 3728, 806: 5727}, - {494: 5717, 498: 5716, 651: 1742, 658: 1742}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 5622, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 5623, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 475: 5627, 479: 5713, 498: 1733, 650: 5711, 1733, 658: 1733, 663: 3459, 2731, 2732, 2730, 737: 5149, 799: 5629, 819: 5630, 5628, 860: 5626, 1123: 5712, 1286: 5710}, // 3085 - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 5708, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 498: 1731, 651: 1731, 658: 1731, 663: 5599, 2731, 2732, 2730, 829: 5639}, - {177: 5693, 498: 1714, 651: 1714, 658: 1714, 670: 5694, 919: 5692, 969: 5691}, - {328: 5647, 330: 5646, 498: 1658, 651: 1658, 658: 1658, 1176: 5648}, - {475: 5645, 498: 1460, 651: 1460, 658: 1460}, - {798, 798, 7: 5635}, + {2: 267, 267, 267, 267, 267, 8: 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 48: 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 475: 267, 479: 267, 498: 1798, 543: 267, 651: 1798, 658: 1798}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 475: 5750, 498: 1796, 651: 1796, 658: 1796, 663: 5749, 2736, 2737, 2735}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 5747, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 498: 1759, 651: 1759, 658: 1759, 663: 5611, 2736, 2737, 2735, 829: 5654}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 498: 1753, 651: 1753, 658: 1753, 663: 5611, 2736, 2737, 2735, 829: 5744}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 475: 3463, 479: 5740, 498: 1751, 543: 3734, 651: 1751, 658: 1751, 663: 3464, 2736, 2737, 2735, 737: 3733, 806: 5739}, // 3090 - {169: 5621}, - {498: 766, 651: 5619, 658: 766}, - {498: 5608, 658: 5609, 823: 5617}, - {498: 5608, 658: 5609, 823: 5612}, - {498: 5608, 658: 5609, 823: 5610}, + {494: 5729, 498: 5728, 651: 1746, 658: 1746}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 5634, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 5635, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 475: 5639, 479: 5725, 498: 1737, 650: 5723, 1737, 658: 1737, 663: 3464, 2736, 2737, 2735, 737: 5154, 799: 5641, 819: 5642, 5640, 860: 5638, 1123: 5724, 1287: 5722}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 5720, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 498: 1735, 651: 1735, 658: 1735, 663: 5611, 2736, 2737, 2735, 829: 5651}, + {177: 5705, 498: 1718, 651: 1718, 658: 1718, 670: 5706, 919: 5704, 969: 5703}, + {328: 5659, 330: 5658, 498: 1662, 651: 1662, 658: 1662, 1177: 5660}, // 3095 - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 475: 3458, 479: 5607, 543: 3729, 663: 3459, 2731, 2732, 2730, 737: 3728, 806: 5606, 1181: 5605}, - {744, 744, 7: 744}, - {751, 751, 7: 751}, - {750, 750, 7: 750}, - {749, 749, 7: 749}, + {475: 5657, 498: 1464, 651: 1464, 658: 1464}, + {802, 802, 7: 5647}, + {169: 5633}, + {498: 770, 651: 5631, 658: 770}, + {498: 5620, 658: 5621, 823: 5629}, // 3100 - {2: 768, 768, 768, 768, 768, 8: 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 48: 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 475: 768, 768, 768, 479: 768, 483: 768, 768, 768, 768, 768, 492: 768, 501: 768, 506: 768, 768, 768, 543: 768, 566: 768, 768, 768, 570: 768, 768, 768, 574: 768, 768, 768, 768, 768, 768, 768, 768, 583: 768, 768, 587: 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 639: 768, 768, 768, 647: 768}, - {2: 767, 767, 767, 767, 767, 8: 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 48: 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 475: 767, 767, 767, 479: 767, 483: 767, 767, 767, 767, 767, 492: 767, 501: 767, 506: 767, 767, 767, 543: 767, 566: 767, 767, 767, 570: 767, 767, 767, 574: 767, 767, 767, 767, 767, 767, 767, 767, 583: 767, 767, 587: 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 767, 639: 767, 767, 767, 647: 767}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 2724, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 5611}, - {756, 756, 7: 756, 505: 3313, 509: 3311, 3312, 3310, 3308, 733: 3309, 3307}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 5614, 3229, 475: 3208, 3227, 2724, 479: 3871, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 5613, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 3867, 795: 5615, 839: 5616}, + {498: 5620, 658: 5621, 823: 5624}, + {498: 5620, 658: 5621, 823: 5622}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 475: 3463, 479: 5619, 543: 3734, 663: 3464, 2736, 2737, 2735, 737: 3733, 806: 5618, 1182: 5617}, + {748, 748, 7: 748}, + {755, 755, 7: 755}, // 3105 - {770, 770, 2971, 2816, 2852, 2973, 2743, 770, 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 3317, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3316, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3834, 3222, 3302, 3221, 3218}, - {771, 771, 7: 771}, - {769, 769, 7: 769}, - {757, 757, 7: 757}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 5614, 3229, 475: 3208, 3227, 2724, 479: 3871, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 5613, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 3867, 795: 5615, 839: 5618}, + {754, 754, 7: 754}, + {753, 753, 7: 753}, + {2: 772, 772, 772, 772, 772, 8: 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 48: 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 475: 772, 772, 772, 479: 772, 483: 772, 772, 772, 772, 772, 492: 772, 501: 772, 506: 772, 772, 772, 543: 772, 566: 772, 772, 772, 570: 772, 772, 772, 574: 772, 772, 772, 772, 772, 772, 772, 772, 583: 772, 772, 587: 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 639: 772, 772, 772, 647: 772}, + {2: 771, 771, 771, 771, 771, 8: 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 48: 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 475: 771, 771, 771, 479: 771, 483: 771, 771, 771, 771, 771, 492: 771, 501: 771, 506: 771, 771, 771, 543: 771, 566: 771, 771, 771, 570: 771, 771, 771, 574: 771, 771, 771, 771, 771, 771, 771, 771, 583: 771, 771, 587: 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 639: 771, 771, 771, 647: 771}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 2729, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 5623}, // 3110 - {761, 761, 7: 761}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 5620, 2731, 2732, 2730}, - {498: 765, 658: 765}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 5622, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 5623, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 475: 5627, 650: 5625, 663: 3459, 2731, 2732, 2730, 737: 5149, 799: 5629, 819: 5630, 5628, 860: 5626, 1123: 5624}, - {728, 728, 7: 728, 568: 1822, 649: 728, 662: 1822}, + {760, 760, 7: 760, 505: 3318, 509: 3316, 3317, 3315, 3313, 733: 3314, 3312}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 5626, 3234, 475: 3213, 3232, 2729, 479: 3876, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 5625, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 3872, 795: 5627, 839: 5628}, + {774, 774, 2976, 2821, 2857, 2978, 2748, 774, 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 3322, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3321, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3839, 3227, 3307, 3226, 3223}, + {775, 775, 7: 775}, + {773, 773, 7: 773}, // 3115 - {787, 787, 568: 1653, 649: 787, 662: 1653}, - {649: 5633}, - {649: 786}, - {785, 785, 7: 5631, 649: 785}, - {729, 729, 7: 729, 568: 256, 649: 729, 662: 256}, + {761, 761, 7: 761}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 5626, 3234, 475: 3213, 3232, 2729, 479: 3876, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 5625, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 3872, 795: 5627, 839: 5630}, + {765, 765, 7: 765}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 5632, 2736, 2737, 2735}, + {498: 769, 658: 769}, // 3120 - {723, 723, 7: 723, 649: 723}, - {722, 722, 7: 722, 649: 722}, - {721, 721, 7: 721, 649: 721}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 5622, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 475: 5627, 663: 3459, 2731, 2732, 2730, 737: 5149, 799: 5629, 819: 5632, 5628}, - {720, 720, 7: 720, 649: 720}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 5634, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 5635, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 475: 5639, 650: 5637, 663: 3464, 2736, 2737, 2735, 737: 5154, 799: 5641, 819: 5642, 5640, 860: 5638, 1123: 5636}, + {732, 732, 7: 732, 568: 1826, 649: 732, 662: 1826}, + {791, 791, 568: 1657, 649: 791, 662: 1657}, + {649: 5645}, + {649: 790}, // 3125 - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 475: 3458, 570: 5195, 663: 3459, 2731, 2732, 2730, 737: 5194, 776: 5196, 866: 5634}, - {788, 788, 7: 5198}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 5586, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 5589, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 5636, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 5637, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 5590, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 506: 3805, 568: 5602, 590: 5601, 646: 3803, 663: 5599, 2731, 2732, 2730, 772: 5603, 829: 5600, 976: 5638}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 498: 1755, 651: 1755, 658: 1755, 663: 5599, 2731, 2732, 2730, 829: 5642}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 498: 1731, 651: 1731, 658: 1731, 663: 5599, 2731, 2732, 2730, 829: 5639}, + {789, 789, 7: 5643, 649: 789}, + {733, 733, 7: 733, 568: 256, 649: 733, 662: 256}, + {727, 727, 7: 727, 649: 727}, + {726, 726, 7: 726, 649: 726}, + {725, 725, 7: 725, 649: 725}, // 3130 - {743, 743, 7: 743}, - {498: 5608, 658: 5609, 823: 5640}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 5614, 3229, 475: 3208, 3227, 2724, 479: 3871, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 5613, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 3867, 795: 5615, 839: 5641}, - {759, 759, 7: 759}, - {498: 5608, 658: 5609, 823: 5643}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 5634, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 475: 5639, 663: 3464, 2736, 2737, 2735, 737: 5154, 799: 5641, 819: 5644, 5640}, + {724, 724, 7: 724, 649: 724}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 475: 3463, 570: 5200, 663: 3464, 2736, 2737, 2735, 737: 5199, 776: 5201, 866: 5646}, + {792, 792, 7: 5203}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 5598, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 5601, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 5648, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 5649, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 5602, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 506: 3810, 568: 5614, 590: 5613, 646: 3808, 663: 5611, 2736, 2737, 2735, 772: 5615, 829: 5612, 976: 5650}, // 3135 - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 5614, 3229, 475: 3208, 3227, 2724, 479: 3871, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 5613, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 3867, 795: 5615, 839: 5644}, - {760, 760, 7: 760}, - {790, 790}, - {494: 2196}, - {494: 2195}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 498: 1759, 651: 1759, 658: 1759, 663: 5611, 2736, 2737, 2735, 829: 5654}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 498: 1735, 651: 1735, 658: 1735, 663: 5611, 2736, 2737, 2735, 829: 5651}, + {747, 747, 7: 747}, + {498: 5620, 658: 5621, 823: 5652}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 5626, 3234, 475: 3213, 3232, 2729, 479: 3876, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 5625, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 3872, 795: 5627, 839: 5653}, // 3140 - {494: 5649}, - {473: 2559, 2558, 501: 2557, 507: 2543, 567: 2542, 569: 2556, 645: 2552, 653: 2660, 708: 5652, 738: 5650, 747: 5653, 2553, 2554, 2555, 2564, 755: 2562, 2561, 2560, 5651, 5655, 5654, 765: 5657, 771: 2659, 773: 5658, 5659, 5656, 844: 5660}, - {2: 844, 844, 844, 844, 844, 8: 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 48: 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 491: 844, 499: 844, 752: 844, 844, 844, 761: 5296, 865: 5297, 916: 5664}, - {473: 2559, 501: 2557, 569: 2556, 645: 2552, 653: 2660, 708: 3856, 747: 3855, 2553, 2554, 2555, 2564, 755: 2562, 3857, 3858, 771: 5663}, - {183, 183, 480: 805, 183, 488: 805, 805, 493: 2697, 500: 2698, 502: 2694, 766: 3859, 3860}, + {763, 763, 7: 763}, + {498: 5620, 658: 5621, 823: 5655}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 5626, 3234, 475: 3213, 3232, 2729, 479: 3876, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 5625, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 3872, 795: 5627, 839: 5656}, + {764, 764, 7: 764}, + {794, 794}, // 3145 - {185, 185, 480: 806, 185, 488: 806, 806}, + {494: 2200}, + {494: 2199}, + {494: 5661}, + {473: 2564, 2563, 501: 2562, 507: 2548, 567: 2547, 569: 2561, 645: 2557, 653: 2665, 708: 5664, 738: 5662, 747: 5665, 2558, 2559, 2560, 2569, 755: 2567, 2566, 2565, 5663, 5667, 5666, 765: 5669, 771: 2664, 773: 5670, 5671, 5668, 844: 5672}, + {2: 848, 848, 848, 848, 848, 8: 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 48: 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 491: 848, 499: 848, 752: 848, 848, 848, 761: 5301, 865: 5302, 916: 5676}, + // 3150 + {473: 2564, 501: 2562, 569: 2561, 645: 2557, 653: 2665, 708: 3861, 747: 3860, 2558, 2559, 2560, 2569, 755: 2567, 3862, 3863, 771: 5675}, + {183, 183, 480: 809, 183, 488: 809, 809, 493: 2702, 500: 2703, 502: 2699, 766: 3864, 3865}, + {185, 185, 480: 810, 185, 488: 810, 810}, {186, 186, 481: 186}, {184, 184, 481: 184}, + // 3155 {182, 182, 481: 182}, {181, 181, 481: 181}, - // 3150 {180, 180, 481: 180}, {179, 179, 481: 179}, - {175, 175, 481: 5661}, - {473: 2559, 2558, 501: 2557, 507: 2543, 567: 2542, 569: 2556, 645: 2552, 653: 2660, 708: 5652, 738: 5650, 747: 5653, 2553, 2554, 2555, 2564, 755: 2562, 2561, 2560, 5651, 5655, 5654, 765: 5657, 771: 2659, 773: 5658, 5659, 5656, 844: 5662}, + {175, 175, 481: 5673}, + // 3160 + {473: 2564, 2563, 501: 2562, 507: 2548, 567: 2547, 569: 2561, 645: 2557, 653: 2665, 708: 5664, 738: 5662, 747: 5665, 2558, 2559, 2560, 2569, 755: 2567, 2566, 2565, 5663, 5667, 5666, 765: 5669, 771: 2664, 773: 5670, 5671, 5668, 844: 5674}, {174, 174}, - // 3155 {250, 250, 481: 250}, - {2: 1048, 1048, 1048, 1048, 1048, 8: 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 48: 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 491: 1048, 499: 1048, 752: 5301, 5300, 5299, 836: 5302, 885: 5665}, - {2: 1036, 1036, 1036, 1036, 1036, 8: 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 48: 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 5667, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 491: 1036, 499: 1036, 1106: 5666}, - {2: 1846, 1846, 1846, 1846, 1846, 8: 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 48: 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 491: 4158, 499: 1846, 853: 5668}, - {2: 1035, 1035, 1035, 1035, 1035, 8: 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 48: 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 491: 1035, 499: 1035}, - // 3160 - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 499: 5669, 663: 5671, 2731, 2732, 2730, 915: 5672, 965: 5670}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 3889, 2731, 2732, 2730, 736: 5684}, - {7: 5680, 499: 5679}, - {7: 1038, 481: 1038, 499: 1038, 651: 5674, 905: 5673}, - {7: 1040, 481: 1040, 499: 1040}, + {2: 1052, 1052, 1052, 1052, 1052, 8: 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 48: 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 491: 1052, 499: 1052, 752: 5306, 5305, 5304, 836: 5307, 885: 5677}, + {2: 1040, 1040, 1040, 1040, 1040, 8: 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 48: 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 5679, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 491: 1040, 499: 1040, 1106: 5678}, // 3165 - {7: 1042, 481: 1042, 499: 1042}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 523: 5676, 663: 5675, 2731, 2732, 2730}, - {7: 1038, 481: 1038, 499: 1038, 651: 5678, 905: 5677}, - {7: 1037, 481: 1037, 499: 1037}, - {7: 1041, 481: 1041, 499: 1041}, + {2: 1850, 1850, 1850, 1850, 1850, 8: 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 48: 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 491: 4163, 499: 1850, 853: 5680}, + {2: 1039, 1039, 1039, 1039, 1039, 8: 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 48: 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 491: 1039, 499: 1039}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 499: 5681, 663: 5683, 2736, 2737, 2735, 915: 5684, 965: 5682}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 3894, 2736, 2737, 2735, 736: 5696}, + {7: 5692, 499: 5691}, // 3170 - {523: 5676}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 473: 5313, 579: 5308, 663: 3889, 2731, 2732, 2730, 708: 5312, 736: 5311, 796: 5310, 800: 5309, 5315, 850: 5305, 888: 5682}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 5671, 2731, 2732, 2730, 915: 5681}, - {7: 1039, 481: 1039, 499: 1039}, - {245, 245, 7: 5359, 481: 245, 497: 2691, 789: 2692, 5683}, + {7: 1042, 481: 1042, 499: 1042, 651: 5686, 905: 5685}, + {7: 1044, 481: 1044, 499: 1044}, + {7: 1046, 481: 1046, 499: 1046}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 523: 5688, 663: 5687, 2736, 2737, 2735}, + {7: 1042, 481: 1042, 499: 1042, 651: 5690, 905: 5689}, // 3175 - {2064, 2064, 481: 2064}, - {913, 913, 913, 913, 913, 913, 913, 8: 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 48: 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 478: 913, 481: 913, 490: 5363, 913, 493: 913, 497: 913, 502: 913, 913, 525: 913, 858: 5685}, - {911, 911, 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 478: 5320, 481: 911, 491: 911, 493: 911, 497: 911, 502: 911, 911, 525: 911, 663: 5319, 2731, 2732, 2730, 913: 5318, 5686}, - {892, 892, 481: 892, 491: 5373, 493: 892, 497: 892, 502: 892, 5374, 525: 5372, 938: 5376, 5375, 1060: 5377, 5687}, - {245, 245, 481: 245, 493: 245, 497: 2691, 502: 245, 789: 2692, 5688}, + {7: 1041, 481: 1041, 499: 1041}, + {7: 1045, 481: 1045, 499: 1045}, + {523: 5688}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 473: 5318, 579: 5313, 663: 3894, 2736, 2737, 2735, 708: 5317, 736: 5316, 796: 5315, 800: 5314, 5320, 850: 5310, 888: 5694}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 5683, 2736, 2737, 2735, 915: 5693}, // 3180 - {1287, 1287, 481: 1287, 493: 1287, 502: 2694, 766: 2695, 810: 5689}, - {874, 874, 481: 874, 493: 5423, 1069: 5690}, - {2065, 2065, 481: 2065}, - {793, 793, 7: 5706}, - {781, 781, 7: 781}, + {7: 1043, 481: 1043, 499: 1043}, + {245, 245, 7: 5364, 481: 245, 497: 2696, 789: 2697, 5695}, + {2068, 2068, 481: 2068}, + {917, 917, 917, 917, 917, 917, 917, 8: 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 48: 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 478: 917, 481: 917, 490: 5368, 917, 493: 917, 497: 917, 502: 917, 917, 525: 917, 858: 5697}, + {915, 915, 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 478: 5325, 481: 915, 491: 915, 493: 915, 497: 915, 502: 915, 915, 525: 915, 663: 5324, 2736, 2737, 2735, 913: 5323, 5698}, // 3185 - {353: 5698}, - {151: 5696, 686: 5695}, - {778, 778, 7: 778}, - {777, 777, 7: 777, 672: 5369, 922: 5697}, - {776, 776, 7: 776}, + {896, 896, 481: 896, 491: 5378, 493: 896, 497: 896, 502: 896, 5379, 525: 5377, 938: 5381, 5380, 1060: 5382, 5699}, + {245, 245, 481: 245, 493: 245, 497: 2696, 502: 245, 789: 2697, 5700}, + {1291, 1291, 481: 1291, 493: 1291, 502: 2699, 766: 2700, 810: 5701}, + {878, 878, 481: 878, 493: 5428, 1069: 5702}, + {2069, 2069, 481: 2069}, // 3190 - {212: 5700, 384: 5702, 670: 5701, 1232: 5699}, - {779, 779, 7: 779}, - {670: 5705}, - {322: 5703, 404: 5704}, - {772, 772, 7: 772}, + {797, 797, 7: 5718}, + {785, 785, 7: 785}, + {353: 5710}, + {151: 5708, 686: 5707}, + {782, 782, 7: 782}, // 3195 - {774, 774, 7: 774}, - {773, 773, 7: 773}, - {775, 775, 7: 775}, - {177: 5693, 670: 5694, 919: 5707}, + {781, 781, 7: 781, 672: 5374, 922: 5709}, {780, 780, 7: 780}, + {212: 5712, 384: 5714, 670: 5713, 1233: 5711}, + {783, 783, 7: 783}, + {670: 5717}, // 3200 - {177: 5693, 498: 1714, 651: 1714, 658: 1714, 670: 5694, 919: 5692, 969: 5709}, - {794, 794, 7: 5706}, - {789, 789}, - {786, 786, 488: 5714}, - {783, 783}, + {322: 5715, 404: 5716}, + {776, 776, 7: 776}, + {778, 778, 7: 778}, + {777, 777, 7: 777}, + {779, 779, 7: 779}, // 3205 - {782, 782}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 5622, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 475: 5627, 663: 3459, 2731, 2732, 2730, 737: 5149, 799: 5629, 819: 5630, 5628, 860: 5715}, - {784, 784, 7: 5631}, - {13: 5722, 475: 5721, 1098: 5726}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 475: 3458, 570: 5195, 663: 3459, 2731, 2732, 2730, 737: 5194, 776: 5718}, + {177: 5705, 670: 5706, 919: 5719}, + {784, 784, 7: 784}, + {177: 5705, 498: 1718, 651: 1718, 658: 1718, 670: 5706, 919: 5704, 969: 5721}, + {798, 798, 7: 5718}, + {793, 793}, // 3210 - {498: 5719}, - {13: 5722, 475: 5721, 1098: 5720}, - {796, 796}, - {732, 732}, - {473: 5723}, + {790, 790, 488: 5726}, + {787, 787}, + {786, 786}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 5634, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 475: 5639, 663: 3464, 2736, 2737, 2735, 737: 5154, 799: 5641, 819: 5642, 5640, 860: 5727}, + {788, 788, 7: 5643}, // 3215 - {475: 5228, 891: 5724}, - {47: 5725}, - {731, 731}, - {797, 797}, - {755, 755, 7: 755, 482: 5729}, + {13: 5734, 475: 5733, 1098: 5738}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 475: 3463, 570: 5200, 663: 3464, 2736, 2737, 2735, 737: 5199, 776: 5730}, + {498: 5731}, + {13: 5734, 475: 5733, 1098: 5732}, + {800, 800}, // 3220 - {752, 752, 7: 752}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 475: 3458, 479: 5730, 663: 3459, 2731, 2732, 2730, 737: 5731}, - {754, 754, 7: 754}, - {753, 753, 7: 753}, - {498: 5608, 658: 5609, 823: 5733}, + {736, 736}, + {473: 5735}, + {475: 5233, 891: 5736}, + {47: 5737}, + {735, 735}, // 3225 - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 5614, 3229, 475: 3208, 3227, 2724, 479: 3871, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 5613, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 3867, 795: 5615, 839: 5734}, + {801, 801}, + {759, 759, 7: 759, 482: 5741}, + {756, 756, 7: 756}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 475: 3463, 479: 5742, 663: 3464, 2736, 2737, 2735, 737: 5743}, {758, 758, 7: 758}, - {177: 5693, 498: 1714, 651: 1714, 658: 1714, 670: 5694, 919: 5692, 969: 5736}, - {795, 795, 7: 5706}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 5740, 2731, 2732, 2730, 900: 5747}, // 3230 - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 5740, 2731, 2732, 2730, 900: 5739}, - {498: 5608, 658: 5609, 823: 5745}, - {486: 5742, 498: 764, 651: 5741, 658: 764}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 5740, 2731, 2732, 2730, 900: 5744}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 5740, 2731, 2732, 2730, 900: 5743}, + {757, 757, 7: 757}, + {498: 5620, 658: 5621, 823: 5745}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 5626, 3234, 475: 3213, 3232, 2729, 479: 3876, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 5625, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 3872, 795: 5627, 839: 5746}, + {762, 762, 7: 762}, + {177: 5705, 498: 1718, 651: 1718, 658: 1718, 670: 5706, 919: 5704, 969: 5748}, // 3235 - {498: 762, 658: 762}, - {498: 763, 658: 763}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 5614, 3229, 475: 3208, 3227, 2724, 479: 3871, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 5613, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 3867, 795: 5615, 839: 5746}, - {791, 791}, - {498: 5608, 658: 5609, 823: 5748}, + {799, 799, 7: 5718}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 5752, 2736, 2737, 2735, 900: 5759}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 5752, 2736, 2737, 2735, 900: 5751}, + {498: 5620, 658: 5621, 823: 5757}, + {486: 5754, 498: 768, 651: 5753, 658: 768}, // 3240 - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 5614, 3229, 475: 3208, 3227, 2724, 479: 3871, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 5613, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 3867, 795: 5615, 839: 5749}, - {792, 792}, - {649: 5759}, - {649: 5752}, - {267: 5753}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 5752, 2736, 2737, 2735, 900: 5756}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 5752, 2736, 2737, 2735, 900: 5755}, + {498: 766, 658: 766}, + {498: 767, 658: 767}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 5626, 3234, 475: 3213, 3232, 2729, 479: 3876, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 5625, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 3872, 795: 5627, 839: 5758}, // 3245 - {498: 5754}, - {475: 5755}, - {494: 5756}, - {266: 5757}, - {475: 5758}, + {795, 795}, + {498: 5620, 658: 5621, 823: 5760}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 5626, 3234, 475: 3213, 3232, 2729, 479: 3876, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 5625, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 3872, 795: 5627, 839: 5761}, + {796, 796}, + {649: 5771}, // 3250 - {799, 799}, - {267: 5760}, - {498: 5761}, - {475: 5762}, - {494: 5763}, + {649: 5764}, + {267: 5765}, + {498: 5766}, + {475: 5767}, + {494: 5768}, // 3255 - {266: 5764}, - {475: 5765}, - {800, 800}, - {473: 2559, 501: 2557, 569: 2556, 645: 2552, 708: 5777, 747: 5776, 2553, 2554, 2555, 5778}, - {473: 1229, 501: 1229, 569: 1229, 645: 1229, 650: 3514, 744: 3512, 3513, 783: 5770, 786: 5771, 931: 5773, 964: 5775}, + {266: 5769}, + {475: 5770}, + {803, 803}, + {267: 5772}, + {498: 5773}, // 3260 - {473: 1229, 501: 1229, 569: 1229, 645: 1229, 650: 3514, 744: 3512, 3513, 783: 5770, 786: 5771, 931: 5773, 964: 5774}, - {473: 1229, 501: 1229, 569: 1229, 645: 1229, 650: 3514, 744: 3512, 3513, 783: 5770, 786: 5771, 931: 5773, 964: 5772}, - {2: 1232, 1232, 1232, 1232, 1232, 8: 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 48: 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 473: 1232, 475: 1232, 1232, 1232, 479: 1232, 483: 1232, 1232, 1232, 1232, 1232, 492: 1232, 501: 1232, 506: 1232, 1232, 1232, 515: 1232, 523: 1232, 543: 1232, 566: 1232, 1232, 1232, 1232, 1232, 1232, 1232, 574: 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 583: 1232, 1232, 587: 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 639: 1232, 1232, 1232, 645: 1232, 647: 1232, 650: 1232, 744: 1232, 1232, 752: 1232, 1232, 1232, 761: 1232, 768: 1232, 1232, 1232}, - {473: 1228, 501: 1228, 569: 1228, 645: 1228}, - {473: 802, 501: 802, 569: 802, 645: 802}, + {475: 5774}, + {494: 5775}, + {266: 5776}, + {475: 5777}, + {804, 804}, // 3265 - {473: 801, 501: 801, 569: 801, 645: 801}, - {473: 803, 501: 803, 569: 803, 645: 803}, - {473: 804, 501: 804, 569: 804, 645: 804}, - {816, 816, 47: 816, 472: 816, 474: 816, 480: 806, 816, 488: 806, 806}, - {815, 815, 47: 815, 472: 815, 474: 815, 480: 805, 815, 488: 805, 805, 493: 2697, 500: 2698, 502: 2694, 766: 5779, 5780}, + {473: 2564, 501: 2562, 569: 2561, 645: 2557, 708: 5789, 747: 5788, 2558, 2559, 2560, 5790}, + {473: 1233, 501: 1233, 569: 1233, 645: 1233, 650: 3519, 744: 3517, 3518, 783: 5782, 786: 5783, 931: 5785, 964: 5787}, + {473: 1233, 501: 1233, 569: 1233, 645: 1233, 650: 3519, 744: 3517, 3518, 783: 5782, 786: 5783, 931: 5785, 964: 5786}, + {473: 1233, 501: 1233, 569: 1233, 645: 1233, 650: 3519, 744: 3517, 3518, 783: 5782, 786: 5783, 931: 5785, 964: 5784}, + {2: 1236, 1236, 1236, 1236, 1236, 8: 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 48: 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 473: 1236, 475: 1236, 1236, 1236, 479: 1236, 483: 1236, 1236, 1236, 1236, 1236, 492: 1236, 501: 1236, 506: 1236, 1236, 1236, 515: 1236, 523: 1236, 543: 1236, 566: 1236, 1236, 1236, 1236, 1236, 1236, 1236, 574: 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 583: 1236, 1236, 587: 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 639: 1236, 1236, 1236, 645: 1236, 647: 1236, 650: 1236, 744: 1236, 1236, 752: 1236, 1236, 1236, 761: 1236, 768: 1236, 1236, 1236}, // 3270 - {480: 807, 488: 807, 807}, - {814, 814, 47: 814, 472: 814, 474: 814, 481: 814, 493: 2697, 500: 2698, 767: 5781}, - {813, 813, 47: 813, 472: 813, 474: 813, 481: 813}, - {812, 812, 47: 812, 472: 812, 474: 812, 481: 812}, - {47: 3942, 480: 805, 488: 805, 805, 493: 2697, 500: 2698, 502: 2694, 766: 3859, 3860}, + {473: 1232, 501: 1232, 569: 1232, 645: 1232}, + {473: 806, 501: 806, 569: 806, 645: 806}, + {473: 805, 501: 805, 569: 805, 645: 805}, + {473: 807, 501: 807, 569: 807, 645: 807}, + {473: 808, 501: 808, 569: 808, 645: 808}, // 3275 - {7: 5797, 473: 988, 501: 988, 569: 988, 645: 988, 653: 988, 738: 988}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 5786, 2731, 2732, 2730, 928: 5785, 1161: 5796}, - {7: 985, 473: 985, 501: 985, 569: 985, 645: 985, 653: 985, 738: 985}, - {473: 5787, 478: 2307, 1220: 5788}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 5792, 2731, 2732, 2730, 875: 5791}, + {820, 820, 47: 820, 472: 820, 474: 820, 480: 810, 820, 488: 810, 810}, + {819, 819, 47: 819, 472: 819, 474: 819, 480: 809, 819, 488: 809, 809, 493: 2702, 500: 2703, 502: 2699, 766: 5791, 5792}, + {480: 811, 488: 811, 811}, + {818, 818, 47: 818, 472: 818, 474: 818, 481: 818, 493: 2702, 500: 2703, 767: 5793}, + {817, 817, 47: 817, 472: 817, 474: 817, 481: 817}, // 3280 - {478: 5789}, - {473: 2559, 708: 5790}, - {7: 984, 473: 984, 501: 984, 569: 984, 645: 984, 653: 984, 738: 984}, - {7: 5794, 47: 5793}, - {2305, 2305, 7: 2305, 47: 2305, 474: 2305}, + {816, 816, 47: 816, 472: 816, 474: 816, 481: 816}, + {47: 3947, 480: 809, 488: 809, 809, 493: 2702, 500: 2703, 502: 2699, 766: 3864, 3865}, + {7: 5809, 473: 992, 501: 992, 569: 992, 645: 992, 653: 992, 738: 992}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 5798, 2736, 2737, 2735, 928: 5797, 1161: 5808}, + {7: 989, 473: 989, 501: 989, 569: 989, 645: 989, 653: 989, 738: 989}, // 3285 - {478: 2306}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 5795, 2731, 2732, 2730}, - {2304, 2304, 7: 2304, 47: 2304, 474: 2304}, - {7: 5797, 473: 987, 501: 987, 569: 987, 645: 987, 653: 987, 738: 987}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 5786, 2731, 2732, 2730, 928: 5798}, + {473: 5799, 478: 2311, 1221: 5800}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 5804, 2736, 2737, 2735, 875: 5803}, + {478: 5801}, + {473: 2564, 708: 5802}, + {7: 988, 473: 988, 501: 988, 569: 988, 645: 988, 653: 988, 738: 988}, // 3290 - {7: 986, 473: 986, 501: 986, 569: 986, 645: 986, 653: 986, 738: 986}, - {1287, 1287, 47: 1287, 472: 1287, 474: 1287, 480: 1287, 1287, 488: 1287, 1287, 493: 1287, 1287, 1287, 1287, 500: 1287, 502: 2694, 766: 2695, 810: 5800}, - {860, 860, 47: 860, 472: 860, 474: 860, 480: 860, 860, 488: 860, 860, 493: 2697, 860, 860, 860, 500: 2698, 767: 2699, 828: 5801}, - {831, 831, 47: 831, 472: 831, 474: 831, 480: 831, 831, 488: 831, 831, 494: 3880, 831, 3881, 886: 5802}, - {837, 837, 47: 837, 472: 837, 474: 837, 480: 837, 837, 488: 837, 837, 495: 3906, 887: 5803}, + {7: 5806, 47: 5805}, + {2309, 2309, 7: 2309, 47: 2309, 474: 2309}, + {478: 2310}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 5807, 2736, 2737, 2735}, + {2308, 2308, 7: 2308, 47: 2308, 474: 2308}, // 3295 - {992, 992, 47: 992, 472: 992, 474: 992, 480: 992, 992, 488: 992, 992}, - {860, 860, 47: 860, 472: 860, 474: 860, 480: 860, 860, 488: 860, 860, 493: 2697, 860, 860, 860, 500: 2698, 767: 2699, 828: 5805}, - {831, 831, 47: 831, 472: 831, 474: 831, 480: 831, 831, 488: 831, 831, 494: 3880, 831, 3881, 886: 5806}, - {837, 837, 47: 837, 472: 837, 474: 837, 480: 837, 837, 488: 837, 837, 495: 3906, 887: 5807}, - {993, 993, 47: 993, 472: 993, 474: 993, 480: 993, 993, 488: 993, 993}, + {7: 5809, 473: 991, 501: 991, 569: 991, 645: 991, 653: 991, 738: 991}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 5798, 2736, 2737, 2735, 928: 5810}, + {7: 990, 473: 990, 501: 990, 569: 990, 645: 990, 653: 990, 738: 990}, + {1291, 1291, 47: 1291, 472: 1291, 474: 1291, 480: 1291, 1291, 488: 1291, 1291, 493: 1291, 1291, 1291, 1291, 500: 1291, 502: 2699, 766: 2700, 810: 5812}, + {864, 864, 47: 864, 472: 864, 474: 864, 480: 864, 864, 488: 864, 864, 493: 2702, 864, 864, 864, 500: 2703, 767: 2704, 828: 5813}, // 3300 - {659: 5815}, - {1287, 1287, 47: 1287, 472: 1287, 474: 1287, 480: 1287, 1287, 488: 1287, 1287, 493: 1287, 1287, 1287, 1287, 500: 1287, 502: 2694, 766: 2695, 810: 5811}, - {838, 838, 47: 838, 472: 838, 474: 838, 480: 838, 838, 488: 838, 838, 493: 838, 838, 838, 838, 500: 838, 502: 838, 514: 838, 516: 838}, - {860, 860, 47: 860, 472: 860, 474: 860, 480: 860, 860, 488: 860, 860, 493: 2697, 860, 860, 860, 500: 2698, 767: 2699, 828: 5812}, - {831, 831, 47: 831, 472: 831, 474: 831, 480: 831, 831, 488: 831, 831, 494: 3880, 831, 3881, 886: 5813}, + {835, 835, 47: 835, 472: 835, 474: 835, 480: 835, 835, 488: 835, 835, 494: 3885, 835, 3886, 886: 5814}, + {841, 841, 47: 841, 472: 841, 474: 841, 480: 841, 841, 488: 841, 841, 495: 3911, 887: 5815}, + {996, 996, 47: 996, 472: 996, 474: 996, 480: 996, 996, 488: 996, 996}, + {864, 864, 47: 864, 472: 864, 474: 864, 480: 864, 864, 488: 864, 864, 493: 2702, 864, 864, 864, 500: 2703, 767: 2704, 828: 5817}, + {835, 835, 47: 835, 472: 835, 474: 835, 480: 835, 835, 488: 835, 835, 494: 3885, 835, 3886, 886: 5818}, // 3305 - {837, 837, 47: 837, 472: 837, 474: 837, 480: 837, 837, 488: 837, 837, 495: 3906, 887: 5814}, - {994, 994, 47: 994, 472: 994, 474: 994, 480: 994, 994, 488: 994, 994}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 2724, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 2723, 869: 3210, 898: 5816}, - {1856, 1856, 7: 3380, 47: 1856, 472: 1856, 474: 1856, 480: 1856, 1856, 488: 1856, 1856, 493: 1856, 1856, 1856, 1856, 500: 1856, 502: 1856, 514: 1856, 516: 1856}, - {245, 245, 47: 245, 472: 245, 474: 245, 480: 245, 245, 488: 245, 245, 493: 245, 245, 245, 245, 2691, 500: 245, 502: 245, 513: 245, 789: 2692, 5842}, + {841, 841, 47: 841, 472: 841, 474: 841, 480: 841, 841, 488: 841, 841, 495: 3911, 887: 5819}, + {997, 997, 47: 997, 472: 997, 474: 997, 480: 997, 997, 488: 997, 997}, + {659: 5827}, + {1291, 1291, 47: 1291, 472: 1291, 474: 1291, 480: 1291, 1291, 488: 1291, 1291, 493: 1291, 1291, 1291, 1291, 500: 1291, 502: 2699, 766: 2700, 810: 5823}, + {842, 842, 47: 842, 472: 842, 474: 842, 480: 842, 842, 488: 842, 842, 493: 842, 842, 842, 842, 500: 842, 502: 842, 514: 842, 516: 842}, // 3310 - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 473: 5313, 579: 5308, 663: 3889, 2731, 2732, 2730, 708: 5312, 736: 5311, 796: 5310, 800: 5309, 5315, 850: 5305, 888: 5827, 1201: 5826, 1313: 5825}, - {839, 839, 47: 839, 472: 839, 474: 839, 480: 839, 839, 488: 839, 839, 493: 839, 839, 839, 839, 500: 839, 502: 839, 513: 5808, 937: 5810, 963: 5820}, - {1287, 1287, 47: 1287, 472: 1287, 474: 1287, 480: 1287, 1287, 488: 1287, 1287, 493: 1287, 1287, 1287, 1287, 500: 1287, 502: 2694, 766: 2695, 810: 5821}, - {860, 860, 47: 860, 472: 860, 474: 860, 480: 860, 860, 488: 860, 860, 493: 2697, 860, 860, 860, 500: 2698, 767: 2699, 828: 5822}, - {831, 831, 47: 831, 472: 831, 474: 831, 480: 831, 831, 488: 831, 831, 494: 3880, 831, 3881, 886: 5823}, + {864, 864, 47: 864, 472: 864, 474: 864, 480: 864, 864, 488: 864, 864, 493: 2702, 864, 864, 864, 500: 2703, 767: 2704, 828: 5824}, + {835, 835, 47: 835, 472: 835, 474: 835, 480: 835, 835, 488: 835, 835, 494: 3885, 835, 3886, 886: 5825}, + {841, 841, 47: 841, 472: 841, 474: 841, 480: 841, 841, 488: 841, 841, 495: 3911, 887: 5826}, + {998, 998, 47: 998, 472: 998, 474: 998, 480: 998, 998, 488: 998, 998}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 2729, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 2728, 869: 3215, 898: 5828}, // 3315 - {837, 837, 47: 837, 472: 837, 474: 837, 480: 837, 837, 488: 837, 837, 495: 3906, 887: 5824}, - {995, 995, 47: 995, 472: 995, 474: 995, 480: 995, 995, 488: 995, 995}, - {245, 245, 47: 245, 472: 245, 474: 245, 480: 245, 245, 488: 245, 245, 493: 245, 245, 245, 245, 2691, 500: 245, 502: 245, 513: 245, 245, 516: 245, 789: 2692, 5828}, - {983, 983, 47: 983, 472: 983, 474: 983, 480: 983, 983, 488: 983, 983, 493: 983, 983, 983, 983, 983, 500: 983, 502: 983, 513: 983}, - {923, 923, 7: 5359, 47: 923, 472: 923, 474: 923, 480: 923, 923, 488: 923, 923, 493: 923, 923, 923, 923, 923, 500: 923, 502: 923, 513: 923, 923, 516: 923}, + {1860, 1860, 7: 3385, 47: 1860, 472: 1860, 474: 1860, 480: 1860, 1860, 488: 1860, 1860, 493: 1860, 1860, 1860, 1860, 500: 1860, 502: 1860, 514: 1860, 516: 1860}, + {245, 245, 47: 245, 472: 245, 474: 245, 480: 245, 245, 488: 245, 245, 493: 245, 245, 245, 245, 2696, 500: 245, 502: 245, 513: 245, 789: 2697, 5854}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 473: 5318, 579: 5313, 663: 3894, 2736, 2737, 2735, 708: 5317, 736: 5316, 796: 5315, 800: 5314, 5320, 850: 5310, 888: 5839, 1202: 5838, 1314: 5837}, + {843, 843, 47: 843, 472: 843, 474: 843, 480: 843, 843, 488: 843, 843, 493: 843, 843, 843, 843, 500: 843, 502: 843, 513: 5820, 937: 5822, 963: 5832}, + {1291, 1291, 47: 1291, 472: 1291, 474: 1291, 480: 1291, 1291, 488: 1291, 1291, 493: 1291, 1291, 1291, 1291, 500: 1291, 502: 2699, 766: 2700, 810: 5833}, // 3320 - {839, 839, 47: 839, 472: 839, 474: 839, 480: 839, 839, 488: 839, 839, 493: 839, 839, 839, 839, 500: 839, 502: 839, 513: 5808, 839, 516: 839, 937: 5810, 963: 5829}, - {1855, 1855, 47: 1855, 472: 1855, 474: 1855, 480: 1855, 1855, 488: 1855, 1855, 493: 1855, 1855, 1855, 1855, 500: 1855, 502: 1855, 514: 5830, 516: 1855, 1057: 5831}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 2724, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 5841}, - {982, 982, 47: 982, 472: 982, 474: 982, 480: 982, 982, 488: 982, 982, 493: 982, 982, 982, 982, 500: 982, 502: 982, 516: 5833, 1336: 5832}, - {1008, 1008, 47: 1008, 472: 1008, 474: 1008, 480: 1008, 1008, 488: 1008, 1008, 493: 1008, 1008, 1008, 1008, 500: 1008, 502: 1008}, + {864, 864, 47: 864, 472: 864, 474: 864, 480: 864, 864, 488: 864, 864, 493: 2702, 864, 864, 864, 500: 2703, 767: 2704, 828: 5834}, + {835, 835, 47: 835, 472: 835, 474: 835, 480: 835, 835, 488: 835, 835, 494: 3885, 835, 3886, 886: 5835}, + {841, 841, 47: 841, 472: 841, 474: 841, 480: 841, 841, 488: 841, 841, 495: 3911, 887: 5836}, + {999, 999, 47: 999, 472: 999, 474: 999, 480: 999, 999, 488: 999, 999}, + {245, 245, 47: 245, 472: 245, 474: 245, 480: 245, 245, 488: 245, 245, 493: 245, 245, 245, 245, 2696, 500: 245, 502: 245, 513: 245, 245, 516: 245, 789: 2697, 5840}, // 3325 - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 3368, 2731, 2732, 2730, 921: 5836, 1157: 5835, 1337: 5834}, - {981, 981, 7: 5839, 47: 981, 472: 981, 474: 981, 480: 981, 981, 488: 981, 981, 493: 981, 981, 981, 981, 500: 981, 502: 981}, - {980, 980, 7: 980, 47: 980, 472: 980, 474: 980, 480: 980, 980, 488: 980, 980, 493: 980, 980, 980, 980, 500: 980, 502: 980}, - {478: 5837}, - {473: 3369, 1159: 5838}, + {987, 987, 47: 987, 472: 987, 474: 987, 480: 987, 987, 488: 987, 987, 493: 987, 987, 987, 987, 987, 500: 987, 502: 987, 513: 987}, + {927, 927, 7: 5364, 47: 927, 472: 927, 474: 927, 480: 927, 927, 488: 927, 927, 493: 927, 927, 927, 927, 927, 500: 927, 502: 927, 513: 927, 927, 516: 927}, + {843, 843, 47: 843, 472: 843, 474: 843, 480: 843, 843, 488: 843, 843, 493: 843, 843, 843, 843, 500: 843, 502: 843, 513: 5820, 843, 516: 843, 937: 5822, 963: 5841}, + {1859, 1859, 47: 1859, 472: 1859, 474: 1859, 480: 1859, 1859, 488: 1859, 1859, 493: 1859, 1859, 1859, 1859, 500: 1859, 502: 1859, 514: 5842, 516: 1859, 1057: 5843}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 2729, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 5853}, // 3330 - {978, 978, 7: 978, 47: 978, 472: 978, 474: 978, 480: 978, 978, 488: 978, 978, 493: 978, 978, 978, 978, 500: 978, 502: 978}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 3368, 2731, 2732, 2730, 921: 5836, 1157: 5840}, - {979, 979, 7: 979, 47: 979, 472: 979, 474: 979, 480: 979, 979, 488: 979, 979, 493: 979, 979, 979, 979, 500: 979, 502: 979}, - {1854, 1854, 47: 1854, 472: 1854, 474: 1854, 480: 1854, 1854, 488: 1854, 1854, 493: 1854, 1854, 1854, 1854, 1854, 499: 1854, 1854, 502: 1854, 505: 3313, 509: 3311, 3312, 3310, 3308, 1854, 516: 1854, 733: 3309, 3307}, - {1009, 1009, 47: 1009, 472: 1009, 474: 1009, 480: 1009, 1009, 488: 1009, 1009, 493: 1009, 1009, 1009, 1009, 500: 1009, 502: 1009, 513: 1009}, + {986, 986, 47: 986, 472: 986, 474: 986, 480: 986, 986, 488: 986, 986, 493: 986, 986, 986, 986, 500: 986, 502: 986, 516: 5845, 1337: 5844}, + {1012, 1012, 47: 1012, 472: 1012, 474: 1012, 480: 1012, 1012, 488: 1012, 1012, 493: 1012, 1012, 1012, 1012, 500: 1012, 502: 1012}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 3373, 2736, 2737, 2735, 921: 5848, 1157: 5847, 1338: 5846}, + {985, 985, 7: 5851, 47: 985, 472: 985, 474: 985, 480: 985, 985, 488: 985, 985, 493: 985, 985, 985, 985, 500: 985, 502: 985}, + {984, 984, 7: 984, 47: 984, 472: 984, 474: 984, 480: 984, 984, 488: 984, 984, 493: 984, 984, 984, 984, 500: 984, 502: 984}, // 3335 - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 2724, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 523: 5859, 543: 3233, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 663: 5860, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 5858, 1045: 5861, 1209: 5862, 1281: 5863}, + {478: 5849}, + {473: 3374, 1159: 5850}, + {982, 982, 7: 982, 47: 982, 472: 982, 474: 982, 480: 982, 982, 488: 982, 982, 493: 982, 982, 982, 982, 500: 982, 502: 982}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 3373, 2736, 2737, 2735, 921: 5848, 1157: 5852}, + {983, 983, 7: 983, 47: 983, 472: 983, 474: 983, 480: 983, 983, 488: 983, 983, 493: 983, 983, 983, 983, 500: 983, 502: 983}, + // 3340 + {1858, 1858, 47: 1858, 472: 1858, 474: 1858, 480: 1858, 1858, 488: 1858, 1858, 493: 1858, 1858, 1858, 1858, 1858, 499: 1858, 1858, 502: 1858, 505: 3318, 509: 3316, 3317, 3315, 3313, 1858, 516: 1858, 733: 3314, 3312}, + {1013, 1013, 47: 1013, 472: 1013, 474: 1013, 480: 1013, 1013, 488: 1013, 1013, 493: 1013, 1013, 1013, 1013, 500: 1013, 502: 1013, 513: 1013}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 2729, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 523: 5871, 543: 3238, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 663: 5872, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 5870, 1045: 5873, 1210: 5874, 1282: 5875}, + {2: 862, 862, 862, 862, 862, 8: 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 48: 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 473: 862, 475: 862, 862, 862, 479: 862, 483: 862, 862, 862, 862, 862, 492: 862, 501: 862, 506: 862, 862, 862, 515: 862, 523: 862, 543: 862, 566: 862, 862, 862, 570: 862, 862, 862, 574: 862, 862, 862, 862, 862, 862, 862, 862, 583: 862, 862, 587: 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 639: 862, 862, 862, 647: 862, 650: 862, 744: 862, 862, 752: 862, 862, 862, 761: 862, 768: 862, 862, 862}, + {2: 861, 861, 861, 861, 861, 8: 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 48: 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 473: 861, 475: 861, 861, 861, 479: 861, 483: 861, 861, 861, 861, 861, 492: 861, 501: 861, 506: 861, 861, 861, 515: 861, 523: 861, 543: 861, 566: 861, 861, 861, 570: 861, 861, 861, 574: 861, 861, 861, 861, 861, 861, 861, 861, 583: 861, 861, 587: 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 639: 861, 861, 861, 647: 861, 650: 861, 744: 861, 861, 752: 861, 861, 861, 761: 861, 768: 861, 861, 861}, + // 3345 + {2: 860, 860, 860, 860, 860, 8: 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 48: 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 473: 860, 475: 860, 860, 860, 479: 860, 483: 860, 860, 860, 860, 860, 492: 860, 501: 860, 506: 860, 860, 860, 515: 860, 523: 860, 543: 860, 566: 860, 860, 860, 570: 860, 860, 860, 574: 860, 860, 860, 860, 860, 860, 860, 860, 583: 860, 860, 587: 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 860, 639: 860, 860, 860, 647: 860, 650: 860, 744: 860, 860, 752: 860, 860, 860, 761: 860, 768: 860, 860, 860}, + {2: 859, 859, 859, 859, 859, 8: 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 48: 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 473: 859, 475: 859, 859, 859, 479: 859, 483: 859, 859, 859, 859, 859, 492: 859, 501: 859, 506: 859, 859, 859, 515: 859, 523: 859, 543: 859, 566: 859, 859, 859, 570: 859, 859, 859, 574: 859, 859, 859, 859, 859, 859, 859, 859, 583: 859, 859, 587: 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, 639: 859, 859, 859, 647: 859, 650: 859, 744: 859, 859, 752: 859, 859, 859, 761: 859, 768: 859, 859, 859}, {2: 858, 858, 858, 858, 858, 8: 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 48: 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 473: 858, 475: 858, 858, 858, 479: 858, 483: 858, 858, 858, 858, 858, 492: 858, 501: 858, 506: 858, 858, 858, 515: 858, 523: 858, 543: 858, 566: 858, 858, 858, 570: 858, 858, 858, 574: 858, 858, 858, 858, 858, 858, 858, 858, 583: 858, 858, 587: 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, 639: 858, 858, 858, 647: 858, 650: 858, 744: 858, 858, 752: 858, 858, 858, 761: 858, 768: 858, 858, 858}, {2: 857, 857, 857, 857, 857, 8: 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 48: 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 473: 857, 475: 857, 857, 857, 479: 857, 483: 857, 857, 857, 857, 857, 492: 857, 501: 857, 506: 857, 857, 857, 515: 857, 523: 857, 543: 857, 566: 857, 857, 857, 570: 857, 857, 857, 574: 857, 857, 857, 857, 857, 857, 857, 857, 583: 857, 857, 587: 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 639: 857, 857, 857, 647: 857, 650: 857, 744: 857, 857, 752: 857, 857, 857, 761: 857, 768: 857, 857, 857}, {2: 856, 856, 856, 856, 856, 8: 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 48: 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 473: 856, 475: 856, 856, 856, 479: 856, 483: 856, 856, 856, 856, 856, 492: 856, 501: 856, 506: 856, 856, 856, 515: 856, 523: 856, 543: 856, 566: 856, 856, 856, 570: 856, 856, 856, 574: 856, 856, 856, 856, 856, 856, 856, 856, 583: 856, 856, 587: 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 639: 856, 856, 856, 647: 856, 650: 856, 744: 856, 856, 752: 856, 856, 856, 761: 856, 768: 856, 856, 856}, + // 3350 {2: 855, 855, 855, 855, 855, 8: 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 48: 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 473: 855, 475: 855, 855, 855, 479: 855, 483: 855, 855, 855, 855, 855, 492: 855, 501: 855, 506: 855, 855, 855, 515: 855, 523: 855, 543: 855, 566: 855, 855, 855, 570: 855, 855, 855, 574: 855, 855, 855, 855, 855, 855, 855, 855, 583: 855, 855, 587: 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 639: 855, 855, 855, 647: 855, 650: 855, 744: 855, 855, 752: 855, 855, 855, 761: 855, 768: 855, 855, 855}, - // 3340 {2: 854, 854, 854, 854, 854, 8: 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 48: 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 473: 854, 475: 854, 854, 854, 479: 854, 483: 854, 854, 854, 854, 854, 492: 854, 501: 854, 506: 854, 854, 854, 515: 854, 523: 854, 543: 854, 566: 854, 854, 854, 570: 854, 854, 854, 574: 854, 854, 854, 854, 854, 854, 854, 854, 583: 854, 854, 587: 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 639: 854, 854, 854, 647: 854, 650: 854, 744: 854, 854, 752: 854, 854, 854, 761: 854, 768: 854, 854, 854}, - {2: 853, 853, 853, 853, 853, 8: 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 48: 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 473: 853, 475: 853, 853, 853, 479: 853, 483: 853, 853, 853, 853, 853, 492: 853, 501: 853, 506: 853, 853, 853, 515: 853, 523: 853, 543: 853, 566: 853, 853, 853, 570: 853, 853, 853, 574: 853, 853, 853, 853, 853, 853, 853, 853, 583: 853, 853, 587: 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 853, 639: 853, 853, 853, 647: 853, 650: 853, 744: 853, 853, 752: 853, 853, 853, 761: 853, 768: 853, 853, 853}, - {2: 852, 852, 852, 852, 852, 8: 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 48: 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 473: 852, 475: 852, 852, 852, 479: 852, 483: 852, 852, 852, 852, 852, 492: 852, 501: 852, 506: 852, 852, 852, 515: 852, 523: 852, 543: 852, 566: 852, 852, 852, 570: 852, 852, 852, 574: 852, 852, 852, 852, 852, 852, 852, 852, 583: 852, 852, 587: 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 639: 852, 852, 852, 647: 852, 650: 852, 744: 852, 852, 752: 852, 852, 852, 761: 852, 768: 852, 852, 852}, - {2: 851, 851, 851, 851, 851, 8: 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 48: 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 473: 851, 475: 851, 851, 851, 479: 851, 483: 851, 851, 851, 851, 851, 492: 851, 501: 851, 506: 851, 851, 851, 515: 851, 523: 851, 543: 851, 566: 851, 851, 851, 570: 851, 851, 851, 574: 851, 851, 851, 851, 851, 851, 851, 851, 583: 851, 851, 587: 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 639: 851, 851, 851, 647: 851, 650: 851, 744: 851, 851, 752: 851, 851, 851, 761: 851, 768: 851, 851, 851}, + {2: 852, 852, 852, 852, 852, 8: 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 48: 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 5861, 5867, 5868, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 473: 852, 475: 852, 852, 852, 479: 852, 483: 852, 852, 852, 852, 852, 492: 852, 501: 852, 506: 852, 852, 852, 515: 5864, 523: 852, 543: 852, 566: 852, 852, 852, 570: 852, 852, 852, 574: 852, 852, 852, 852, 852, 852, 852, 852, 583: 852, 852, 587: 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 639: 852, 852, 852, 647: 852, 650: 3519, 744: 3517, 3518, 752: 5306, 5305, 5304, 761: 5301, 768: 5860, 5863, 5859, 783: 5782, 786: 5857, 836: 5858, 865: 5856, 1120: 5869, 5862}, {2: 850, 850, 850, 850, 850, 8: 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 48: 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 473: 850, 475: 850, 850, 850, 479: 850, 483: 850, 850, 850, 850, 850, 492: 850, 501: 850, 506: 850, 850, 850, 515: 850, 523: 850, 543: 850, 566: 850, 850, 850, 570: 850, 850, 850, 574: 850, 850, 850, 850, 850, 850, 850, 850, 583: 850, 850, 587: 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 639: 850, 850, 850, 647: 850, 650: 850, 744: 850, 850, 752: 850, 850, 850, 761: 850, 768: 850, 850, 850}, - // 3345 - {2: 848, 848, 848, 848, 848, 8: 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 48: 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 5849, 5855, 5856, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 473: 848, 475: 848, 848, 848, 479: 848, 483: 848, 848, 848, 848, 848, 492: 848, 501: 848, 506: 848, 848, 848, 515: 5852, 523: 848, 543: 848, 566: 848, 848, 848, 570: 848, 848, 848, 574: 848, 848, 848, 848, 848, 848, 848, 848, 583: 848, 848, 587: 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 848, 639: 848, 848, 848, 647: 848, 650: 3514, 744: 3512, 3513, 752: 5301, 5300, 5299, 761: 5296, 768: 5848, 5851, 5847, 783: 5770, 786: 5845, 836: 5846, 865: 5844, 1120: 5857, 5850}, {2: 846, 846, 846, 846, 846, 8: 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 48: 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 473: 846, 475: 846, 846, 846, 479: 846, 483: 846, 846, 846, 846, 846, 492: 846, 501: 846, 506: 846, 846, 846, 515: 846, 523: 846, 543: 846, 566: 846, 846, 846, 570: 846, 846, 846, 574: 846, 846, 846, 846, 846, 846, 846, 846, 583: 846, 846, 587: 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 639: 846, 846, 846, 647: 846, 650: 846, 744: 846, 846, 752: 846, 846, 846, 761: 846, 768: 846, 846, 846}, - {2: 842, 842, 842, 842, 842, 8: 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 48: 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 473: 842, 475: 842, 842, 842, 479: 842, 483: 842, 842, 842, 842, 842, 492: 842, 501: 842, 506: 842, 842, 842, 515: 842, 523: 842, 543: 842, 566: 842, 842, 842, 570: 842, 842, 842, 574: 842, 842, 842, 842, 842, 842, 842, 842, 583: 842, 842, 587: 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 842, 639: 842, 842, 842, 647: 842, 650: 842, 744: 842, 842, 752: 842, 842, 842, 761: 842, 768: 842, 842, 842}, - {2: 841, 841, 841, 841, 841, 8: 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 48: 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 473: 841, 475: 841, 841, 841, 479: 841, 483: 841, 841, 841, 841, 841, 492: 841, 501: 841, 506: 841, 841, 841, 515: 841, 523: 841, 543: 841, 566: 841, 841, 841, 570: 841, 841, 841, 574: 841, 841, 841, 841, 841, 841, 841, 841, 583: 841, 841, 587: 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 841, 639: 841, 841, 841, 647: 841, 650: 841, 744: 841, 841, 752: 841, 841, 841, 761: 841, 768: 841, 841, 841}, - {2: 847, 847, 847, 847, 847, 8: 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 48: 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 473: 847, 475: 847, 847, 847, 479: 847, 483: 847, 847, 847, 847, 847, 492: 847, 501: 847, 506: 847, 847, 847, 515: 847, 523: 847, 543: 847, 566: 847, 847, 847, 570: 847, 847, 847, 574: 847, 847, 847, 847, 847, 847, 847, 847, 583: 847, 847, 587: 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 639: 847, 847, 847, 647: 847, 650: 847, 744: 847, 847, 752: 847, 847, 847, 761: 847, 768: 847, 847, 847}, - // 3350 - {1864, 1864, 2971, 2816, 2852, 2973, 2743, 1864, 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 1864, 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 1864, 474: 1864, 5876, 478: 5875, 480: 1864, 1864, 488: 1864, 1864, 493: 1864, 1864, 1864, 1864, 1864, 499: 1864, 1864, 502: 1864, 505: 3313, 509: 3311, 3312, 3310, 3308, 1864, 1864, 663: 5874, 2731, 2732, 2730, 733: 3309, 3307, 1206: 5873, 5872}, - {1868, 1868, 7: 1868, 47: 1868, 472: 1868, 474: 1868, 480: 1868, 1868, 488: 1868, 1868, 493: 1868, 1868, 1868, 1868, 1868, 499: 1868, 1868, 502: 1868, 513: 1868, 1868}, - {1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 474: 1269, 1269, 1269, 1269, 1269, 480: 1269, 1269, 1269, 485: 1269, 1269, 1269, 1269, 1269, 493: 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 502: 1269, 505: 1269, 509: 1269, 1269, 1269, 1269, 1269, 1269, 518: 1269, 523: 1269, 544: 1269, 547: 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 585: 1269, 651: 5867, 654: 1269, 1269}, - {1858, 1858, 7: 1858, 47: 1858, 472: 1858, 474: 1858, 480: 1858, 1858, 488: 1858, 1858, 493: 1858, 1858, 1858, 1858, 1858, 499: 1858, 1858, 502: 1858, 513: 1858, 1858}, - {840, 840, 7: 5865, 47: 840, 472: 840, 474: 840, 480: 840, 840, 488: 840, 840, 493: 840, 840, 840, 840, 840, 499: 840, 840, 502: 840, 513: 840, 840}, // 3355 - {1855, 1855, 47: 1855, 472: 1855, 474: 1855, 480: 1855, 1855, 488: 1855, 1855, 493: 1855, 1855, 1855, 1855, 1855, 499: 1855, 1855, 502: 1855, 513: 1855, 5830, 1057: 5864}, - {1010, 1010, 47: 1010, 472: 1010, 474: 1010, 480: 1010, 1010, 488: 1010, 1010, 493: 1010, 1010, 1010, 1010, 1010, 499: 1010, 1010, 502: 1010, 513: 1010}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 2724, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 523: 5859, 543: 3233, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 663: 5860, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 5858, 1045: 5866}, - {1857, 1857, 7: 1857, 47: 1857, 472: 1857, 474: 1857, 480: 1857, 1857, 488: 1857, 1857, 493: 1857, 1857, 1857, 1857, 1857, 499: 1857, 1857, 502: 1857, 513: 1857, 1857}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 523: 5868, 663: 5869, 2731, 2732, 2730}, + {2: 845, 845, 845, 845, 845, 8: 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 48: 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 473: 845, 475: 845, 845, 845, 479: 845, 483: 845, 845, 845, 845, 845, 492: 845, 501: 845, 506: 845, 845, 845, 515: 845, 523: 845, 543: 845, 566: 845, 845, 845, 570: 845, 845, 845, 574: 845, 845, 845, 845, 845, 845, 845, 845, 583: 845, 845, 587: 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 639: 845, 845, 845, 647: 845, 650: 845, 744: 845, 845, 752: 845, 845, 845, 761: 845, 768: 845, 845, 845}, + {2: 851, 851, 851, 851, 851, 8: 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 48: 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 473: 851, 475: 851, 851, 851, 479: 851, 483: 851, 851, 851, 851, 851, 492: 851, 501: 851, 506: 851, 851, 851, 515: 851, 523: 851, 543: 851, 566: 851, 851, 851, 570: 851, 851, 851, 574: 851, 851, 851, 851, 851, 851, 851, 851, 583: 851, 851, 587: 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 639: 851, 851, 851, 647: 851, 650: 851, 744: 851, 851, 752: 851, 851, 851, 761: 851, 768: 851, 851, 851}, + {1868, 1868, 2976, 2821, 2857, 2978, 2748, 1868, 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 1868, 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 1868, 474: 1868, 5888, 478: 5887, 480: 1868, 1868, 488: 1868, 1868, 493: 1868, 1868, 1868, 1868, 1868, 499: 1868, 1868, 502: 1868, 505: 3318, 509: 3316, 3317, 3315, 3313, 1868, 1868, 663: 5886, 2736, 2737, 2735, 733: 3314, 3312, 1207: 5885, 5884}, + {1872, 1872, 7: 1872, 47: 1872, 472: 1872, 474: 1872, 480: 1872, 1872, 488: 1872, 1872, 493: 1872, 1872, 1872, 1872, 1872, 499: 1872, 1872, 502: 1872, 513: 1872, 1872}, + {1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 474: 1273, 1273, 1273, 1273, 1273, 480: 1273, 1273, 1273, 485: 1273, 1273, 1273, 1273, 1273, 493: 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 502: 1273, 505: 1273, 509: 1273, 1273, 1273, 1273, 1273, 1273, 518: 1273, 523: 1273, 544: 1273, 547: 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 585: 1273, 651: 5879, 654: 1273, 1273}, // 3360 - {1867, 1867, 7: 1867, 47: 1867, 472: 1867, 474: 1867, 480: 1867, 1867, 488: 1867, 1867, 493: 1867, 1867, 1867, 1867, 1867, 499: 1867, 1867, 502: 1867, 513: 1867, 1867}, - {1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 3958, 1268, 1268, 1268, 1268, 1268, 480: 1268, 1268, 1268, 485: 1268, 1268, 1268, 1268, 1268, 493: 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 502: 1268, 505: 1268, 509: 1268, 1268, 1268, 1268, 1268, 1268, 518: 1268, 523: 1268, 544: 1268, 547: 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 585: 1268, 651: 5870, 654: 1268, 1268}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 523: 5871, 663: 3754, 2731, 2732, 2730}, - {1866, 1866, 7: 1866, 47: 1866, 472: 1866, 474: 1866, 480: 1866, 1866, 488: 1866, 1866, 493: 1866, 1866, 1866, 1866, 1866, 499: 1866, 1866, 502: 1866, 513: 1866, 1866}, - {1865, 1865, 7: 1865, 47: 1865, 472: 1865, 474: 1865, 480: 1865, 1865, 488: 1865, 1865, 493: 1865, 1865, 1865, 1865, 1865, 499: 1865, 1865, 502: 1865, 513: 1865, 1865}, - // 3365 - {1863, 1863, 7: 1863, 47: 1863, 472: 1863, 474: 1863, 480: 1863, 1863, 488: 1863, 1863, 493: 1863, 1863, 1863, 1863, 1863, 499: 1863, 1863, 502: 1863, 513: 1863, 1863}, {1862, 1862, 7: 1862, 47: 1862, 472: 1862, 474: 1862, 480: 1862, 1862, 488: 1862, 1862, 493: 1862, 1862, 1862, 1862, 1862, 499: 1862, 1862, 502: 1862, 513: 1862, 1862}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 475: 5878, 663: 5877, 2731, 2732, 2730}, - {1860, 1860, 7: 1860, 47: 1860, 472: 1860, 474: 1860, 480: 1860, 1860, 488: 1860, 1860, 493: 1860, 1860, 1860, 1860, 1860, 499: 1860, 1860, 502: 1860, 513: 1860, 1860}, + {844, 844, 7: 5877, 47: 844, 472: 844, 474: 844, 480: 844, 844, 488: 844, 844, 493: 844, 844, 844, 844, 844, 499: 844, 844, 502: 844, 513: 844, 844}, + {1859, 1859, 47: 1859, 472: 1859, 474: 1859, 480: 1859, 1859, 488: 1859, 1859, 493: 1859, 1859, 1859, 1859, 1859, 499: 1859, 1859, 502: 1859, 513: 1859, 5842, 1057: 5876}, + {1014, 1014, 47: 1014, 472: 1014, 474: 1014, 480: 1014, 1014, 488: 1014, 1014, 493: 1014, 1014, 1014, 1014, 1014, 499: 1014, 1014, 502: 1014, 513: 1014}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 2729, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 523: 5871, 543: 3238, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 663: 5872, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 5870, 1045: 5878}, + // 3365 {1861, 1861, 7: 1861, 47: 1861, 472: 1861, 474: 1861, 480: 1861, 1861, 488: 1861, 1861, 493: 1861, 1861, 1861, 1861, 1861, 499: 1861, 1861, 502: 1861, 513: 1861, 1861}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 523: 5880, 663: 5881, 2736, 2737, 2735}, + {1871, 1871, 7: 1871, 47: 1871, 472: 1871, 474: 1871, 480: 1871, 1871, 488: 1871, 1871, 493: 1871, 1871, 1871, 1871, 1871, 499: 1871, 1871, 502: 1871, 513: 1871, 1871}, + {1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 3963, 1272, 1272, 1272, 1272, 1272, 480: 1272, 1272, 1272, 485: 1272, 1272, 1272, 1272, 1272, 493: 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 502: 1272, 505: 1272, 509: 1272, 1272, 1272, 1272, 1272, 1272, 518: 1272, 523: 1272, 544: 1272, 547: 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 585: 1272, 651: 5882, 654: 1272, 1272}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 523: 5883, 663: 3759, 2736, 2737, 2735}, // 3370 - {1859, 1859, 7: 1859, 47: 1859, 472: 1859, 474: 1859, 480: 1859, 1859, 488: 1859, 1859, 493: 1859, 1859, 1859, 1859, 1859, 499: 1859, 1859, 502: 1859, 513: 1859, 1859}, - {1011, 1011}, - {1023, 1023}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 5894, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 5895, 2731, 2732, 2730}, - {70: 5887, 229: 5886}, + {1870, 1870, 7: 1870, 47: 1870, 472: 1870, 474: 1870, 480: 1870, 1870, 488: 1870, 1870, 493: 1870, 1870, 1870, 1870, 1870, 499: 1870, 1870, 502: 1870, 513: 1870, 1870}, + {1869, 1869, 7: 1869, 47: 1869, 472: 1869, 474: 1869, 480: 1869, 1869, 488: 1869, 1869, 493: 1869, 1869, 1869, 1869, 1869, 499: 1869, 1869, 502: 1869, 513: 1869, 1869}, + {1867, 1867, 7: 1867, 47: 1867, 472: 1867, 474: 1867, 480: 1867, 1867, 488: 1867, 1867, 493: 1867, 1867, 1867, 1867, 1867, 499: 1867, 1867, 502: 1867, 513: 1867, 1867}, + {1866, 1866, 7: 1866, 47: 1866, 472: 1866, 474: 1866, 480: 1866, 1866, 488: 1866, 1866, 493: 1866, 1866, 1866, 1866, 1866, 499: 1866, 1866, 502: 1866, 513: 1866, 1866}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 475: 5890, 663: 5889, 2736, 2737, 2735}, // 3375 + {1864, 1864, 7: 1864, 47: 1864, 472: 1864, 474: 1864, 480: 1864, 1864, 488: 1864, 1864, 493: 1864, 1864, 1864, 1864, 1864, 499: 1864, 1864, 502: 1864, 513: 1864, 1864}, + {1865, 1865, 7: 1865, 47: 1865, 472: 1865, 474: 1865, 480: 1865, 1865, 488: 1865, 1865, 493: 1865, 1865, 1865, 1865, 1865, 499: 1865, 1865, 502: 1865, 513: 1865, 1865}, + {1863, 1863, 7: 1863, 47: 1863, 472: 1863, 474: 1863, 480: 1863, 1863, 488: 1863, 1863, 493: 1863, 1863, 1863, 1863, 1863, 499: 1863, 1863, 502: 1863, 513: 1863, 1863}, {1015, 1015}, - {798: 5885}, - {1014, 1014}, - {1017, 1017, 70: 5892}, - {229: 5888}, + {1027, 1027}, // 3380 - {1016, 1016, 70: 5890, 798: 5889}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 5906, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 5907, 2736, 2737, 2735}, + {70: 5899, 229: 5898}, {1019, 1019}, - {798: 5891}, + {798: 5897}, {1018, 1018}, - {798: 5893}, // 3385 - {1020, 1020}, - {1635, 1635, 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 5896, 2731, 2732, 2730}, - {1022, 1022}, - {1021, 1021}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 5898, 2731, 2732, 2730}, + {1021, 1021, 70: 5904}, + {229: 5900}, + {1020, 1020, 70: 5902, 798: 5901}, + {1023, 1023}, + {798: 5903}, // 3390 - {1027, 1027}, - {1031, 1031, 481: 5900}, - {568: 3317, 709: 5902, 1323: 5901}, - {1030, 1030, 7: 5903}, - {1029, 1029, 7: 1029}, + {1022, 1022}, + {798: 5905}, + {1024, 1024}, + {1639, 1639, 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 5908, 2736, 2737, 2735}, + {1026, 1026}, // 3395 - {568: 3317, 709: 5904}, - {1028, 1028, 7: 1028}, - {499: 5906}, - {475: 5908, 568: 3317, 709: 5909, 1273: 5907}, - {1034, 1034}, + {1025, 1025}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 5910, 2736, 2737, 2735}, + {1031, 1031}, + {1035, 1035, 481: 5912}, + {568: 3322, 709: 5914, 1324: 5913}, // 3400 - {1033, 1033}, - {1032, 1032}, - {2: 1345, 1345, 1345, 1345, 1345, 8: 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 48: 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 495: 5911, 1064: 5912}, - {2: 1344, 1344, 1344, 1344, 1344, 8: 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 48: 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 3889, 2731, 2732, 2730, 736: 5913}, + {1034, 1034, 7: 5915}, + {1033, 1033, 7: 1033}, + {568: 3322, 709: 5916}, + {1032, 1032, 7: 1032}, + {499: 5918}, // 3405 - {154: 913, 473: 913, 913, 490: 5363, 501: 913, 504: 913, 569: 913, 645: 913, 858: 5914}, - {154: 5922, 473: 5915, 2558, 501: 5923, 504: 5921, 569: 2556, 645: 2552, 708: 5920, 747: 5918, 2553, 2554, 2555, 2564, 755: 2562, 2561, 2560, 3848, 5919, 5917, 975: 5916, 1063: 5924}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 2309, 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 473: 2559, 2558, 501: 2557, 569: 2556, 645: 2552, 663: 4111, 2731, 2732, 2730, 708: 5782, 742: 4112, 747: 3849, 2553, 2554, 2555, 2564, 755: 2562, 2561, 2560, 3848, 3851, 3850, 807: 5023, 1000: 5936}, - {473: 3865, 838: 5933, 973: 5932}, - {1337, 1337, 472: 1337, 481: 1337}, + {475: 5920, 568: 3322, 709: 5921, 1274: 5919}, + {1038, 1038}, + {1037, 1037}, + {1036, 1036}, + {2: 1349, 1349, 1349, 1349, 1349, 8: 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 48: 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 495: 5923, 1064: 5924}, // 3410 - {1336, 1336, 472: 1336, 480: 806, 1336, 488: 806, 806}, - {1335, 1335, 472: 1335, 481: 1335}, - {1334, 1334, 472: 1334, 480: 805, 1334, 488: 805, 805, 493: 2697, 500: 2698, 502: 2694, 766: 3859, 3860}, - {1320, 1320, 2971, 2816, 2852, 2973, 2743, 1320, 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 1320, 481: 1320, 663: 4111, 2731, 2732, 2730, 742: 5926, 1004: 5927, 1189: 5925}, - {473: 1332}, + {2: 1348, 1348, 1348, 1348, 1348, 8: 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 48: 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1348}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 3894, 2736, 2737, 2735, 736: 5925}, + {154: 917, 473: 917, 917, 490: 5368, 501: 917, 504: 917, 569: 917, 645: 917, 858: 5926}, + {154: 5934, 473: 5927, 2563, 501: 5935, 504: 5933, 569: 2561, 645: 2557, 708: 5932, 747: 5930, 2558, 2559, 2560, 2569, 755: 2567, 2566, 2565, 3853, 5931, 5929, 975: 5928, 1063: 5936}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 2313, 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 473: 2564, 2563, 501: 2562, 569: 2561, 645: 2557, 663: 4116, 2736, 2737, 2735, 708: 5794, 743: 4117, 747: 3854, 2558, 2559, 2560, 2569, 755: 2567, 2566, 2565, 3853, 3856, 3855, 807: 5028, 1000: 5948}, // 3415 - {473: 1331, 576: 3864, 910: 3863, 974: 3862}, - {1315, 1315, 481: 1315}, - {1333, 1333, 7: 5930, 472: 1333, 481: 1333}, - {498: 5928}, - {1319, 1319, 7: 1319, 472: 1319, 481: 1319}, + {473: 3870, 838: 5945, 973: 5944}, + {1341, 1341, 472: 1341, 481: 1341}, + {1340, 1340, 472: 1340, 480: 810, 1340, 488: 810, 810}, + {1339, 1339, 472: 1339, 481: 1339}, + {1338, 1338, 472: 1338, 480: 809, 1338, 488: 809, 809, 493: 2702, 500: 2703, 502: 2699, 766: 3864, 3865}, // 3420 - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 2724, 479: 3871, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 3867, 795: 5929}, - {1321, 1321, 7: 1321, 472: 1321, 481: 1321}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 4111, 2731, 2732, 2730, 742: 5926, 1004: 5931}, - {1318, 1318, 7: 1318, 472: 1318, 481: 1318}, - {1338, 1338, 7: 5934, 472: 1338, 481: 1338}, + {1324, 1324, 2976, 2821, 2857, 2978, 2748, 1324, 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 1324, 481: 1324, 663: 4116, 2736, 2737, 2735, 743: 5938, 1004: 5939, 1190: 5937}, + {473: 1336}, + {473: 1335, 576: 3869, 910: 3868, 974: 3867}, + {1319, 1319, 481: 1319}, + {1337, 1337, 7: 5942, 472: 1337, 481: 1337}, // 3425 - {1330, 1330, 7: 1330, 472: 1330, 481: 1330}, - {473: 3865, 838: 5935}, - {1329, 1329, 7: 1329, 472: 1329, 481: 1329}, - {47: 5937}, - {154: 5922, 473: 2559, 2558, 501: 5923, 569: 2556, 645: 2552, 708: 5942, 747: 5940, 2553, 2554, 2555, 2564, 755: 2562, 2561, 2560, 3848, 5941, 5939, 975: 5938}, + {498: 5940}, + {1323, 1323, 7: 1323, 472: 1323, 481: 1323}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 2729, 479: 3876, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 3872, 795: 5941}, + {1325, 1325, 7: 1325, 472: 1325, 481: 1325}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 4116, 2736, 2737, 2735, 743: 5938, 1004: 5943}, // 3430 - {473: 3865, 838: 5933, 973: 5943}, - {1342, 1342, 472: 1342, 481: 1342}, - {1341, 1341, 472: 1341, 480: 806, 1341, 488: 806, 806}, - {1340, 1340, 472: 1340, 481: 1340}, - {1339, 1339, 472: 1339, 480: 805, 1339, 488: 805, 805, 493: 2697, 500: 2698, 502: 2694, 766: 3859, 3860}, + {1322, 1322, 7: 1322, 472: 1322, 481: 1322}, + {1342, 1342, 7: 5946, 472: 1342, 481: 1342}, + {1334, 1334, 7: 1334, 472: 1334, 481: 1334}, + {473: 3870, 838: 5947}, + {1333, 1333, 7: 1333, 472: 1333, 481: 1333}, // 3435 - {1343, 1343, 7: 5934, 472: 1343, 481: 1343}, - {2: 1048, 1048, 1048, 1048, 1048, 8: 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 48: 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 491: 1048, 495: 1048, 752: 5301, 5300, 5299, 836: 5302, 885: 5945}, - {2: 1846, 1846, 1846, 1846, 1846, 8: 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 48: 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 491: 4158, 495: 1846, 853: 5946}, - {2: 1345, 1345, 1345, 1345, 1345, 8: 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 48: 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 495: 5911, 1064: 5947}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 3889, 2731, 2732, 2730, 736: 5948}, + {47: 5949}, + {154: 5934, 473: 2564, 2563, 501: 5935, 569: 2561, 645: 2557, 708: 5954, 747: 5952, 2558, 2559, 2560, 2569, 755: 2567, 2566, 2565, 3853, 5953, 5951, 975: 5950}, + {473: 3870, 838: 5945, 973: 5955}, + {1346, 1346, 472: 1346, 481: 1346}, + {1345, 1345, 472: 1345, 480: 810, 1345, 488: 810, 810}, // 3440 - {154: 913, 473: 913, 913, 490: 5363, 501: 913, 504: 913, 569: 913, 645: 913, 858: 5949}, - {154: 5922, 473: 5915, 2558, 501: 5923, 504: 5921, 569: 2556, 645: 2552, 708: 5920, 747: 5918, 2553, 2554, 2555, 2564, 755: 2562, 2561, 2560, 3848, 5919, 5917, 975: 5916, 1063: 5950}, - {1317, 1317, 472: 5952, 481: 1317, 1251: 5951}, - {1346, 1346, 481: 1346}, - {199: 5953}, + {1344, 1344, 472: 1344, 481: 1344}, + {1343, 1343, 472: 1343, 480: 809, 1343, 488: 809, 809, 493: 2702, 500: 2703, 502: 2699, 766: 3864, 3865}, + {1347, 1347, 7: 5946, 472: 1347, 481: 1347}, + {2: 1052, 1052, 1052, 1052, 1052, 8: 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 48: 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 491: 1052, 495: 1052, 752: 5306, 5305, 5304, 836: 5307, 885: 5957}, + {2: 1850, 1850, 1850, 1850, 1850, 8: 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 48: 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 491: 4163, 495: 1850, 853: 5958}, // 3445 - {573: 5954}, - {653: 5955}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 4111, 2731, 2732, 2730, 742: 5417, 890: 5418, 923: 5956}, - {1316, 1316, 7: 5420, 481: 1316}, - {1350, 1350, 473: 5965, 651: 1822}, + {2: 1349, 1349, 1349, 1349, 1349, 8: 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 48: 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 495: 5923, 1064: 5959}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 3894, 2736, 2737, 2735, 736: 5960}, + {154: 917, 473: 917, 917, 490: 5368, 501: 917, 504: 917, 569: 917, 645: 917, 858: 5961}, + {154: 5934, 473: 5927, 2563, 501: 5935, 504: 5933, 569: 2561, 645: 2557, 708: 5932, 747: 5930, 2558, 2559, 2560, 2569, 755: 2567, 2566, 2565, 3853, 5931, 5929, 975: 5928, 1063: 5962}, + {1321, 1321, 472: 5964, 481: 1321, 1252: 5963}, // 3450 - {1351, 1351}, - {651: 5960}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 5961, 2731, 2732, 2730}, - {1349, 1349, 473: 5962}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 1909, 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 2724, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 3556, 777: 3720, 825: 5963}, + {1350, 1350, 481: 1350}, + {199: 5965}, + {573: 5966}, + {653: 5967}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 4116, 2736, 2737, 2735, 743: 5422, 890: 5423, 923: 5968}, // 3455 - {47: 5964}, - {1347, 1347}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 1909, 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 2724, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 3556, 777: 3720, 825: 5966}, - {47: 5967}, - {1348, 1348}, + {1320, 1320, 7: 5425, 481: 1320}, + {1354, 1354, 473: 5977, 651: 1826}, + {1355, 1355}, + {651: 5972}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 5973, 2736, 2737, 2735}, // 3460 - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 6128, 2731, 2732, 2730}, - {595, 595, 497: 6125, 518: 6124, 1288: 6123}, - {16: 6111, 99: 6108, 132: 6113, 164: 6112, 190: 6110, 569: 6107, 583: 6109}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 6096, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 3889, 2731, 2732, 2730, 736: 6097}, - {671, 671, 494: 6091}, + {1353, 1353, 473: 5974}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 1913, 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 2729, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 3561, 777: 3725, 825: 5975}, + {47: 5976}, + {1351, 1351}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 1913, 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 2729, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 3561, 777: 3725, 825: 5978}, // 3465 - {124: 6090}, - {98: 3912, 107: 3911, 122: 6085, 209: 6084, 832: 6086}, + {47: 5979}, + {1352, 1352}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 6140, 2736, 2737, 2735}, + {595, 595, 497: 6137, 518: 6136, 1289: 6135}, + {16: 6123, 99: 6120, 132: 6125, 165: 6124, 190: 6122, 569: 6119, 583: 6121}, + // 3470 + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 6108, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 3894, 2736, 2737, 2735, 736: 6109}, + {671, 671, 494: 6103}, + {124: 6102}, + {98: 3917, 107: 3916, 122: 6097, 209: 6096, 832: 6098}, {667, 667}, - {659, 659, 180: 6066, 224: 6067, 234: 6068, 237: 6065, 259: 6070, 269: 6069, 283: 6072, 288: 6071, 493: 659, 659, 500: 659, 650: 6073, 1127: 6064, 1291: 6063, 6062}, + // 3475 + {659, 659, 180: 6078, 224: 6079, 234: 6080, 237: 6077, 259: 6082, 269: 6081, 283: 6084, 288: 6083, 493: 659, 659, 500: 659, 650: 6085, 1127: 6076, 1292: 6075, 6074}, {665, 665}, - // 3470 {664, 664}, - {597, 597, 262: 6053, 494: 6052, 497: 597, 518: 597}, + {597, 597, 262: 6065, 494: 6064, 497: 597, 518: 597}, {499: 642, 544: 642}, + // 3480 {499: 641, 544: 641}, {499: 640, 544: 640}, - // 3475 {637, 637, 497: 637, 518: 637}, {636, 636, 497: 636, 518: 636}, {635, 635, 497: 635, 518: 635}, + // 3485 {634, 634, 497: 634, 518: 634}, - {122: 6050}, - // 3480 - {499: 6020, 544: 6021, 804: 6045}, - {98: 585, 107: 585, 204: 6018, 1088: 6039}, - {473: 6034}, + {122: 6062}, + {499: 6032, 544: 6033, 804: 6057}, + {98: 585, 107: 585, 204: 6030, 1088: 6051}, + {473: 6046}, + // 3490 {625, 625, 497: 625, 518: 625}, {623, 623, 497: 623, 518: 623}, - // 3485 - {124: 6032, 139: 6033, 195: 6031}, + {124: 6044, 139: 6045, 195: 6043}, {619, 619, 497: 619, 518: 619}, - {583, 583, 497: 583, 499: 6020, 518: 583, 544: 6021, 804: 6023, 840: 6030}, - {124: 6029}, - {124: 6028}, - // 3490 - {124: 6027}, - {124: 6026}, - {124: 6025}, - {583, 583, 497: 583, 499: 6020, 518: 583, 544: 6021, 804: 6023, 840: 6022}, - {611, 611, 497: 611, 518: 611}, + {583, 583, 497: 583, 499: 6032, 518: 583, 544: 6033, 804: 6035, 840: 6042}, // 3495 + {124: 6041}, + {124: 6040}, + {124: 6039}, + {124: 6038}, + {124: 6037}, + // 3500 + {583, 583, 497: 583, 499: 6032, 518: 583, 544: 6033, 804: 6035, 840: 6034}, + {611, 611, 497: 611, 518: 611}, {610, 610, 497: 610, 518: 610}, {609, 609, 497: 609, 518: 609}, {608, 608, 497: 608, 518: 608}, + // 3505 {607, 607, 497: 607, 518: 607}, {606, 606, 497: 606, 518: 606}, - // 3500 {605, 605, 497: 605, 518: 605}, {604, 604, 497: 604, 518: 604}, {603, 603, 497: 603, 518: 603}, + // 3510 {602, 602, 497: 602, 518: 602}, - {124: 6019}, - // 3505 + {124: 6031}, {600, 600, 497: 600, 518: 600}, {599, 599, 497: 599, 518: 599}, {598, 598, 497: 598, 518: 598}, + // 3515 {124: 591, 139: 591, 195: 591}, {124: 590, 139: 590, 156: 590, 195: 590}, - // 3510 {98: 584, 107: 584, 122: 584, 209: 584}, {601, 601, 497: 601, 518: 601}, {2: 639, 639, 639, 639, 639, 8: 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 48: 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639}, + // 3520 {2: 638, 638, 638, 638, 638, 8: 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 48: 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638}, {612, 612, 497: 612, 518: 612}, - // 3515 - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 5294, 2731, 2732, 2730, 814: 6024}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 5299, 2736, 2737, 2735, 814: 6036}, {582, 582, 497: 582, 518: 582}, {613, 613, 497: 613, 518: 613}, + // 3525 {614, 614, 497: 614, 518: 614}, {615, 615, 497: 615, 518: 615}, - // 3520 {616, 616, 497: 616, 518: 616}, {617, 617, 497: 617, 518: 617}, {618, 618, 497: 618, 518: 618}, + // 3530 {622, 622, 497: 622, 518: 622}, {621, 621, 497: 621, 518: 621}, - // 3525 {620, 620, 497: 620, 518: 620}, - {523: 6035}, - {47: 6036}, - {176: 6038, 302: 6037}, + {523: 6047}, + {47: 6048}, + // 3535 + {176: 6050, 302: 6049}, {626, 626, 497: 626, 518: 626}, - // 3530 {624, 624, 497: 624, 518: 624}, - {98: 3912, 107: 3911, 832: 6040}, - {499: 6020, 544: 6021, 804: 6042, 1129: 6041}, - {583, 583, 497: 583, 499: 6020, 518: 583, 544: 6021, 804: 6023, 840: 6044}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 3889, 2731, 2732, 2730, 736: 6043}, - // 3535 + {98: 3917, 107: 3916, 832: 6052}, + {499: 6032, 544: 6033, 804: 6054, 1129: 6053}, + // 3540 + {583, 583, 497: 583, 499: 6032, 518: 583, 544: 6033, 804: 6035, 840: 6056}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 3894, 2736, 2737, 2735, 736: 6055}, {581, 581, 497: 581, 499: 581, 518: 581, 544: 581}, {627, 627, 497: 627, 518: 627}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 6046, 2731, 2732, 2730, 736: 6047}, - {1046, 1046, 497: 1046, 499: 6020, 518: 1046, 544: 6021, 651: 3894, 804: 6048}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 6058, 2736, 2737, 2735, 736: 6059}, + // 3545 + {1050, 1050, 497: 1050, 499: 6032, 518: 1050, 544: 6033, 651: 3899, 804: 6060}, {630, 630, 497: 630, 518: 630}, - // 3540 - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 6049, 2731, 2732, 2730}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 6061, 2736, 2737, 2735}, {629, 629, 497: 629, 518: 629}, - {583, 583, 497: 583, 499: 6020, 518: 583, 544: 6021, 804: 6023, 840: 6051}, + {583, 583, 497: 583, 499: 6032, 518: 583, 544: 6033, 804: 6035, 840: 6063}, + // 3550 {632, 632, 497: 632, 518: 632}, - {569: 6057, 583: 6054, 849: 6056, 1289: 6055}, - // 3545 + {569: 6069, 583: 6066, 849: 6068, 1290: 6067}, {596, 596, 497: 596, 518: 596}, - {2: 2058, 2058, 2058, 2058, 2058, 8: 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 48: 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 479: 2058, 482: 2058, 504: 2058, 506: 2058, 523: 2058, 566: 2058, 646: 2058}, + {2: 2062, 2062, 2062, 2062, 2062, 8: 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 48: 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 2062, 479: 2062, 482: 2062, 504: 2062, 506: 2062, 523: 2062, 566: 2062, 646: 2062}, {663, 663}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 5294, 2731, 2732, 2730, 814: 6061}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 3889, 2731, 2732, 2730, 736: 6058}, - // 3550 - {661, 661, 490: 6059}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 6060, 2731, 2732, 2730}, + // 3555 + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 5299, 2736, 2737, 2735, 814: 6073}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 3894, 2736, 2737, 2735, 736: 6070}, + {661, 661, 490: 6071}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 6072, 2736, 2737, 2735}, {660, 660}, + // 3560 {662, 662}, - {646, 646, 493: 646, 6080, 500: 646, 1290: 6079}, - // 3555 - {658, 658, 7: 6077, 493: 658, 658, 500: 658}, + {646, 646, 493: 646, 6092, 500: 646, 1291: 6091}, + {658, 658, 7: 6089, 493: 658, 658, 500: 658}, {657, 657, 7: 657, 493: 657, 657, 500: 657}, {655, 655, 7: 655, 493: 655, 655, 500: 655}, + // 3565 {654, 654, 7: 654, 493: 654, 654, 500: 654}, - {349: 6076}, - // 3560 - {392: 6075}, - {339: 6074}, + {349: 6088}, + {392: 6087}, + {339: 6086}, {650, 650, 7: 650, 493: 650, 650, 500: 650}, + // 3570 {649, 649, 7: 649, 493: 649, 649, 500: 649}, {648, 648, 7: 648, 493: 648, 648, 500: 648}, - // 3565 {647, 647, 7: 647, 493: 647, 647, 500: 647}, {651, 651, 7: 651, 493: 651, 651, 500: 651}, {652, 652, 7: 652, 493: 652, 652, 500: 652}, + // 3575 {653, 653, 7: 653, 493: 653, 653, 500: 653}, - {180: 6066, 224: 6067, 234: 6068, 237: 6065, 259: 6070, 269: 6069, 283: 6072, 288: 6071, 650: 6073, 1127: 6078}, - // 3570 + {180: 6078, 224: 6079, 234: 6080, 237: 6077, 259: 6082, 269: 6081, 283: 6084, 288: 6083, 650: 6085, 1127: 6090}, {656, 656, 7: 656, 493: 656, 656, 500: 656}, - {860, 860, 493: 2697, 500: 2698, 767: 2699, 828: 6083}, - {137: 6081}, - {508: 2705, 732: 4021, 763: 6082}, + {864, 864, 493: 2702, 500: 2703, 767: 2704, 828: 6095}, + {137: 6093}, + // 3580 + {508: 2710, 732: 4026, 763: 6094}, {645, 645, 493: 645, 500: 645}, - // 3575 {666, 666}, {668, 668}, - {583, 583, 497: 583, 499: 6020, 518: 583, 544: 6021, 804: 6023, 840: 6089}, - {499: 6020, 544: 6021, 804: 6042, 1129: 6087}, - {583, 583, 497: 583, 499: 6020, 518: 583, 544: 6021, 804: 6023, 840: 6088}, - // 3580 + {583, 583, 497: 583, 499: 6032, 518: 583, 544: 6033, 804: 6035, 840: 6101}, + // 3585 + {499: 6032, 544: 6033, 804: 6054, 1129: 6099}, + {583, 583, 497: 583, 499: 6032, 518: 583, 544: 6033, 804: 6035, 840: 6100}, {628, 628, 497: 628, 518: 628}, {633, 633, 497: 633, 518: 633}, {669, 669}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 475: 3458, 570: 5195, 663: 3459, 2731, 2732, 2730, 737: 5194, 776: 6092}, - {644, 644, 481: 6094, 1324: 6093}, - // 3585 - {670, 670}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 5622, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 475: 5627, 663: 3459, 2731, 2732, 2730, 737: 5149, 799: 5629, 819: 5630, 5628, 860: 6095}, - {643, 643, 7: 5631}, - {583, 583, 86: 1725, 159: 1725, 490: 1725, 497: 583, 499: 6020, 518: 583, 544: 6021, 648: 1725, 651: 1725, 804: 6023, 840: 6106}, - {86: 913, 159: 6099, 490: 5363, 648: 913, 858: 6098}, // 3590 - {86: 6100, 648: 6101}, - {673, 673}, - {245, 245, 497: 2691, 789: 2692, 6105}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 6102, 2731, 2732, 2730}, - {86: 6103}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 475: 3463, 570: 5200, 663: 3464, 2736, 2737, 2735, 737: 5199, 776: 6104}, + {644, 644, 481: 6106, 1325: 6105}, + {670, 670}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 5634, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 475: 5639, 663: 3464, 2736, 2737, 2735, 737: 5154, 799: 5641, 819: 5642, 5640, 860: 6107}, + {643, 643, 7: 5643}, // 3595 - {245, 245, 497: 2691, 789: 2692, 6104}, + {583, 583, 86: 1729, 159: 1729, 490: 1729, 497: 583, 499: 6032, 518: 583, 544: 6033, 648: 1729, 651: 1729, 804: 6035, 840: 6118}, + {86: 917, 159: 6111, 490: 5368, 648: 917, 858: 6110}, + {86: 6112, 648: 6113}, + {673, 673}, + {245, 245, 497: 2696, 789: 2697, 6117}, + // 3600 + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 6114, 2736, 2737, 2735}, + {86: 6115}, + {245, 245, 497: 2696, 789: 2697, 6116}, {672, 672}, {674, 674}, - {631, 631, 497: 631, 518: 631}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 3889, 2731, 2732, 2730, 736: 6122}, - // 3600 - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 3889, 2731, 2732, 2730, 736: 6121}, - {2: 1848, 1848, 1848, 1848, 1848, 8: 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 48: 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 566: 4788, 784: 6119}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 3889, 2731, 2732, 2730, 736: 6118}, - {160: 6116}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 475: 3458, 570: 5195, 663: 3459, 2731, 2732, 2730, 737: 5194, 776: 6115}, // 3605 - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 6114, 2731, 2732, 2730}, + {631, 631, 497: 631, 518: 631}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 3894, 2736, 2737, 2735, 736: 6134}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 3894, 2736, 2737, 2735, 736: 6133}, + {2: 1852, 1852, 1852, 1852, 1852, 8: 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 48: 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 566: 4793, 784: 6131}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 3894, 2736, 2737, 2735, 736: 6130}, + // 3610 + {161: 6128}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 475: 3463, 570: 5200, 663: 3464, 2736, 2737, 2735, 737: 5199, 776: 6127}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 6126, 2736, 2737, 2735}, {675, 675}, {676, 676}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 4951, 2731, 2732, 2730, 884: 6117}, + // 3615 + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 4956, 2736, 2737, 2735, 884: 6129}, {677, 677}, - // 3610 {678, 678}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 5294, 2731, 2732, 2730, 814: 6120}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 5299, 2736, 2737, 2735, 814: 6132}, {679, 679}, + // 3620 {680, 680}, {681, 681}, - // 3615 {682, 682}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 3317, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3316, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 6127, 3222, 3302, 3221, 3218}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 2809, 2757, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 2838, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 2843, 2735, 2752, 2770, 2897, 2989, 2787, 2917, 3000, 2799, 2910, 2911, 2906, 2864, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 2845, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 2729, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 2849, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 2768, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 2834, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 2835, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 2905, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 2793, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 2720, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 2851, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 2721, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3112, 2847, 3113, 3114, 2746, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3127, 3128, 3178, 3177, 3026, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 2887, 2904, 3027, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3145, 3146, 3147, 2900, 3098, 3157, 3158, 3168, 3153, 3154, 3155, 3187, 2846, 473: 3229, 475: 3208, 3227, 2724, 479: 3237, 483: 3241, 3245, 3226, 3225, 3263, 492: 3199, 501: 3238, 506: 3261, 3244, 3203, 543: 3233, 566: 3240, 3262, 2722, 570: 3246, 3198, 3200, 574: 3202, 3201, 3230, 3206, 3220, 3232, 3207, 3211, 583: 3239, 3231, 587: 3236, 3242, 3251, 3304, 3252, 3253, 3205, 3282, 3223, 3224, 3277, 3278, 3279, 3280, 3281, 3234, 3259, 3264, 3274, 3275, 3268, 3283, 3284, 3285, 3269, 3287, 3288, 3270, 3286, 3265, 3273, 3271, 3257, 3289, 3290, 3235, 3294, 3247, 3248, 3250, 3293, 3299, 3298, 3300, 3297, 3301, 3296, 3295, 3292, 3243, 3291, 639: 3249, 3254, 3255, 647: 2725, 663: 3213, 2731, 2732, 2730, 708: 3228, 3303, 3214, 3219, 3204, 3276, 3217, 3215, 3216, 3256, 3267, 3266, 3260, 3258, 3272, 3212, 3222, 3302, 3221, 3218, 2728, 2727, 2726, 6126}, - {593, 593, 505: 3313, 509: 3311, 3312, 3310, 3308, 733: 3309, 3307}, - {594, 594, 482: 3318, 585: 3319}, - // 3620 - {1945, 1945, 176: 6130, 569: 1945, 1254: 6129}, - {559, 559, 569: 6132, 967: 6131}, - {1944, 1944, 569: 1944}, - {1950, 1950}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 3889, 2731, 2732, 2730, 736: 3890, 794: 6133}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 3322, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3321, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 6139, 3227, 3307, 3226, 3223}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 2814, 2762, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 2843, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 2848, 2740, 2757, 2775, 2902, 2994, 2792, 2922, 3005, 2804, 2915, 2916, 2911, 2869, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 2850, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 2734, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 2854, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 2773, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 2839, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 2840, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 2910, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 2798, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 2725, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 2856, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 2726, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3117, 2852, 3118, 3119, 2751, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3132, 3133, 3183, 3182, 3031, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 2892, 2909, 3032, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3150, 3151, 3152, 2905, 3103, 3162, 3163, 3173, 3158, 3159, 3160, 3192, 2851, 473: 3234, 475: 3213, 3232, 2729, 479: 3242, 483: 3246, 3250, 3231, 3230, 3268, 492: 3204, 501: 3243, 506: 3266, 3249, 3208, 543: 3238, 566: 3245, 3267, 2727, 570: 3251, 3203, 3205, 574: 3207, 3206, 3235, 3211, 3225, 3237, 3212, 3216, 583: 3244, 3236, 587: 3241, 3247, 3256, 3309, 3257, 3258, 3210, 3287, 3228, 3229, 3282, 3283, 3284, 3285, 3286, 3239, 3264, 3269, 3279, 3280, 3273, 3288, 3289, 3290, 3274, 3292, 3293, 3275, 3291, 3270, 3278, 3276, 3262, 3294, 3295, 3240, 3299, 3252, 3253, 3255, 3298, 3304, 3303, 3305, 3302, 3306, 3301, 3300, 3297, 3248, 3296, 639: 3254, 3259, 3260, 647: 2730, 663: 3218, 2736, 2737, 2735, 708: 3233, 3308, 3219, 3224, 3209, 3281, 3222, 3220, 3221, 3261, 3272, 3271, 3265, 3263, 3277, 3217, 3227, 3307, 3226, 3223, 2733, 2732, 2731, 6138}, // 3625 - {558, 558, 7: 3892}, - {2: 1947, 1947, 1947, 1947, 1947, 8: 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 48: 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 566: 6136, 1221: 6135}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 6139, 2731, 2732, 2730}, - {476: 4057, 4056, 809: 6137}, - {188: 6138}, + {593, 593, 505: 3318, 509: 3316, 3317, 3315, 3313, 733: 3314, 3312}, + {594, 594, 482: 3323, 585: 3324}, + {1949, 1949, 176: 6142, 569: 1949, 1255: 6141}, + {559, 559, 569: 6144, 967: 6143}, + {1948, 1948, 569: 1948}, // 3630 - {2: 1946, 1946, 1946, 1946, 1946, 8: 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 48: 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946}, - {1953, 1953}, - {2: 1949, 1949, 1949, 1949, 1949, 8: 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 48: 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 566: 6142, 1222: 6141}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 6144, 2731, 2732, 2730}, - {188: 6143}, - // 3635 - {2: 1948, 1948, 1948, 1948, 1948, 8: 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 48: 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948, 1948}, {1954, 1954}, - {508: 2705, 732: 6146}, - {1956, 1956}, - {499: 6156}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 3894, 2736, 2737, 2735, 736: 3895, 794: 6145}, + {558, 558, 7: 3897}, + {2: 1951, 1951, 1951, 1951, 1951, 8: 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 48: 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 566: 6148, 1222: 6147}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 6151, 2736, 2737, 2735}, + // 3635 + {476: 4062, 4061, 809: 6149}, + {188: 6150}, + {2: 1950, 1950, 1950, 1950, 1950, 8: 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 48: 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950, 1950}, + {1957, 1957}, + {2: 1953, 1953, 1953, 1953, 1953, 8: 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 48: 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 566: 6154, 1223: 6153}, // 3640 - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 523: 6151, 663: 5294, 2731, 2732, 2730, 814: 6153, 1198: 6152}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 3889, 2731, 2732, 2730, 736: 3890, 794: 6150}, - {7: 3892, 499: 2003, 649: 2003}, - {499: 2005, 649: 2005}, - {7: 6154, 499: 2004, 649: 2004}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 6156, 2736, 2737, 2735}, + {188: 6155}, + {2: 1952, 1952, 1952, 1952, 1952, 8: 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 48: 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952}, + {1958, 1958}, + {508: 2710, 732: 6158}, // 3645 - {7: 2002, 499: 2002, 649: 2002}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 5294, 2731, 2732, 2730, 814: 6155}, - {7: 2001, 499: 2001, 649: 2001}, - {475: 6157}, - {2000, 2000, 15: 2000, 48: 2000, 50: 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 472: 2000, 652: 2000, 896: 6158}, + {1960, 1960}, + {499: 6168}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 523: 6163, 663: 5299, 2736, 2737, 2735, 814: 6165, 1199: 6164}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 3894, 2736, 2737, 2735, 736: 3895, 794: 6162}, + {7: 3897, 499: 2007, 649: 2007}, // 3650 - {2006, 2006, 15: 6185, 48: 6161, 50: 6181, 6174, 6164, 6160, 6168, 6172, 6184, 6167, 6173, 6171, 6169, 6182, 6175, 6163, 6183, 6162, 6165, 6166, 6170, 472: 6176, 652: 6186, 892: 6178, 6177, 6180, 6159, 897: 6179}, - {1999, 1999, 15: 1999, 48: 1999, 50: 1999, 1999, 1999, 1999, 1999, 1999, 1999, 1999, 1999, 1999, 1999, 1999, 1999, 1999, 1999, 1999, 1999, 1999, 1999, 1999, 472: 1999, 652: 1999}, - {498: 1998, 508: 1998}, - {498: 1997, 508: 1997}, - {498: 1996, 508: 1996, 571: 1996, 1996}, + {499: 2009, 649: 2009}, + {7: 6166, 499: 2008, 649: 2008}, + {7: 2006, 499: 2006, 649: 2006}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 5299, 2736, 2737, 2735, 814: 6167}, + {7: 2005, 499: 2005, 649: 2005}, // 3655 + {475: 6169}, + {2004, 2004, 15: 2004, 48: 2004, 50: 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 472: 2004, 652: 2004, 896: 6170}, + {2010, 2010, 15: 6197, 48: 6173, 50: 6193, 6186, 6176, 6172, 6180, 6184, 6196, 6179, 6185, 6183, 6181, 6194, 6187, 6175, 6195, 6174, 6177, 6178, 6182, 472: 6188, 652: 6198, 892: 6190, 6189, 6192, 6171, 897: 6191}, + {2003, 2003, 15: 2003, 48: 2003, 50: 2003, 2003, 2003, 2003, 2003, 2003, 2003, 2003, 2003, 2003, 2003, 2003, 2003, 2003, 2003, 2003, 2003, 2003, 2003, 2003, 472: 2003, 652: 2003}, + {498: 2002, 508: 2002}, + // 3660 + {498: 2001, 508: 2001}, + {498: 2000, 508: 2000, 571: 2000, 2000}, + {498: 1999, 508: 1999, 571: 1999, 1999}, + {498: 1998, 508: 1998, 571: 1998, 1998}, + {498: 1997, 508: 1997, 571: 1997, 1997}, + // 3665 + {498: 1996, 508: 1996, 571: 1996, 1996}, {498: 1995, 508: 1995, 571: 1995, 1995}, {498: 1994, 508: 1994, 571: 1994, 1994}, {498: 1993, 508: 1993, 571: 1993, 1993}, - {498: 1992, 508: 1992, 571: 1992, 1992}, - {498: 1991, 508: 1991, 571: 1991, 1991}, - // 3660 - {498: 1990, 508: 1990, 571: 1990, 1990}, - {498: 1989, 508: 1989, 571: 1989, 1989}, - {475: 1988, 498: 1988}, - {475: 1987, 498: 1987}, - {475: 1986, 498: 1986}, - // 3665 - {475: 1985, 498: 1985}, - {2: 1984, 1984, 1984, 1984, 1984, 8: 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 48: 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 475: 1984, 491: 1984, 498: 1984, 507: 1984}, - {2: 1983, 1983, 1983, 1983, 1983, 8: 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 48: 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 475: 1983, 491: 1983, 498: 1983, 507: 1983}, - {199: 6226}, - {498: 4246, 508: 2037, 735: 6224}, + {475: 1992, 498: 1992}, // 3670 - {498: 4246, 508: 2037, 571: 2037, 2037, 735: 6222}, - {475: 2037, 498: 4246, 735: 6220}, - {2: 2037, 2037, 2037, 2037, 2037, 8: 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 48: 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 475: 2037, 491: 2037, 498: 4246, 507: 2037, 735: 6215}, - {475: 2037, 498: 4246, 508: 2037, 735: 6210}, - {475: 2037, 498: 4246, 508: 2037, 735: 6207}, + {475: 1991, 498: 1991}, + {475: 1990, 498: 1990}, + {475: 1989, 498: 1989}, + {2: 1988, 1988, 1988, 1988, 1988, 8: 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 48: 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 475: 1988, 491: 1988, 498: 1988, 507: 1988}, + {2: 1987, 1987, 1987, 1987, 1987, 8: 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 48: 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 475: 1987, 491: 1987, 498: 1987, 507: 1987}, // 3675 - {498: 4246, 508: 2037, 735: 6202}, - {98: 2037, 107: 2037, 498: 4246, 508: 2037, 735: 6199}, - {182: 2037, 2037, 186: 2037, 498: 4246, 508: 2037, 571: 2037, 2037, 735: 6196}, - {182: 2037, 2037, 186: 2037, 498: 4246, 508: 2037, 571: 2037, 2037, 735: 6187}, - {182: 6193, 6194, 186: 6195, 508: 2705, 571: 6191, 6192, 732: 6190, 925: 6188, 1091: 6189}, + {199: 6238}, + {498: 4251, 508: 2041, 735: 6236}, + {498: 4251, 508: 2041, 571: 2041, 2041, 735: 6234}, + {475: 2041, 498: 4251, 735: 6232}, + {2: 2041, 2041, 2041, 2041, 2041, 8: 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 48: 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 475: 2041, 491: 2041, 498: 4251, 507: 2041, 735: 6227}, // 3680 - {1967, 1967, 15: 1967, 48: 1967, 50: 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, 472: 1967, 652: 1967}, - {1966, 1966, 15: 1966, 48: 1966, 50: 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966, 472: 1966, 652: 1966}, - {1962, 1962, 15: 1962, 48: 1962, 50: 1962, 1962, 1962, 1962, 1962, 1962, 1962, 1962, 1962, 1962, 1962, 1962, 1962, 1962, 1962, 1962, 1962, 1962, 1962, 1962, 472: 1962, 652: 1962}, - {1961, 1961, 15: 1961, 48: 1961, 50: 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 472: 1961, 652: 1961}, - {1960, 1960, 15: 1960, 48: 1960, 50: 1960, 1960, 1960, 1960, 1960, 1960, 1960, 1960, 1960, 1960, 1960, 1960, 1960, 1960, 1960, 1960, 1960, 1960, 1960, 1960, 472: 1960, 652: 1960}, + {475: 2041, 498: 4251, 508: 2041, 735: 6222}, + {475: 2041, 498: 4251, 508: 2041, 735: 6219}, + {498: 4251, 508: 2041, 735: 6214}, + {98: 2041, 107: 2041, 498: 4251, 508: 2041, 735: 6211}, + {182: 2041, 2041, 186: 2041, 498: 4251, 508: 2041, 571: 2041, 2041, 735: 6208}, // 3685 - {1959, 1959, 15: 1959, 48: 1959, 50: 1959, 1959, 1959, 1959, 1959, 1959, 1959, 1959, 1959, 1959, 1959, 1959, 1959, 1959, 1959, 1959, 1959, 1959, 1959, 1959, 472: 1959, 652: 1959}, - {1958, 1958, 15: 1958, 48: 1958, 50: 1958, 1958, 1958, 1958, 1958, 1958, 1958, 1958, 1958, 1958, 1958, 1958, 1958, 1958, 1958, 1958, 1958, 1958, 1958, 1958, 472: 1958, 652: 1958}, - {1957, 1957, 15: 1957, 48: 1957, 50: 1957, 1957, 1957, 1957, 1957, 1957, 1957, 1957, 1957, 1957, 1957, 1957, 1957, 1957, 1957, 1957, 1957, 1957, 1957, 1957, 472: 1957, 652: 1957}, - {182: 6193, 6194, 186: 6195, 508: 2705, 571: 6191, 6192, 732: 6190, 925: 6197, 1091: 6198}, - {1969, 1969, 15: 1969, 48: 1969, 50: 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 472: 1969, 652: 1969}, - // 3690 - {1968, 1968, 15: 1968, 48: 1968, 50: 1968, 1968, 1968, 1968, 1968, 1968, 1968, 1968, 1968, 1968, 1968, 1968, 1968, 1968, 1968, 1968, 1968, 1968, 1968, 1968, 472: 1968, 652: 1968}, - {98: 3912, 107: 3911, 508: 2705, 732: 2704, 743: 6201, 832: 6200}, + {182: 2041, 2041, 186: 2041, 498: 4251, 508: 2041, 571: 2041, 2041, 735: 6199}, + {182: 6205, 6206, 186: 6207, 508: 2710, 571: 6203, 6204, 732: 6202, 925: 6200, 1091: 6201}, {1971, 1971, 15: 1971, 48: 1971, 50: 1971, 1971, 1971, 1971, 1971, 1971, 1971, 1971, 1971, 1971, 1971, 1971, 1971, 1971, 1971, 1971, 1971, 1971, 1971, 1971, 472: 1971, 652: 1971}, {1970, 1970, 15: 1970, 48: 1970, 50: 1970, 1970, 1970, 1970, 1970, 1970, 1970, 1970, 1970, 1970, 1970, 1970, 1970, 1970, 1970, 1970, 1970, 1970, 1970, 1970, 472: 1970, 652: 1970}, - {508: 2705, 732: 2704, 743: 6203}, + {1966, 1966, 15: 1966, 48: 1966, 50: 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966, 472: 1966, 652: 1966}, + // 3690 + {1965, 1965, 15: 1965, 48: 1965, 50: 1965, 1965, 1965, 1965, 1965, 1965, 1965, 1965, 1965, 1965, 1965, 1965, 1965, 1965, 1965, 1965, 1965, 1965, 1965, 1965, 472: 1965, 652: 1965}, + {1964, 1964, 15: 1964, 48: 1964, 50: 1964, 1964, 1964, 1964, 1964, 1964, 1964, 1964, 1964, 1964, 1964, 1964, 1964, 1964, 1964, 1964, 1964, 1964, 1964, 1964, 472: 1964, 652: 1964}, + {1963, 1963, 15: 1963, 48: 1963, 50: 1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963, 472: 1963, 652: 1963}, + {1962, 1962, 15: 1962, 48: 1962, 50: 1962, 1962, 1962, 1962, 1962, 1962, 1962, 1962, 1962, 1962, 1962, 1962, 1962, 1962, 1962, 1962, 1962, 1962, 1962, 1962, 472: 1962, 652: 1962}, + {1961, 1961, 15: 1961, 48: 1961, 50: 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 472: 1961, 652: 1961}, // 3695 - {205: 6204}, - {556: 6205}, - {108: 6206}, + {182: 6205, 6206, 186: 6207, 508: 2710, 571: 6203, 6204, 732: 6202, 925: 6209, 1091: 6210}, + {1973, 1973, 15: 1973, 48: 1973, 50: 1973, 1973, 1973, 1973, 1973, 1973, 1973, 1973, 1973, 1973, 1973, 1973, 1973, 1973, 1973, 1973, 1973, 1973, 1973, 1973, 472: 1973, 652: 1973}, {1972, 1972, 15: 1972, 48: 1972, 50: 1972, 1972, 1972, 1972, 1972, 1972, 1972, 1972, 1972, 1972, 1972, 1972, 1972, 1972, 1972, 1972, 1972, 1972, 1972, 1972, 472: 1972, 652: 1972}, - {475: 6208, 508: 2705, 732: 2704, 743: 6209}, + {98: 3917, 107: 3916, 508: 2710, 732: 2709, 742: 6213, 832: 6212}, + {1975, 1975, 15: 1975, 48: 1975, 50: 1975, 1975, 1975, 1975, 1975, 1975, 1975, 1975, 1975, 1975, 1975, 1975, 1975, 1975, 1975, 1975, 1975, 1975, 1975, 1975, 472: 1975, 652: 1975}, // 3700 {1974, 1974, 15: 1974, 48: 1974, 50: 1974, 1974, 1974, 1974, 1974, 1974, 1974, 1974, 1974, 1974, 1974, 1974, 1974, 1974, 1974, 1974, 1974, 1974, 1974, 1974, 472: 1974, 652: 1974}, - {1973, 1973, 15: 1973, 48: 1973, 50: 1973, 1973, 1973, 1973, 1973, 1973, 1973, 1973, 1973, 1973, 1973, 1973, 1973, 1973, 1973, 1973, 1973, 1973, 1973, 1973, 472: 1973, 652: 1973}, - {475: 6212, 508: 2705, 732: 2704, 743: 6211}, - {1975, 1975, 15: 1975, 48: 1975, 50: 1975, 1975, 1975, 1975, 1975, 1975, 1975, 1975, 1975, 1975, 1975, 1975, 1975, 1975, 1975, 1975, 1975, 1975, 1975, 1975, 101: 3432, 104: 3428, 108: 3425, 3440, 3427, 3424, 3426, 3430, 3431, 3436, 3435, 3434, 3438, 3439, 3433, 3437, 123: 3429, 472: 1975, 652: 1975, 802: 6213}, - {1976, 1976, 15: 1976, 48: 1976, 50: 1976, 1976, 1976, 1976, 1976, 1976, 1976, 1976, 1976, 1976, 1976, 1976, 1976, 1976, 1976, 1976, 1976, 1976, 1976, 1976, 472: 1976, 652: 1976}, + {508: 2710, 732: 2709, 742: 6215}, + {205: 6216}, + {556: 6217}, + {108: 6218}, // 3705 - {306: 6214}, - {1977, 1977, 15: 1977, 48: 1977, 50: 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 472: 1977, 652: 1977}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 475: 3458, 491: 6218, 507: 6219, 663: 3459, 2731, 2732, 2730, 737: 6217, 1305: 6216}, + {1976, 1976, 15: 1976, 48: 1976, 50: 1976, 1976, 1976, 1976, 1976, 1976, 1976, 1976, 1976, 1976, 1976, 1976, 1976, 1976, 1976, 1976, 1976, 1976, 1976, 1976, 472: 1976, 652: 1976}, + {475: 6220, 508: 2710, 732: 2709, 742: 6221}, {1978, 1978, 15: 1978, 48: 1978, 50: 1978, 1978, 1978, 1978, 1978, 1978, 1978, 1978, 1978, 1978, 1978, 1978, 1978, 1978, 1978, 1978, 1978, 1978, 1978, 1978, 472: 1978, 652: 1978}, - {254, 254, 15: 254, 48: 254, 50: 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 472: 254, 652: 254}, + {1977, 1977, 15: 1977, 48: 1977, 50: 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 472: 1977, 652: 1977}, + {475: 6224, 508: 2710, 732: 2709, 742: 6223}, // 3710 - {253, 253, 15: 253, 48: 253, 50: 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 472: 253, 652: 253}, - {252, 252, 15: 252, 48: 252, 50: 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 472: 252, 652: 252}, - {475: 6221}, - {1979, 1979, 15: 1979, 48: 1979, 50: 1979, 1979, 1979, 1979, 1979, 1979, 1979, 1979, 1979, 1979, 1979, 1979, 1979, 1979, 1979, 1979, 1979, 1979, 1979, 1979, 472: 1979, 652: 1979}, - {508: 2705, 571: 6191, 6192, 732: 6190, 925: 6223}, - // 3715 + {1979, 1979, 15: 1979, 48: 1979, 50: 1979, 1979, 1979, 1979, 1979, 1979, 1979, 1979, 1979, 1979, 1979, 1979, 1979, 1979, 1979, 1979, 1979, 1979, 1979, 1979, 101: 3437, 104: 3433, 108: 3430, 3445, 3432, 3429, 3431, 3435, 3436, 3441, 3440, 3439, 3443, 3444, 3438, 3442, 123: 3434, 472: 1979, 652: 1979, 802: 6225}, {1980, 1980, 15: 1980, 48: 1980, 50: 1980, 1980, 1980, 1980, 1980, 1980, 1980, 1980, 1980, 1980, 1980, 1980, 1980, 1980, 1980, 1980, 1980, 1980, 1980, 1980, 472: 1980, 652: 1980}, - {508: 2705, 732: 2704, 743: 6225}, + {306: 6226}, {1981, 1981, 15: 1981, 48: 1981, 50: 1981, 1981, 1981, 1981, 1981, 1981, 1981, 1981, 1981, 1981, 1981, 1981, 1981, 1981, 1981, 1981, 1981, 1981, 1981, 1981, 472: 1981, 652: 1981}, - {2: 1982, 1982, 1982, 1982, 1982, 8: 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 48: 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 475: 1982, 491: 1982, 498: 1982, 507: 1982}, - {649: 6228}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 475: 3463, 491: 6230, 507: 6231, 663: 3464, 2736, 2737, 2735, 737: 6229, 1306: 6228}, + // 3715 + {1982, 1982, 15: 1982, 48: 1982, 50: 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 1982, 472: 1982, 652: 1982}, + {254, 254, 15: 254, 48: 254, 50: 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 472: 254, 652: 254}, + {253, 253, 15: 253, 48: 253, 50: 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 472: 253, 652: 253}, + {252, 252, 15: 252, 48: 252, 50: 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 472: 252, 652: 252}, + {475: 6233}, // 3720 - {475: 6229}, - {2000, 2000, 15: 2000, 48: 2000, 50: 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 472: 2000, 652: 2000, 896: 6230}, - {2007, 2007, 15: 6185, 48: 6161, 50: 6181, 6174, 6164, 6160, 6168, 6172, 6184, 6167, 6173, 6171, 6169, 6182, 6175, 6163, 6183, 6162, 6165, 6166, 6170, 472: 6176, 652: 6186, 892: 6178, 6177, 6180, 6159, 897: 6179}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 6232, 2731, 2732, 2730}, - {2008, 2008}, + {1983, 1983, 15: 1983, 48: 1983, 50: 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 472: 1983, 652: 1983}, + {508: 2710, 571: 6203, 6204, 732: 6202, 925: 6235}, + {1984, 1984, 15: 1984, 48: 1984, 50: 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 472: 1984, 652: 1984}, + {508: 2710, 732: 2709, 742: 6237}, + {1985, 1985, 15: 1985, 48: 1985, 50: 1985, 1985, 1985, 1985, 1985, 1985, 1985, 1985, 1985, 1985, 1985, 1985, 1985, 1985, 1985, 1985, 1985, 1985, 1985, 1985, 472: 1985, 652: 1985}, // 3725 - {2009, 2009}, - {2027, 2027, 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 4111, 2731, 2732, 2730, 742: 6266}, - {2025, 2025}, - {26: 6264}, - {1758, 1758, 1758, 1758, 1758, 1758, 1758, 8: 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 48: 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 1758, 498: 6253, 651: 1758}, + {2: 1986, 1986, 1986, 1986, 1986, 8: 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 48: 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 475: 1986, 491: 1986, 498: 1986, 507: 1986}, + {649: 6240}, + {475: 6241}, + {2004, 2004, 15: 2004, 48: 2004, 50: 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 472: 2004, 652: 2004, 896: 6242}, + {2011, 2011, 15: 6197, 48: 6173, 50: 6193, 6186, 6176, 6172, 6180, 6184, 6196, 6179, 6185, 6183, 6181, 6194, 6187, 6175, 6195, 6174, 6177, 6178, 6182, 472: 6188, 652: 6198, 892: 6190, 6189, 6192, 6171, 897: 6191}, // 3730 - {251: 6240, 473: 2559, 2558, 501: 2557, 507: 2543, 567: 2542, 569: 2556, 645: 2552, 653: 2660, 660: 2677, 708: 2678, 738: 2524, 747: 2679, 2553, 2554, 2555, 2564, 755: 2562, 2561, 2560, 2527, 2685, 2684, 765: 2525, 771: 2659, 773: 2682, 2683, 2681, 778: 2526, 782: 2680, 805: 2686, 824: 6239}, - {2019, 2019}, - {498: 6241}, - {165: 6245, 226: 6248, 244: 6247, 299: 6244, 6250, 6249, 475: 6243, 576: 6246, 1042: 6242}, - {473: 2559, 2558, 501: 2557, 507: 2543, 567: 2542, 569: 2556, 645: 2552, 653: 2660, 660: 2677, 708: 2678, 738: 2524, 747: 2679, 2553, 2554, 2555, 2564, 755: 2562, 2561, 2560, 2527, 2685, 2684, 765: 2525, 771: 2659, 773: 2682, 2683, 2681, 778: 2526, 782: 2680, 805: 2686, 824: 6252}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 6244, 2736, 2737, 2735}, + {2012, 2012}, + {2013, 2013}, + {2031, 2031, 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 4116, 2736, 2737, 2735, 743: 6278}, + {2029, 2029}, // 3735 - {473: 2559, 2558, 501: 2557, 507: 2543, 567: 2542, 569: 2556, 645: 2552, 653: 2660, 660: 2677, 708: 2678, 738: 2524, 747: 2679, 2553, 2554, 2555, 2564, 755: 2562, 2561, 2560, 2527, 2685, 2684, 765: 2525, 771: 2659, 773: 2682, 2683, 2681, 778: 2526, 782: 2680, 805: 2686, 824: 6251}, + {26: 6276}, + {1762, 1762, 1762, 1762, 1762, 1762, 1762, 8: 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 48: 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 498: 6265, 651: 1762}, + {251: 6252, 473: 2564, 2563, 501: 2562, 507: 2548, 567: 2547, 569: 2561, 645: 2557, 653: 2665, 660: 2682, 708: 2683, 738: 2529, 747: 2684, 2558, 2559, 2560, 2569, 755: 2567, 2566, 2565, 2532, 2690, 2689, 765: 2530, 771: 2664, 773: 2687, 2688, 2686, 778: 2531, 782: 2685, 805: 2691, 824: 6251}, + {2023, 2023}, + {498: 6253}, + // 3740 + {166: 6257, 226: 6260, 244: 6259, 299: 6256, 6262, 6261, 475: 6255, 576: 6258, 1042: 6254}, + {473: 2564, 2563, 501: 2562, 507: 2548, 567: 2547, 569: 2561, 645: 2557, 653: 2665, 660: 2682, 708: 2683, 738: 2529, 747: 2684, 2558, 2559, 2560, 2569, 755: 2567, 2566, 2565, 2532, 2690, 2689, 765: 2530, 771: 2664, 773: 2687, 2688, 2686, 778: 2531, 782: 2685, 805: 2691, 824: 6264}, + {473: 2564, 2563, 501: 2562, 507: 2548, 567: 2547, 569: 2561, 645: 2557, 653: 2665, 660: 2682, 708: 2683, 738: 2529, 747: 2684, 2558, 2559, 2560, 2569, 755: 2567, 2566, 2565, 2532, 2690, 2689, 765: 2530, 771: 2664, 773: 2687, 2688, 2686, 778: 2531, 782: 2685, 805: 2691, 824: 6263}, + {473: 2020, 2020, 494: 2020, 501: 2020, 507: 2020, 567: 2020, 569: 2020, 645: 2020, 653: 2020, 660: 2020, 738: 2020}, + {473: 2019, 2019, 494: 2019, 501: 2019, 507: 2019, 567: 2019, 569: 2019, 645: 2019, 653: 2019, 660: 2019, 738: 2019}, + // 3745 + {473: 2018, 2018, 494: 2018, 501: 2018, 507: 2018, 567: 2018, 569: 2018, 645: 2018, 653: 2018, 660: 2018, 738: 2018}, + {473: 2017, 2017, 494: 2017, 501: 2017, 507: 2017, 567: 2017, 569: 2017, 645: 2017, 653: 2017, 660: 2017, 738: 2017}, {473: 2016, 2016, 494: 2016, 501: 2016, 507: 2016, 567: 2016, 569: 2016, 645: 2016, 653: 2016, 660: 2016, 738: 2016}, {473: 2015, 2015, 494: 2015, 501: 2015, 507: 2015, 567: 2015, 569: 2015, 645: 2015, 653: 2015, 660: 2015, 738: 2015}, {473: 2014, 2014, 494: 2014, 501: 2014, 507: 2014, 567: 2014, 569: 2014, 645: 2014, 653: 2014, 660: 2014, 738: 2014}, - {473: 2013, 2013, 494: 2013, 501: 2013, 507: 2013, 567: 2013, 569: 2013, 645: 2013, 653: 2013, 660: 2013, 738: 2013}, - // 3740 - {473: 2012, 2012, 494: 2012, 501: 2012, 507: 2012, 567: 2012, 569: 2012, 645: 2012, 653: 2012, 660: 2012, 738: 2012}, - {473: 2011, 2011, 494: 2011, 501: 2011, 507: 2011, 567: 2011, 569: 2011, 645: 2011, 653: 2011, 660: 2011, 738: 2011}, - {473: 2010, 2010, 494: 2010, 501: 2010, 507: 2010, 567: 2010, 569: 2010, 645: 2010, 653: 2010, 660: 2010, 738: 2010}, - {2017, 2017}, - {2018, 2018}, - // 3745 - {165: 6245, 226: 6248, 244: 6247, 299: 6244, 6250, 6249, 475: 6254, 576: 6246, 1042: 6255}, - {473: 2559, 2558, 494: 6260, 501: 2557, 507: 2543, 567: 2542, 569: 2556, 645: 2552, 653: 2660, 660: 2677, 708: 2678, 738: 2524, 747: 2679, 2553, 2554, 2555, 2564, 755: 2562, 2561, 2560, 2527, 2685, 2684, 765: 2525, 771: 2659, 773: 2682, 2683, 2681, 778: 2526, 782: 2680, 805: 2686, 824: 6261}, - {473: 2559, 2558, 494: 6256, 501: 2557, 507: 2543, 567: 2542, 569: 2556, 645: 2552, 653: 2660, 660: 2677, 708: 2678, 738: 2524, 747: 2679, 2553, 2554, 2555, 2564, 755: 2562, 2561, 2560, 2527, 2685, 2684, 765: 2525, 771: 2659, 773: 2682, 2683, 2681, 778: 2526, 782: 2680, 805: 2686, 824: 6257}, - {26: 6258}, - {2020, 2020}, // 3750 - {508: 2705, 732: 6259}, {2021, 2021}, - {26: 6262}, {2022, 2022}, - {508: 2705, 732: 6263}, + {166: 6257, 226: 6260, 244: 6259, 299: 6256, 6262, 6261, 475: 6266, 576: 6258, 1042: 6267}, + {473: 2564, 2563, 494: 6272, 501: 2562, 507: 2548, 567: 2547, 569: 2561, 645: 2557, 653: 2665, 660: 2682, 708: 2683, 738: 2529, 747: 2684, 2558, 2559, 2560, 2569, 755: 2567, 2566, 2565, 2532, 2690, 2689, 765: 2530, 771: 2664, 773: 2687, 2688, 2686, 778: 2531, 782: 2685, 805: 2691, 824: 6273}, + {473: 2564, 2563, 494: 6268, 501: 2562, 507: 2548, 567: 2547, 569: 2561, 645: 2557, 653: 2665, 660: 2682, 708: 2683, 738: 2529, 747: 2684, 2558, 2559, 2560, 2569, 755: 2567, 2566, 2565, 2532, 2690, 2689, 765: 2530, 771: 2664, 773: 2687, 2688, 2686, 778: 2531, 782: 2685, 805: 2691, 824: 6269}, // 3755 - {2023, 2023}, - {508: 2705, 732: 6265}, + {26: 6270}, {2024, 2024}, - {2026, 2026}, - {2034, 2034}, + {508: 2710, 732: 6271}, + {2025, 2025}, + {26: 6274}, // 3760 - {498: 6292}, - {71: 2518, 145: 2520, 152: 2548, 2533, 155: 2517, 395: 6288, 473: 2559, 2558, 501: 2557, 504: 6272, 507: 2543, 567: 2542, 569: 2556, 645: 2552, 653: 2660, 708: 6270, 738: 2524, 747: 6271, 2553, 2554, 2555, 2564, 755: 2562, 2561, 2560, 2527, 6278, 6277, 765: 2525, 771: 2659, 773: 6275, 6276, 6274, 778: 2526, 782: 6273, 798: 2534, 808: 6286, 843: 6280, 847: 6281, 857: 6279, 859: 6283, 861: 6284, 6282, 6285, 918: 6287}, - {459, 459, 480: 805, 488: 805, 805, 493: 2697, 500: 2698, 502: 2694, 766: 3859, 3860}, - {461, 461, 480: 806, 488: 806, 806}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 5591, 5586, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 5589, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 5588, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 5593, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 5587, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 5596, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 5594, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 5590, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 506: 3805, 568: 5602, 590: 5601, 646: 3803, 663: 5599, 2731, 2732, 2730, 772: 5603, 829: 5600, 976: 5604, 1155: 5597}, + {2026, 2026}, + {508: 2710, 732: 6275}, + {2027, 2027}, + {508: 2710, 732: 6277}, + {2028, 2028}, // 3765 + {2030, 2030}, + {2038, 2038}, + {498: 6304}, + {71: 2523, 145: 2525, 152: 2553, 2538, 155: 2522, 395: 6300, 473: 2564, 2563, 501: 2562, 504: 6284, 507: 2548, 567: 2547, 569: 2561, 645: 2557, 653: 2665, 708: 6282, 738: 2529, 747: 6283, 2558, 2559, 2560, 2569, 755: 2567, 2566, 2565, 2532, 6290, 6289, 765: 2530, 771: 2664, 773: 6287, 6288, 6286, 778: 2531, 782: 6285, 798: 2539, 808: 6298, 843: 6292, 847: 6293, 857: 6291, 859: 6295, 861: 6296, 6294, 6297, 918: 6299}, + {459, 459, 480: 809, 488: 809, 809, 493: 2702, 500: 2703, 502: 2699, 766: 3864, 3865}, + // 3770 + {461, 461, 480: 810, 488: 810, 810}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 5603, 5598, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 5601, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 5600, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 5605, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 5599, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 5608, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 5606, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 5602, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 506: 3810, 568: 5614, 590: 5613, 646: 3808, 663: 5611, 2736, 2737, 2735, 772: 5615, 829: 5612, 976: 5616, 1155: 5609}, {466, 466}, {465, 465}, {464, 464}, + // 3775 {463, 463}, {462, 462}, - // 3770 {460, 460}, {458, 458}, {457, 457}, + // 3780 {456, 456}, {455, 455}, - // 3775 {454, 454}, {453, 453}, {452, 452}, - {21: 5098}, - {2032, 2032}, - // 3780 - {498: 6289}, - {475: 6290}, - {71: 2518, 145: 2520, 152: 2548, 2533, 155: 2517, 473: 2559, 2558, 501: 2557, 504: 6272, 507: 2543, 567: 2542, 569: 2556, 645: 2552, 653: 2660, 708: 6270, 738: 2524, 747: 6271, 2553, 2554, 2555, 2564, 755: 2562, 2561, 2560, 2527, 6278, 6277, 765: 2525, 771: 2659, 773: 6275, 6276, 6274, 778: 2526, 782: 6273, 798: 2534, 808: 6286, 843: 6280, 847: 6281, 857: 6279, 859: 6283, 861: 6284, 6282, 6285, 918: 6291}, - {2031, 2031}, - {475: 6293}, // 3785 - {71: 2518, 145: 2520, 152: 2548, 2533, 155: 2517, 473: 2559, 2558, 501: 2557, 504: 6272, 507: 2543, 567: 2542, 569: 2556, 645: 2552, 653: 2660, 708: 6270, 738: 2524, 747: 6271, 2553, 2554, 2555, 2564, 755: 2562, 2561, 2560, 2527, 6278, 6277, 765: 2525, 771: 2659, 773: 6275, 6276, 6274, 778: 2526, 782: 6273, 798: 2534, 808: 6286, 843: 6280, 847: 6281, 857: 6279, 859: 6283, 861: 6284, 6282, 6285, 918: 6294}, - {2033, 2033}, - {2: 1048, 1048, 1048, 1048, 1048, 8: 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 48: 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 491: 1048, 499: 1048, 752: 5301, 5300, 5299, 836: 5302, 885: 6296}, - {2: 1036, 1036, 1036, 1036, 1036, 8: 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 48: 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 5667, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 491: 1036, 499: 1036, 1106: 6297}, - {2: 1846, 1846, 1846, 1846, 1846, 8: 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 48: 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 491: 4158, 499: 1846, 853: 6298}, + {21: 5103}, + {2036, 2036}, + {498: 6301}, + {475: 6302}, + {71: 2523, 145: 2525, 152: 2553, 2538, 155: 2522, 473: 2564, 2563, 501: 2562, 504: 6284, 507: 2548, 567: 2547, 569: 2561, 645: 2557, 653: 2665, 708: 6282, 738: 2529, 747: 6283, 2558, 2559, 2560, 2569, 755: 2567, 2566, 2565, 2532, 6290, 6289, 765: 2530, 771: 2664, 773: 6287, 6288, 6286, 778: 2531, 782: 6285, 798: 2539, 808: 6298, 843: 6292, 847: 6293, 857: 6291, 859: 6295, 861: 6296, 6294, 6297, 918: 6303}, // 3790 - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 499: 6299, 663: 5671, 2731, 2732, 2730, 915: 5672, 965: 5670}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 6301, 2731, 2732, 2730, 736: 5684, 915: 5672, 965: 6300}, - {7: 5680, 481: 6304}, - {1046, 1046, 1046, 1046, 1046, 1046, 1046, 1038, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 48: 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 478: 1046, 481: 1038, 490: 1046, 1046, 493: 1046, 497: 1046, 502: 1046, 1046, 525: 1046, 651: 6302, 905: 5673}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 523: 5676, 663: 6303, 2731, 2732, 2730}, + {2035, 2035}, + {475: 6305}, + {71: 2523, 145: 2525, 152: 2553, 2538, 155: 2522, 473: 2564, 2563, 501: 2562, 504: 6284, 507: 2548, 567: 2547, 569: 2561, 645: 2557, 653: 2665, 708: 6282, 738: 2529, 747: 6283, 2558, 2559, 2560, 2569, 755: 2567, 2566, 2565, 2532, 6290, 6289, 765: 2530, 771: 2664, 773: 6287, 6288, 6286, 778: 2531, 782: 6285, 798: 2539, 808: 6298, 843: 6292, 847: 6293, 857: 6291, 859: 6295, 861: 6296, 6294, 6297, 918: 6306}, + {2037, 2037}, + {2: 1052, 1052, 1052, 1052, 1052, 8: 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 48: 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 491: 1052, 499: 1052, 752: 5306, 5305, 5304, 836: 5307, 885: 6308}, // 3795 - {1045, 1045, 1045, 1045, 1045, 1045, 1045, 1038, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 48: 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 478: 1045, 481: 1038, 490: 1045, 1045, 493: 1045, 497: 1045, 502: 1045, 1045, 525: 1045, 651: 5678, 905: 5677}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 473: 5313, 579: 5308, 663: 3889, 2731, 2732, 2730, 708: 5312, 736: 5311, 796: 5310, 800: 5309, 5315, 850: 5305, 888: 6305}, - {245, 245, 7: 5359, 497: 2691, 789: 2692, 6306}, - {2063, 2063}, - {2066, 2066, 7: 3558}, + {2: 1040, 1040, 1040, 1040, 1040, 8: 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 48: 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 5679, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 491: 1040, 499: 1040, 1106: 6309}, + {2: 1850, 1850, 1850, 1850, 1850, 8: 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 48: 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 491: 4163, 499: 1850, 853: 6310}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 499: 6311, 663: 5683, 2736, 2737, 2735, 915: 5684, 965: 5682}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 6313, 2736, 2737, 2735, 736: 5696, 915: 5684, 965: 6312}, + {7: 5692, 481: 6316}, // 3800 - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 6366, 2731, 2732, 2730}, - {2: 1850, 1850, 1850, 1850, 1850, 8: 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 48: 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 566: 4416, 780: 6364}, - {2: 1850, 1850, 1850, 1850, 1850, 8: 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 48: 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 566: 4416, 780: 6355}, - {122: 5437, 569: 5436, 1145: 6351}, - {156: 591, 162: 5491}, + {1050, 1050, 1050, 1050, 1050, 1050, 1050, 1042, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 48: 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 478: 1050, 481: 1042, 490: 1050, 1050, 493: 1050, 497: 1050, 502: 1050, 1050, 525: 1050, 651: 6314, 905: 5685}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 523: 5688, 663: 6315, 2736, 2737, 2735}, + {1049, 1049, 1049, 1049, 1049, 1049, 1049, 1042, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 48: 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 478: 1049, 481: 1042, 490: 1049, 1049, 493: 1049, 497: 1049, 502: 1049, 1049, 525: 1049, 651: 5690, 905: 5689}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 473: 5318, 579: 5313, 663: 3894, 2736, 2737, 2735, 708: 5317, 736: 5316, 796: 5315, 800: 5314, 5320, 850: 5310, 888: 6317}, + {245, 245, 7: 5364, 497: 2696, 789: 2697, 6318}, // 3805 - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 566: 6346, 663: 3889, 2731, 2732, 2730, 736: 3890, 794: 6345}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 475: 3458, 566: 6342, 570: 5195, 663: 3459, 2731, 2732, 2730, 737: 5194, 776: 5196, 866: 6341}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 5622, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 475: 5627, 566: 6338, 663: 3459, 2731, 2732, 2730, 737: 5149, 799: 5629, 819: 5630, 5628, 860: 6337}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 3889, 2731, 2732, 2730, 736: 6333}, - {2: 1850, 1850, 1850, 1850, 1850, 8: 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 48: 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 566: 4416, 780: 6331}, + {2067, 2067}, + {2070, 2070, 7: 3563}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 6378, 2736, 2737, 2735}, + {2: 1854, 1854, 1854, 1854, 1854, 8: 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 48: 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 566: 4421, 780: 6376}, + {2: 1854, 1854, 1854, 1854, 1854, 8: 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 48: 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 566: 4421, 780: 6367}, // 3810 - {156: 6326}, - {160: 6323}, - {2: 1850, 1850, 1850, 1850, 1850, 8: 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 48: 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 566: 4416, 780: 6321}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 3889, 2731, 2732, 2730, 736: 3890, 794: 6322}, - {26, 26, 7: 3892}, + {122: 5442, 569: 5441, 1145: 6363}, + {156: 591, 163: 5496}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 566: 6358, 663: 3894, 2736, 2737, 2735, 736: 3895, 794: 6357}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 475: 3463, 566: 6354, 570: 5200, 663: 3464, 2736, 2737, 2735, 737: 5199, 776: 5201, 866: 6353}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 5634, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 475: 5639, 566: 6350, 663: 3464, 2736, 2737, 2735, 737: 5154, 799: 5641, 819: 5642, 5640, 860: 6349}, // 3815 - {2: 1850, 1850, 1850, 1850, 1850, 8: 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 48: 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 566: 4416, 780: 6324}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 4951, 2731, 2732, 2730, 884: 6325}, - {53, 53}, - {494: 6327}, - {473: 2559, 2558, 501: 2557, 507: 2543, 567: 2542, 569: 2556, 645: 2552, 653: 2660, 708: 5652, 738: 5650, 747: 5653, 2553, 2554, 2555, 2564, 755: 2562, 2561, 2560, 5651, 5655, 5654, 765: 5657, 771: 2659, 773: 5658, 5659, 5656, 844: 6328}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 3894, 2736, 2737, 2735, 736: 6345}, + {2: 1854, 1854, 1854, 1854, 1854, 8: 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 48: 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 566: 4421, 780: 6343}, + {156: 6338}, + {161: 6335}, + {2: 1854, 1854, 1854, 1854, 1854, 8: 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 48: 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 566: 4421, 780: 6333}, // 3820 - {177, 177, 481: 6329}, - {473: 2559, 2558, 501: 2557, 507: 2543, 567: 2542, 569: 2556, 645: 2552, 653: 2660, 708: 5652, 738: 5650, 747: 5653, 2553, 2554, 2555, 2564, 755: 2562, 2561, 2560, 5651, 5655, 5654, 765: 5657, 771: 2659, 773: 5658, 5659, 5656, 844: 6330}, - {176, 176}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 6332, 2731, 2732, 2730}, - {1951, 1951}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 3894, 2736, 2737, 2735, 736: 3895, 794: 6334}, + {26, 26, 7: 3897}, + {2: 1854, 1854, 1854, 1854, 1854, 8: 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 48: 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 566: 4421, 780: 6336}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 4956, 2736, 2737, 2735, 884: 6337}, + {53, 53}, // 3825 - {2045, 2045, 158: 6335, 490: 6334}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 4712, 2731, 2732, 2730, 788: 6336}, - {2043, 2043}, - {2044, 2044, 7: 4713}, - {2047, 2047, 7: 5631}, + {494: 6339}, + {473: 2564, 2563, 501: 2562, 507: 2548, 567: 2547, 569: 2561, 645: 2557, 653: 2665, 708: 5664, 738: 5662, 747: 5665, 2558, 2559, 2560, 2569, 755: 2567, 2566, 2565, 5663, 5667, 5666, 765: 5669, 771: 2664, 773: 5670, 5671, 5668, 844: 6340}, + {177, 177, 481: 6341}, + {473: 2564, 2563, 501: 2562, 507: 2548, 567: 2547, 569: 2561, 645: 2557, 653: 2665, 708: 5664, 738: 5662, 747: 5665, 2558, 2559, 2560, 2569, 755: 2567, 2566, 2565, 5663, 5667, 5666, 765: 5669, 771: 2664, 773: 5670, 5671, 5668, 844: 6342}, + {176, 176}, // 3830 - {584: 6339}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 5622, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 475: 5627, 663: 3459, 2731, 2732, 2730, 737: 5149, 799: 5629, 819: 5630, 5628, 860: 6340}, - {2046, 2046, 7: 5631}, - {2049, 2049, 7: 5198}, - {584: 6343}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 6344, 2736, 2737, 2735}, + {1955, 1955}, + {2049, 2049, 158: 6347, 490: 6346}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 4717, 2736, 2737, 2735, 788: 6348}, + {2047, 2047}, // 3835 - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 475: 3458, 570: 5195, 663: 3459, 2731, 2732, 2730, 737: 5194, 776: 5196, 866: 6344}, - {2048, 2048, 7: 5198}, - {2042, 2042, 7: 3892, 669: 4764, 671: 4763, 909: 6350}, - {584: 6347}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 3889, 2731, 2732, 2730, 736: 3890, 794: 6348}, + {2048, 2048, 7: 4718}, + {2051, 2051, 7: 5643}, + {584: 6351}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 5634, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 475: 5639, 663: 3464, 2736, 2737, 2735, 737: 5154, 799: 5641, 819: 5642, 5640, 860: 6352}, + {2050, 2050, 7: 5643}, // 3840 - {2042, 2042, 7: 3892, 669: 4764, 671: 4763, 909: 6349}, - {2050, 2050}, - {2051, 2051}, - {2: 1850, 1850, 1850, 1850, 1850, 8: 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 48: 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 566: 4416, 780: 6352}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 3889, 2731, 2732, 2730, 736: 3890, 794: 6353}, + {2053, 2053, 7: 5203}, + {584: 6355}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 475: 3463, 570: 5200, 663: 3464, 2736, 2737, 2735, 737: 5199, 776: 5201, 866: 6356}, + {2052, 2052, 7: 5203}, + {2046, 2046, 7: 3897, 669: 4769, 671: 4768, 909: 6362}, // 3845 - {2042, 2042, 7: 3892, 669: 4764, 671: 4763, 909: 6354}, + {584: 6359}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 3894, 2736, 2737, 2735, 736: 3895, 794: 6360}, + {2046, 2046, 7: 3897, 669: 4769, 671: 4768, 909: 6361}, + {2054, 2054}, {2055, 2055}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 6356, 2731, 2732, 2730}, - {472: 6357}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 3889, 2731, 2732, 2730, 736: 6358}, // 3850 - {2185, 2185, 81: 4200, 496: 4201, 868: 6360, 881: 6359, 1062: 6361}, - {2184, 2184, 81: 4200, 868: 6363}, - {2183, 2183, 496: 4201, 881: 6362}, - {2056, 2056}, - {2181, 2181}, + {2: 1854, 1854, 1854, 1854, 1854, 8: 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 48: 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 566: 4421, 780: 6364}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 3894, 2736, 2737, 2735, 736: 3895, 794: 6365}, + {2046, 2046, 7: 3897, 669: 4769, 671: 4768, 909: 6366}, + {2059, 2059}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 6368, 2736, 2737, 2735}, // 3855 - {2182, 2182}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 5294, 2731, 2732, 2730, 814: 6365}, - {2057, 2057}, - {2193, 2193}, - {2: 1848, 1848, 1848, 1848, 1848, 8: 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 48: 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 566: 4788, 784: 6588}, + {472: 6369}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 3894, 2736, 2737, 2735, 736: 6370}, + {2189, 2189, 81: 4205, 496: 4206, 868: 6372, 881: 6371, 1062: 6373}, + {2188, 2188, 81: 4205, 868: 6375}, + {2187, 2187, 496: 4206, 881: 6374}, // 3860 - {648: 6576}, - {648: 2179}, - {648: 2178}, - {648: 2177}, - {2: 1848, 1848, 1848, 1848, 1848, 8: 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 48: 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 566: 4788, 784: 6553}, + {2060, 2060}, + {2185, 2185}, + {2186, 2186}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 5299, 2736, 2737, 2735, 814: 6377}, + {2061, 2061}, // 3865 - {16: 6474, 81: 6473, 99: 2083, 140: 2083, 667: 2083, 1327: 6472}, - {507: 6471}, - {2: 1848, 1848, 1848, 1848, 1848, 8: 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 48: 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 566: 4788, 784: 6459}, - {2: 1848, 1848, 1848, 1848, 1848, 8: 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 48: 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 475: 1848, 566: 4788, 570: 1848, 784: 6427}, - {2: 1848, 1848, 1848, 1848, 1848, 8: 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 48: 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 475: 1848, 566: 4788, 784: 6421}, + {2197, 2197}, + {2: 1852, 1852, 1852, 1852, 1852, 8: 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 48: 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 566: 4793, 784: 6600}, + {648: 6588}, + {648: 2183}, + {648: 2182}, // 3870 - {156: 6416}, - {2: 1848, 1848, 1848, 1848, 1848, 8: 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 48: 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 566: 4788, 784: 6380}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 3889, 2731, 2732, 2730, 736: 6381}, - {49, 49, 4: 49, 49, 49, 13: 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 70: 6389, 6386, 6392, 6393, 6394, 6387, 6385, 6395, 6391, 6388, 479: 49, 49, 482: 49, 503: 49, 506: 49, 646: 49, 648: 49, 656: 6390, 911: 6384, 1193: 6382, 1284: 6383}, - {393, 393, 4: 4206, 4208, 397, 13: 4225, 2156, 4223, 4164, 4227, 4214, 4243, 4207, 4210, 4209, 4212, 4213, 4215, 4222, 397, 4233, 4234, 4220, 4221, 4226, 4228, 4240, 4239, 4245, 4241, 4238, 4231, 4236, 4237, 4230, 4232, 4235, 4224, 479: 4205, 4242, 482: 2156, 503: 4934, 506: 2156, 646: 2156, 648: 4211, 779: 4216, 791: 4218, 811: 4217, 833: 4219, 837: 4229, 841: 4244, 917: 5513, 1016: 6415}, + {648: 2181}, + {2: 1852, 1852, 1852, 1852, 1852, 8: 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 48: 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 566: 4793, 784: 6565}, + {16: 6486, 81: 6485, 99: 2087, 140: 2087, 667: 2087, 1328: 6484}, + {507: 6483}, + {2: 1852, 1852, 1852, 1852, 1852, 8: 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 48: 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 566: 4793, 784: 6471}, // 3875 - {48, 48, 4: 48, 48, 48, 13: 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 70: 6389, 6386, 6392, 6393, 6394, 6387, 6385, 6395, 6391, 6388, 479: 48, 48, 482: 48, 503: 48, 506: 48, 646: 48, 648: 48, 656: 6390, 911: 6414}, - {47, 47, 4: 47, 47, 47, 13: 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 70: 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 479: 47, 47, 482: 47, 503: 47, 506: 47, 646: 47, 648: 47, 656: 47}, - {485: 2037, 2037, 498: 4246, 508: 2037, 659: 6411, 735: 6410}, - {474: 6407, 485: 2037, 2037, 498: 4246, 508: 2037, 735: 6406}, - {485: 2037, 2037, 498: 4246, 508: 2037, 735: 6404}, + {2: 1852, 1852, 1852, 1852, 1852, 8: 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 48: 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 475: 1852, 566: 4793, 570: 1852, 784: 6439}, + {2: 1852, 1852, 1852, 1852, 1852, 8: 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 48: 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 475: 1852, 566: 4793, 784: 6433}, + {156: 6428}, + {2: 1852, 1852, 1852, 1852, 1852, 8: 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 48: 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 566: 4793, 784: 6392}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 3894, 2736, 2737, 2735, 736: 6393}, // 3880 + {49, 49, 4: 49, 49, 49, 13: 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 70: 6401, 6398, 6404, 6405, 6406, 6399, 6397, 6407, 6403, 6400, 479: 49, 49, 482: 49, 503: 49, 506: 49, 646: 49, 648: 49, 656: 6402, 911: 6396, 1194: 6394, 1285: 6395}, + {393, 393, 4: 4211, 4213, 397, 13: 4230, 2160, 4228, 4169, 4232, 4219, 4248, 4212, 4215, 4214, 4217, 4218, 4220, 4227, 397, 4238, 4239, 4225, 4226, 4231, 4233, 4245, 4244, 4250, 4246, 4243, 4236, 4241, 4242, 4235, 4237, 4240, 4229, 479: 4210, 4247, 482: 2160, 503: 4939, 506: 2160, 646: 2160, 648: 4216, 779: 4221, 791: 4223, 811: 4222, 833: 4224, 837: 4234, 841: 4249, 917: 5518, 1016: 6427}, + {48, 48, 4: 48, 48, 48, 13: 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 70: 6401, 6398, 6404, 6405, 6406, 6399, 6397, 6407, 6403, 6400, 479: 48, 48, 482: 48, 503: 48, 506: 48, 646: 48, 648: 48, 656: 6402, 911: 6426}, + {47, 47, 4: 47, 47, 47, 13: 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 70: 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 479: 47, 47, 482: 47, 503: 47, 506: 47, 646: 47, 648: 47, 656: 47}, + {485: 2041, 2041, 498: 4251, 508: 2041, 659: 6423, 735: 6422}, + // 3885 + {474: 6419, 485: 2041, 2041, 498: 4251, 508: 2041, 735: 6418}, + {485: 2041, 2041, 498: 4251, 508: 2041, 735: 6416}, {40, 40, 4: 40, 40, 40, 13: 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 70: 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 479: 40, 40, 482: 40, 503: 40, 506: 40, 646: 40, 648: 40, 656: 40}, - {72: 6402, 74: 6403, 6400, 656: 6401}, - {485: 2037, 2037, 498: 4246, 508: 2037, 735: 6398}, + {72: 6414, 74: 6415, 6412, 656: 6413}, + {485: 2041, 2041, 498: 4251, 508: 2041, 735: 6410}, + // 3890 {37, 37, 4: 37, 37, 37, 13: 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 70: 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 479: 37, 37, 482: 37, 503: 37, 506: 37, 646: 37, 648: 37, 656: 37}, - {485: 2037, 2037, 498: 4246, 508: 2037, 735: 6396}, - // 3885 + {485: 2041, 2041, 498: 4251, 508: 2041, 735: 6408}, {34, 34, 4: 34, 34, 34, 13: 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 70: 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 479: 34, 34, 482: 34, 503: 34, 506: 34, 646: 34, 648: 34, 656: 34}, {32, 32, 4: 32, 32, 32, 13: 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 70: 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 479: 32, 32, 482: 32, 503: 32, 506: 32, 646: 32, 648: 32, 656: 32}, {31, 31, 4: 31, 31, 31, 13: 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 70: 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 479: 31, 31, 482: 31, 503: 31, 506: 31, 646: 31, 648: 31, 656: 31}, - {485: 4024, 4025, 508: 2705, 732: 4021, 763: 4023, 812: 6397}, + // 3895 + {485: 4029, 4030, 508: 2710, 732: 4026, 763: 4028, 812: 6409}, {35, 35, 4: 35, 35, 35, 13: 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 70: 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 479: 35, 35, 482: 35, 503: 35, 506: 35, 646: 35, 648: 35, 656: 35}, - // 3890 - {485: 4024, 4025, 508: 2705, 732: 4021, 763: 4023, 812: 6399}, + {485: 4029, 4030, 508: 2710, 732: 4026, 763: 4028, 812: 6411}, {38, 38, 4: 38, 38, 38, 13: 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 70: 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 479: 38, 38, 482: 38, 503: 38, 506: 38, 646: 38, 648: 38, 656: 38}, {39, 39, 4: 39, 39, 39, 13: 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 70: 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 479: 39, 39, 482: 39, 503: 39, 506: 39, 646: 39, 648: 39, 656: 39}, + // 3900 {36, 36, 4: 36, 36, 36, 13: 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 70: 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 479: 36, 36, 482: 36, 503: 36, 506: 36, 646: 36, 648: 36, 656: 36}, {33, 33, 4: 33, 33, 33, 13: 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 70: 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 479: 33, 33, 482: 33, 503: 33, 506: 33, 646: 33, 648: 33, 656: 33}, - // 3895 {30, 30, 4: 30, 30, 30, 13: 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 70: 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 479: 30, 30, 482: 30, 503: 30, 506: 30, 646: 30, 648: 30, 656: 30}, - {485: 4024, 4025, 508: 2705, 732: 4021, 763: 4023, 812: 6405}, + {485: 4029, 4030, 508: 2710, 732: 4026, 763: 4028, 812: 6417}, {41, 41, 4: 41, 41, 41, 13: 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 70: 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 479: 41, 41, 482: 41, 503: 41, 506: 41, 646: 41, 648: 41, 656: 41}, - {485: 4024, 4025, 508: 2705, 732: 4021, 763: 4023, 812: 6409}, - {485: 4024, 4025, 508: 2705, 732: 4021, 763: 4023, 812: 6408}, - // 3900 + // 3905 + {485: 4029, 4030, 508: 2710, 732: 4026, 763: 4028, 812: 6421}, + {485: 4029, 4030, 508: 2710, 732: 4026, 763: 4028, 812: 6420}, {42, 42, 4: 42, 42, 42, 13: 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 70: 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 479: 42, 42, 482: 42, 503: 42, 506: 42, 646: 42, 648: 42, 656: 42}, {43, 43, 4: 43, 43, 43, 13: 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 70: 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 479: 43, 43, 482: 43, 503: 43, 506: 43, 646: 43, 648: 43, 656: 43}, - {485: 4024, 4025, 508: 2705, 732: 4021, 763: 4023, 812: 6413}, - {485: 4024, 4025, 508: 2705, 732: 4021, 763: 4023, 812: 6412}, + {485: 4029, 4030, 508: 2710, 732: 4026, 763: 4028, 812: 6425}, + // 3910 + {485: 4029, 4030, 508: 2710, 732: 4026, 763: 4028, 812: 6424}, {44, 44, 4: 44, 44, 44, 13: 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 70: 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 479: 44, 44, 482: 44, 503: 44, 506: 44, 646: 44, 648: 44, 656: 44}, - // 3905 {45, 45, 4: 45, 45, 45, 13: 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 70: 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 479: 45, 45, 482: 45, 503: 45, 506: 45, 646: 45, 648: 45, 656: 45}, {46, 46, 4: 46, 46, 46, 13: 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 70: 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 479: 46, 46, 482: 46, 503: 46, 506: 46, 646: 46, 648: 46, 656: 46}, {50, 50}, - {494: 6417}, - {473: 2559, 2558, 501: 2557, 507: 2543, 567: 2542, 569: 2556, 645: 2552, 653: 2660, 708: 5652, 738: 5650, 747: 5653, 2553, 2554, 2555, 2564, 755: 2562, 2561, 2560, 5651, 5655, 5654, 765: 5657, 771: 2659, 773: 5658, 5659, 5656, 844: 6418}, - // 3910 - {481: 6419}, - {473: 2559, 2558, 501: 2557, 507: 2543, 567: 2542, 569: 2556, 645: 2552, 653: 2660, 708: 5652, 738: 5650, 747: 5653, 2553, 2554, 2555, 2564, 755: 2562, 2561, 2560, 5651, 5655, 5654, 765: 5657, 771: 2659, 773: 5658, 5659, 5656, 844: 6420}, - {178, 178}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 5622, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 475: 5627, 663: 3459, 2731, 2732, 2730, 737: 5149, 799: 5629, 819: 6423, 5628, 1119: 6424, 1279: 6422}, - {240, 240, 7: 6425}, // 3915 + {494: 6429}, + {473: 2564, 2563, 501: 2562, 507: 2548, 567: 2547, 569: 2561, 645: 2557, 653: 2665, 708: 5664, 738: 5662, 747: 5665, 2558, 2559, 2560, 2569, 755: 2567, 2566, 2565, 5663, 5667, 5666, 765: 5669, 771: 2664, 773: 5670, 5671, 5668, 844: 6430}, + {481: 6431}, + {473: 2564, 2563, 501: 2562, 507: 2548, 567: 2547, 569: 2561, 645: 2557, 653: 2665, 708: 5664, 738: 5662, 747: 5665, 2558, 2559, 2560, 2569, 755: 2567, 2566, 2565, 5663, 5667, 5666, 765: 5669, 771: 2664, 773: 5670, 5671, 5668, 844: 6432}, + {178, 178}, + // 3920 + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 5634, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 475: 5639, 663: 3464, 2736, 2737, 2735, 737: 5154, 799: 5641, 819: 6435, 5640, 1119: 6436, 1280: 6434}, + {240, 240, 7: 6437}, {189, 189, 7: 189}, {188, 188, 7: 188}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 5622, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 475: 5627, 663: 3459, 2731, 2732, 2730, 737: 5149, 799: 5629, 819: 6423, 5628, 1119: 6426}, - {187, 187, 7: 187}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 475: 3458, 570: 5195, 663: 3459, 2731, 2732, 2730, 737: 5194, 776: 5212, 889: 5213, 920: 6428}, - // 3920 - {223, 223, 7: 5215, 13: 223, 46: 223, 474: 223, 661: 5259, 958: 5258, 6429}, - {231, 231, 13: 231, 46: 231, 474: 6431, 1007: 6430}, - {210, 210, 13: 6448, 46: 6446, 951: 6447, 6445, 1099: 6444, 6443}, - {126: 6436, 6434, 6435, 6437, 1006: 6433, 1191: 6432}, - {230, 230, 13: 230, 46: 230, 126: 6436, 6434, 6435, 6437, 1006: 6442}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 5634, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 475: 5639, 663: 3464, 2736, 2737, 2735, 737: 5154, 799: 5641, 819: 6435, 5640, 1119: 6438}, // 3925 - {229, 229, 13: 229, 46: 229, 126: 229, 229, 229, 229}, - {508: 2705, 732: 4021, 763: 6441}, - {508: 2705, 732: 4021, 763: 6440}, - {508: 2705, 732: 4021, 763: 6439}, - {508: 2705, 732: 4021, 763: 6438}, + {187, 187, 7: 187}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 475: 3463, 570: 5200, 663: 3464, 2736, 2737, 2735, 737: 5199, 776: 5217, 889: 5218, 920: 6440}, + {223, 223, 7: 5220, 13: 223, 46: 223, 474: 223, 661: 5264, 958: 5263, 6441}, + {231, 231, 13: 231, 46: 231, 474: 6443, 1007: 6442}, + {210, 210, 13: 6460, 46: 6458, 951: 6459, 6457, 1099: 6456, 6455}, // 3930 + {126: 6448, 6446, 6447, 6449, 1006: 6445, 1192: 6444}, + {230, 230, 13: 230, 46: 230, 126: 6448, 6446, 6447, 6449, 1006: 6454}, + {229, 229, 13: 229, 46: 229, 126: 229, 229, 229, 229}, + {508: 2710, 732: 4026, 763: 6453}, + {508: 2710, 732: 4026, 763: 6452}, + // 3935 + {508: 2710, 732: 4026, 763: 6451}, + {508: 2710, 732: 4026, 763: 6450}, {224, 224, 13: 224, 46: 224, 126: 224, 224, 224, 224}, {225, 225, 13: 225, 46: 225, 126: 225, 225, 225, 225}, {226, 226, 13: 226, 46: 226, 126: 226, 226, 226, 226}, + // 3940 {227, 227, 13: 227, 46: 227, 126: 227, 227, 227, 227}, {228, 228, 13: 228, 46: 228, 126: 228, 228, 228, 228}, - // 3935 {241, 241}, - {209, 209, 13: 6448, 46: 6446, 951: 6447, 6458}, + {209, 209, 13: 6460, 46: 6458, 951: 6459, 6470}, {208, 208, 13: 208, 46: 208}, - {496: 6457, 971: 6456}, - {204, 204, 13: 204, 46: 204, 206: 6452, 479: 6453, 581: 6451}, - // 3940 - {335: 6449}, - {199, 199, 13: 199, 46: 199, 206: 199, 479: 199, 581: 199, 1183: 6450}, + // 3945 + {496: 6469, 971: 6468}, + {204, 204, 13: 204, 46: 204, 206: 6464, 479: 6465, 581: 6463}, + {335: 6461}, + {199, 199, 13: 199, 46: 199, 206: 199, 479: 199, 581: 199, 1184: 6462}, {200, 200, 13: 200, 46: 200, 206: 200, 479: 200, 581: 200}, - {508: 2705, 732: 4021, 763: 6454}, + // 3950 + {508: 2710, 732: 4026, 763: 6466}, {202, 202, 13: 202, 46: 202}, - // 3945 {201, 201, 13: 201, 46: 201}, - {104: 6455}, + {104: 6467}, {203, 203, 13: 203, 46: 203}, + // 3955 {206, 206, 13: 206, 46: 206}, {205, 205, 13: 205, 46: 205}, - // 3950 {207, 207, 13: 207, 46: 207}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 6460, 2731, 2732, 2730}, - {499: 6461}, - {475: 6462}, - {1943, 1943, 15: 1943, 48: 1943, 50: 1943, 1943, 1943, 1943, 1943, 1943, 1943, 1943, 1943, 1943, 1943, 1943, 1943, 1943, 1943, 1943, 1943, 1943, 1943, 138: 6465, 472: 1943, 507: 6464, 652: 1943, 1040: 6463}, - // 3955 - {2000, 2000, 15: 2000, 48: 2000, 50: 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 472: 2000, 652: 2000, 896: 6470}, - {1942, 1942, 15: 1942, 48: 1942, 50: 1942, 1942, 1942, 1942, 1942, 1942, 1942, 1942, 1942, 1942, 1942, 1942, 1942, 1942, 1942, 1942, 1942, 1942, 1942, 1942, 472: 1942, 652: 1942}, - {199: 6468, 391: 6469, 642: 6467, 650: 6466}, - {1941, 1941, 15: 1941, 48: 1941, 50: 1941, 1941, 1941, 1941, 1941, 1941, 1941, 1941, 1941, 1941, 1941, 1941, 1941, 1941, 1941, 1941, 1941, 1941, 1941, 1941, 472: 1941, 652: 1941}, - {1940, 1940, 15: 1940, 48: 1940, 50: 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 472: 1940, 652: 1940}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 6472, 2736, 2737, 2735}, + {499: 6473}, // 3960 - {1939, 1939, 15: 1939, 48: 1939, 50: 1939, 1939, 1939, 1939, 1939, 1939, 1939, 1939, 1939, 1939, 1939, 1939, 1939, 1939, 1939, 1939, 1939, 1939, 1939, 1939, 472: 1939, 652: 1939}, - {1938, 1938, 15: 1938, 48: 1938, 50: 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 472: 1938, 652: 1938}, - {1955, 1955, 15: 6185, 48: 6161, 50: 6181, 6174, 6164, 6160, 6168, 6172, 6184, 6167, 6173, 6171, 6169, 6182, 6175, 6163, 6183, 6162, 6165, 6166, 6170, 472: 6176, 652: 6186, 892: 6178, 6177, 6180, 6159, 897: 6179}, - {16: 2084, 81: 2084, 99: 2084, 140: 2084, 667: 2084}, - {99: 2079, 140: 6521, 667: 2079, 1329: 6520}, + {475: 6474}, + {1947, 1947, 15: 1947, 48: 1947, 50: 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 138: 6477, 472: 1947, 507: 6476, 652: 1947, 1040: 6475}, + {2004, 2004, 15: 2004, 48: 2004, 50: 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 472: 2004, 652: 2004, 896: 6482}, + {1946, 1946, 15: 1946, 48: 1946, 50: 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 472: 1946, 652: 1946}, + {199: 6480, 391: 6481, 642: 6479, 650: 6478}, // 3965 - {498: 6516}, - {160: 6475}, - {2: 1848, 1848, 1848, 1848, 1848, 8: 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 48: 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 566: 4788, 784: 6476}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 4951, 2731, 2732, 2730, 884: 6477}, - {86: 6481, 88: 6486, 6488, 6482, 6487, 6490, 6484, 6480, 6485, 6489, 6483, 872: 6478, 1101: 6479}, + {1945, 1945, 15: 1945, 48: 1945, 50: 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945, 472: 1945, 652: 1945}, + {1944, 1944, 15: 1944, 48: 1944, 50: 1944, 1944, 1944, 1944, 1944, 1944, 1944, 1944, 1944, 1944, 1944, 1944, 1944, 1944, 1944, 1944, 1944, 1944, 1944, 1944, 472: 1944, 652: 1944}, + {1943, 1943, 15: 1943, 48: 1943, 50: 1943, 1943, 1943, 1943, 1943, 1943, 1943, 1943, 1943, 1943, 1943, 1943, 1943, 1943, 1943, 1943, 1943, 1943, 1943, 1943, 472: 1943, 652: 1943}, + {1942, 1942, 15: 1942, 48: 1942, 50: 1942, 1942, 1942, 1942, 1942, 1942, 1942, 1942, 1942, 1942, 1942, 1942, 1942, 1942, 1942, 1942, 1942, 1942, 1942, 1942, 472: 1942, 652: 1942}, + {1959, 1959, 15: 6197, 48: 6173, 50: 6193, 6186, 6176, 6172, 6180, 6184, 6196, 6179, 6185, 6183, 6181, 6194, 6187, 6175, 6195, 6174, 6177, 6178, 6182, 472: 6188, 652: 6198, 892: 6190, 6189, 6192, 6171, 897: 6191}, // 3970 - {2502, 2502, 7: 2502, 86: 2502, 88: 2502, 2502, 2502, 2502, 2502, 2502, 2502, 2502, 2502, 2502}, - {52, 52, 7: 6514, 86: 6481, 88: 6486, 6488, 6482, 6487, 6490, 6484, 6480, 6485, 6489, 6483, 872: 6513}, - {475: 2037, 498: 4246, 735: 6511}, - {475: 2037, 498: 4246, 735: 6509}, - {498: 4246, 508: 2037, 735: 6507}, + {16: 2088, 81: 2088, 99: 2088, 140: 2088, 667: 2088}, + {99: 2083, 140: 6533, 667: 2083, 1330: 6532}, + {498: 6528}, + {161: 6487}, + {2: 1852, 1852, 1852, 1852, 1852, 8: 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 48: 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 566: 4793, 784: 6488}, // 3975 - {498: 4246, 508: 2037, 735: 6505}, - {498: 4246, 508: 2037, 735: 6503}, - {475: 2037, 498: 4246, 735: 6501}, - {475: 2037, 498: 4246, 735: 6499}, - {475: 2037, 498: 4246, 735: 6497}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 4956, 2736, 2737, 2735, 884: 6489}, + {86: 6493, 88: 6498, 6500, 6494, 6499, 6502, 6496, 6492, 6497, 6501, 6495, 872: 6490, 1101: 6491}, + {2506, 2506, 7: 2506, 86: 2506, 88: 2506, 2506, 2506, 2506, 2506, 2506, 2506, 2506, 2506, 2506}, + {52, 52, 7: 6526, 86: 6493, 88: 6498, 6500, 6494, 6499, 6502, 6496, 6492, 6497, 6501, 6495, 872: 6525}, + {475: 2041, 498: 4251, 735: 6523}, // 3980 - {475: 2037, 498: 4246, 735: 6495}, - {475: 2037, 498: 4246, 735: 6493}, - {475: 2037, 498: 4246, 735: 6491}, - {475: 6492}, - {2489, 2489, 7: 2489, 86: 2489, 88: 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489}, + {475: 2041, 498: 4251, 735: 6521}, + {498: 4251, 508: 2041, 735: 6519}, + {498: 4251, 508: 2041, 735: 6517}, + {498: 4251, 508: 2041, 735: 6515}, + {475: 2041, 498: 4251, 735: 6513}, // 3985 - {475: 6494}, - {2490, 2490, 7: 2490, 86: 2490, 88: 2490, 2490, 2490, 2490, 2490, 2490, 2490, 2490, 2490, 2490}, - {475: 6496}, - {2491, 2491, 7: 2491, 86: 2491, 88: 2491, 2491, 2491, 2491, 2491, 2491, 2491, 2491, 2491, 2491}, - {475: 6498}, + {475: 2041, 498: 4251, 735: 6511}, + {475: 2041, 498: 4251, 735: 6509}, + {475: 2041, 498: 4251, 735: 6507}, + {475: 2041, 498: 4251, 735: 6505}, + {475: 2041, 498: 4251, 735: 6503}, // 3990 - {2492, 2492, 7: 2492, 86: 2492, 88: 2492, 2492, 2492, 2492, 2492, 2492, 2492, 2492, 2492, 2492}, - {475: 6500}, + {475: 6504}, {2493, 2493, 7: 2493, 86: 2493, 88: 2493, 2493, 2493, 2493, 2493, 2493, 2493, 2493, 2493, 2493}, - {475: 6502}, + {475: 6506}, {2494, 2494, 7: 2494, 86: 2494, 88: 2494, 2494, 2494, 2494, 2494, 2494, 2494, 2494, 2494, 2494}, + {475: 6508}, // 3995 - {508: 2705, 732: 2704, 743: 6504}, {2495, 2495, 7: 2495, 86: 2495, 88: 2495, 2495, 2495, 2495, 2495, 2495, 2495, 2495, 2495, 2495}, - {508: 2705, 732: 2704, 743: 6506}, + {475: 6510}, {2496, 2496, 7: 2496, 86: 2496, 88: 2496, 2496, 2496, 2496, 2496, 2496, 2496, 2496, 2496, 2496}, - {508: 2705, 732: 2704, 743: 6508}, - // 4000 + {475: 6512}, {2497, 2497, 7: 2497, 86: 2497, 88: 2497, 2497, 2497, 2497, 2497, 2497, 2497, 2497, 2497, 2497}, - {475: 6510}, + // 4000 + {475: 6514}, {2498, 2498, 7: 2498, 86: 2498, 88: 2498, 2498, 2498, 2498, 2498, 2498, 2498, 2498, 2498, 2498}, - {475: 6512}, + {508: 2710, 732: 2709, 742: 6516}, {2499, 2499, 7: 2499, 86: 2499, 88: 2499, 2499, 2499, 2499, 2499, 2499, 2499, 2499, 2499, 2499}, + {508: 2710, 732: 2709, 742: 6518}, // 4005 - {2501, 2501, 7: 2501, 86: 2501, 88: 2501, 2501, 2501, 2501, 2501, 2501, 2501, 2501, 2501, 2501}, - {86: 6481, 88: 6486, 6488, 6482, 6487, 6490, 6484, 6480, 6485, 6489, 6483, 872: 6515}, {2500, 2500, 7: 2500, 86: 2500, 88: 2500, 2500, 2500, 2500, 2500, 2500, 2500, 2500, 2500, 2500}, - {357: 6518, 397: 6519, 405: 6517}, - {99: 2082, 140: 2082, 667: 2082}, + {508: 2710, 732: 2709, 742: 6520}, + {2501, 2501, 7: 2501, 86: 2501, 88: 2501, 2501, 2501, 2501, 2501, 2501, 2501, 2501, 2501, 2501}, + {475: 6522}, + {2502, 2502, 7: 2502, 86: 2502, 88: 2502, 2502, 2502, 2502, 2502, 2502, 2502, 2502, 2502, 2502}, // 4010 - {99: 2081, 140: 2081, 667: 2081}, - {99: 2080, 140: 2080, 667: 2080}, - {99: 2077, 667: 6525, 1332: 6524}, - {498: 6522}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 475: 3458, 570: 5195, 663: 3459, 2731, 2732, 2730, 737: 5194, 776: 6523}, + {475: 6524}, + {2503, 2503, 7: 2503, 86: 2503, 88: 2503, 2503, 2503, 2503, 2503, 2503, 2503, 2503, 2503, 2503}, + {2505, 2505, 7: 2505, 86: 2505, 88: 2505, 2505, 2505, 2505, 2505, 2505, 2505, 2505, 2505, 2505}, + {86: 6493, 88: 6498, 6500, 6494, 6499, 6502, 6496, 6492, 6497, 6501, 6495, 872: 6527}, + {2504, 2504, 7: 2504, 86: 2504, 88: 2504, 2504, 2504, 2504, 2504, 2504, 2504, 2504, 2504, 2504}, // 4015 - {99: 2078, 667: 2078}, - {99: 6529}, - {383: 6526}, - {140: 6527, 348: 6528}, - {99: 2076}, + {357: 6530, 397: 6531, 405: 6529}, + {99: 2086, 140: 2086, 667: 2086}, + {99: 2085, 140: 2085, 667: 2085}, + {99: 2084, 140: 2084, 667: 2084}, + {99: 2081, 667: 6537, 1333: 6536}, // 4020 - {99: 2075}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 3889, 2731, 2732, 2730, 736: 6531, 1331: 6530}, - {473: 6533, 478: 2073, 1330: 6532}, - {473: 2074, 478: 2074}, - {478: 6539}, + {498: 6534}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 475: 3463, 570: 5200, 663: 3464, 2736, 2737, 2735, 737: 5199, 776: 6535}, + {99: 2082, 667: 2082}, + {99: 6541}, + {383: 6538}, // 4025 - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 6535, 2731, 2732, 2730, 1185: 6534}, - {7: 6537, 47: 6536}, - {7: 2071, 47: 2071}, - {478: 2072}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 6538, 2731, 2732, 2730}, + {140: 6539, 348: 6540}, + {99: 2080}, + {99: 2079}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 3894, 2736, 2737, 2735, 736: 6543, 1332: 6542}, + {473: 6545, 478: 2077, 1331: 6544}, // 4030 - {7: 2070, 47: 2070}, - {473: 2559, 2558, 501: 2557, 569: 2556, 645: 2552, 708: 6543, 747: 6541, 2553, 2554, 2555, 2564, 755: 2562, 2561, 2560, 3848, 6542, 6540, 1195: 6544}, - {2092, 2092, 474: 2092}, - {2091, 2091, 474: 2091, 480: 806, 488: 806, 806}, - {2090, 2090, 474: 2090}, + {473: 2078, 478: 2078}, + {478: 6551}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 6547, 2736, 2737, 2735, 1186: 6546}, + {7: 6549, 47: 6548}, + {7: 2075, 47: 2075}, // 4035 - {2089, 2089, 474: 2089, 480: 805, 488: 805, 805, 493: 2697, 500: 2698, 502: 2694, 766: 3859, 3860}, - {2069, 2069, 474: 6546, 1328: 6545}, - {2086, 2086}, - {136: 6548, 316: 6547}, - {582: 6551}, + {478: 2076}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 6550, 2736, 2737, 2735}, + {7: 2074, 47: 2074}, + {473: 2564, 2563, 501: 2562, 569: 2561, 645: 2557, 708: 6555, 747: 6553, 2558, 2559, 2560, 2569, 755: 2567, 2566, 2565, 3853, 6554, 6552, 1196: 6556}, + {2096, 2096, 474: 2096}, // 4040 - {582: 6549}, - {904: 6550}, - {2067, 2067}, - {904: 6552}, - {2068, 2068}, + {2095, 2095, 474: 2095, 480: 810, 488: 810, 810}, + {2094, 2094, 474: 2094}, + {2093, 2093, 474: 2093, 480: 809, 488: 809, 809, 493: 2702, 500: 2703, 502: 2699, 766: 3864, 3865}, + {2073, 2073, 474: 6558, 1329: 6557}, + {2090, 2090}, // 4045 - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 5294, 2731, 2732, 2730, 814: 6554}, - {2165, 2165, 14: 2156, 16: 2156, 19: 2156, 479: 4205, 482: 2156, 504: 6558, 506: 2156, 646: 2156, 779: 6557, 791: 6556, 848: 6560, 930: 6559, 1196: 6555}, - {2174, 2174}, - {14: 3804, 16: 4164, 19: 6568, 482: 6567, 506: 3805, 646: 3803, 772: 6566, 779: 6569}, - {2167, 2167, 14: 2167, 16: 2167, 19: 2167, 479: 2167, 482: 2167, 504: 2167, 506: 2167, 646: 2167}, + {136: 6560, 316: 6559}, + {582: 6563}, + {582: 6561}, + {904: 6562}, + {2071, 2071}, // 4050 - {217: 6562}, - {2164, 2164, 14: 2156, 16: 2156, 19: 2156, 479: 4205, 482: 2156, 504: 6558, 506: 2156, 646: 2156, 779: 6557, 791: 6556, 848: 6561}, - {2163, 2163, 14: 2163, 16: 2163, 19: 2163, 479: 2163, 482: 2163, 504: 2163, 506: 2163, 646: 2163}, - {2162, 2162, 14: 2162, 16: 2162, 19: 2162, 479: 2162, 482: 2162, 504: 2162, 506: 2162, 646: 2162}, - {213: 6563}, + {904: 6564}, + {2072, 2072}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 5299, 2736, 2737, 2735, 814: 6566}, + {2169, 2169, 14: 2160, 16: 2160, 19: 2160, 479: 4210, 482: 2160, 504: 6570, 506: 2160, 646: 2160, 779: 6569, 791: 6568, 848: 6572, 930: 6571, 1197: 6567}, + {2178, 2178}, // 4055 - {508: 2705, 732: 2704, 743: 6564}, - {2475, 2475, 14: 2475, 16: 2475, 19: 2475, 178: 4927, 479: 2475, 482: 2475, 504: 2475, 506: 2475, 646: 2475, 1075: 6565}, - {2166, 2166, 14: 2166, 16: 2166, 19: 2166, 479: 2166, 482: 2166, 504: 2166, 506: 2166, 646: 2166}, - {2: 2037, 2037, 2037, 2037, 2037, 8: 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 48: 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 475: 2037, 498: 4246, 543: 2037, 735: 6574}, - {2: 2037, 2037, 2037, 2037, 2037, 8: 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 48: 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 475: 2037, 498: 4246, 543: 2037, 735: 6572}, + {14: 3809, 16: 4169, 19: 6580, 482: 6579, 506: 3810, 646: 3808, 772: 6578, 779: 6581}, + {2171, 2171, 14: 2171, 16: 2171, 19: 2171, 479: 2171, 482: 2171, 504: 2171, 506: 2171, 646: 2171}, + {217: 6574}, + {2168, 2168, 14: 2160, 16: 2160, 19: 2160, 479: 4210, 482: 2160, 504: 6570, 506: 2160, 646: 2160, 779: 6569, 791: 6568, 848: 6573}, + {2167, 2167, 14: 2167, 16: 2167, 19: 2167, 479: 2167, 482: 2167, 504: 2167, 506: 2167, 646: 2167}, // 4060 - {475: 2037, 498: 4246, 735: 6570}, - {2168, 2168, 14: 2168, 16: 2168, 19: 2168, 479: 2168, 482: 2168, 504: 2168, 506: 2168, 646: 2168}, - {475: 4264, 1038: 6571}, - {2169, 2169, 14: 2169, 16: 2169, 19: 2169, 479: 2169, 482: 2169, 504: 2169, 506: 2169, 646: 2169}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 475: 3458, 543: 3457, 663: 3459, 2731, 2732, 2730, 737: 3456, 870: 6573}, - // 4065 + {2166, 2166, 14: 2166, 16: 2166, 19: 2166, 479: 2166, 482: 2166, 504: 2166, 506: 2166, 646: 2166}, + {213: 6575}, + {508: 2710, 732: 2709, 742: 6576}, + {2479, 2479, 14: 2479, 16: 2479, 19: 2479, 178: 4932, 479: 2479, 482: 2479, 504: 2479, 506: 2479, 646: 2479, 1075: 6577}, {2170, 2170, 14: 2170, 16: 2170, 19: 2170, 479: 2170, 482: 2170, 504: 2170, 506: 2170, 646: 2170}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 475: 3458, 543: 3729, 663: 3459, 2731, 2732, 2730, 737: 3728, 806: 6575}, - {2171, 2171, 14: 2171, 16: 2171, 19: 2171, 479: 2171, 482: 2171, 504: 2171, 506: 2171, 646: 2171}, - {2: 1848, 1848, 1848, 1848, 1848, 8: 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 48: 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 566: 4788, 784: 6577}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 6578, 2731, 2732, 2730}, + // 4065 + {2: 2041, 2041, 2041, 2041, 2041, 8: 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 48: 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 475: 2041, 498: 4251, 543: 2041, 735: 6586}, + {2: 2041, 2041, 2041, 2041, 2041, 8: 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 48: 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 475: 2041, 498: 4251, 543: 2041, 735: 6584}, + {475: 2041, 498: 4251, 735: 6582}, + {2172, 2172, 14: 2172, 16: 2172, 19: 2172, 479: 2172, 482: 2172, 504: 2172, 506: 2172, 646: 2172}, + {475: 4269, 1038: 6583}, // 4070 - {82: 4821, 472: 1831, 481: 4820, 856: 6580, 1228: 6579}, - {472: 6581}, - {472: 1830}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 3889, 2731, 2732, 2730, 736: 6582}, - {473: 6583}, + {2173, 2173, 14: 2173, 16: 2173, 19: 2173, 479: 2173, 482: 2173, 504: 2173, 506: 2173, 646: 2173}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 475: 3463, 543: 3462, 663: 3464, 2736, 2737, 2735, 737: 3461, 870: 6585}, + {2174, 2174, 14: 2174, 16: 2174, 19: 2174, 479: 2174, 482: 2174, 504: 2174, 506: 2174, 646: 2174}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 475: 3463, 543: 3734, 663: 3464, 2736, 2737, 2735, 737: 3733, 806: 6587}, + {2175, 2175, 14: 2175, 16: 2175, 19: 2175, 479: 2175, 482: 2175, 504: 2175, 506: 2175, 646: 2175}, // 4075 - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 473: 4582, 663: 4111, 2731, 2732, 2730, 742: 4581, 826: 4580, 834: 6584}, - {7: 4591, 47: 6585}, - {1842, 1842, 4: 1842, 17: 1842, 81: 1842, 1842, 1842, 1842, 1842, 87: 1842, 474: 1842, 481: 1842, 496: 1842, 878: 6586}, - {2185, 2185, 4: 4817, 17: 4814, 81: 4200, 4821, 4681, 4394, 4682, 87: 4393, 474: 4816, 481: 4820, 496: 4201, 854: 4818, 856: 4815, 867: 4819, 6360, 877: 4813, 881: 6359, 1062: 6587}, - {2192, 2192}, - // 4080 - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 6589, 2731, 2732, 2730}, - {473: 6590}, - {228: 4850, 236: 4852, 239: 4851, 1137: 6591}, - {47: 6592}, + {2: 1852, 1852, 1852, 1852, 1852, 8: 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 48: 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 566: 4793, 784: 6589}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 6590, 2736, 2737, 2735}, + {82: 4826, 472: 1835, 481: 4825, 856: 6592, 1229: 6591}, {472: 6593}, - // 4085 - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 3889, 2731, 2732, 2730, 736: 6594}, + {472: 1834}, + // 4080 + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 3894, 2736, 2737, 2735, 736: 6594}, {473: 6595}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 4111, 2731, 2732, 2730, 742: 4112, 807: 6596}, - {7: 4114, 47: 6597}, - {2194, 2194}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 473: 4587, 663: 4116, 2736, 2737, 2735, 743: 4586, 826: 4585, 834: 6596}, + {7: 4596, 47: 6597}, + {1846, 1846, 4: 1846, 17: 1846, 81: 1846, 1846, 1846, 1846, 1846, 87: 1846, 474: 1846, 481: 1846, 496: 1846, 878: 6598}, + // 4085 + {2189, 2189, 4: 4822, 17: 4819, 81: 4205, 4826, 4686, 4399, 4687, 87: 4398, 474: 4821, 481: 4825, 496: 4206, 854: 4823, 856: 4820, 867: 4824, 6372, 877: 4818, 881: 6371, 1062: 6599}, + {2196, 2196}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 6601, 2736, 2737, 2735}, + {473: 6602}, + {228: 4855, 236: 4857, 239: 4856, 1137: 6603}, // 4090 - {2294, 2294}, - {2319, 2319}, - {2325, 2325, 474: 6602, 670: 6601}, - {151: 6609, 686: 6608}, - {317: 6604, 325: 6603}, + {47: 6604}, + {472: 6605}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 3894, 2736, 2737, 2735, 736: 6606}, + {473: 6607}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 4116, 2736, 2737, 2735, 743: 4117, 807: 6608}, // 4095 - {50: 6607}, - {324: 6605}, - {151: 6606}, - {2322, 2322}, + {7: 4119, 47: 6609}, + {2198, 2198}, + {2298, 2298}, {2323, 2323}, + {2329, 2329, 474: 6614, 670: 6613}, // 4100 - {2324, 2324}, - {2321, 2321, 672: 5369, 922: 6610}, - {2320, 2320}, - {2327, 2327}, - {2326, 2326}, + {151: 6621, 686: 6620}, + {317: 6616, 325: 6615}, + {50: 6619}, + {324: 6617}, + {151: 6618}, // 4105 - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 3889, 2731, 2732, 2730, 736: 6626, 794: 6625}, - {569: 6615}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 3889, 2731, 2732, 2730, 736: 6616}, - {490: 6618, 648: 6617}, - {899, 899, 2971, 2816, 2852, 2973, 2743, 899, 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 474: 899, 586: 4975, 663: 4974, 2731, 2732, 2730, 855: 6623}, + {2326, 2326}, + {2327, 2327}, + {2328, 2328}, + {2325, 2325, 672: 5374, 922: 6622}, + {2324, 2324}, // 4110 - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 4712, 2731, 2732, 2730, 788: 6619}, - {7: 4713, 648: 6620}, - {899, 899, 2971, 2816, 2852, 2973, 2743, 899, 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 474: 899, 586: 4975, 663: 4974, 2731, 2732, 2730, 855: 6621}, - {2343, 2343, 7: 4977, 474: 4958, 803: 6622}, - {2351, 2351}, + {2331, 2331}, + {2330, 2330}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 3894, 2736, 2737, 2735, 736: 6638, 794: 6637}, + {569: 6627}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 3894, 2736, 2737, 2735, 736: 6628}, // 4115 - {2343, 2343, 7: 4977, 474: 4958, 803: 6624}, - {2354, 2354}, - {2346, 2346, 7: 3892, 161: 6646, 474: 2346, 650: 6645, 979: 6656}, - {1044, 1044, 7: 1044, 98: 6631, 161: 1044, 474: 1044, 490: 6628, 648: 6627, 650: 1044, 653: 6629, 668: 6630}, - {899, 899, 2971, 2816, 2852, 2973, 2743, 899, 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 474: 899, 586: 4975, 663: 4974, 2731, 2732, 2730, 855: 6654}, + {490: 6630, 648: 6629}, + {903, 903, 2976, 2821, 2857, 2978, 2748, 903, 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 474: 903, 586: 4980, 663: 4979, 2736, 2737, 2735, 855: 6635}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 4717, 2736, 2737, 2735, 788: 6631}, + {7: 4718, 648: 6632}, + {903, 903, 2976, 2821, 2857, 2978, 2748, 903, 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 474: 903, 586: 4980, 663: 4979, 2736, 2737, 2735, 855: 6633}, // 4120 - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 4712, 2731, 2732, 2730, 788: 6641}, - {254: 6637}, - {254: 6634}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 5792, 2731, 2732, 2730, 875: 6632}, - {2343, 2343, 7: 5794, 474: 4958, 803: 6633}, + {2347, 2347, 7: 4982, 474: 4963, 803: 6634}, + {2355, 2355}, + {2347, 2347, 7: 4982, 474: 4963, 803: 6636}, + {2358, 2358}, + {2350, 2350, 7: 3897, 162: 6658, 474: 2350, 650: 6657, 979: 6668}, // 4125 - {2348, 2348}, - {472: 6635}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 5792, 2731, 2732, 2730, 875: 6636}, - {2349, 2349, 7: 5794}, - {472: 6638}, + {1048, 1048, 7: 1048, 98: 6643, 162: 1048, 474: 1048, 490: 6640, 648: 6639, 650: 1048, 653: 6641, 668: 6642}, + {903, 903, 2976, 2821, 2857, 2978, 2748, 903, 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 474: 903, 586: 4980, 663: 4979, 2736, 2737, 2735, 855: 6666}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 4717, 2736, 2737, 2735, 788: 6653}, + {254: 6649}, + {254: 6646}, // 4130 - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 5792, 2731, 2732, 2730, 875: 6639}, - {2343, 2343, 7: 5794, 474: 4958, 803: 6640}, - {2350, 2350}, - {2346, 2346, 7: 4713, 98: 6644, 161: 6646, 474: 2346, 648: 6643, 650: 6645, 979: 6642}, - {2343, 2343, 474: 4958, 803: 6653}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 5804, 2736, 2737, 2735, 875: 6644}, + {2347, 2347, 7: 5806, 474: 4963, 803: 6645}, + {2352, 2352}, + {472: 6647}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 5804, 2736, 2737, 2735, 875: 6648}, // 4135 - {899, 899, 2971, 2816, 2852, 2973, 2743, 899, 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 474: 899, 586: 4975, 663: 4974, 2731, 2732, 2730, 855: 6651}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 5792, 2731, 2732, 2730, 875: 6649}, - {98: 6648}, - {98: 6647}, - {2344, 2344, 474: 2344}, + {2353, 2353, 7: 5806}, + {472: 6650}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 5804, 2736, 2737, 2735, 875: 6651}, + {2347, 2347, 7: 5806, 474: 4963, 803: 6652}, + {2354, 2354}, // 4140 - {2345, 2345, 474: 2345}, - {2343, 2343, 7: 5794, 474: 4958, 803: 6650}, - {2347, 2347}, - {2343, 2343, 7: 4977, 474: 4958, 803: 6652}, - {2352, 2352}, + {2350, 2350, 7: 4718, 98: 6656, 162: 6658, 474: 2350, 648: 6655, 650: 6657, 979: 6654}, + {2347, 2347, 474: 4963, 803: 6665}, + {903, 903, 2976, 2821, 2857, 2978, 2748, 903, 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 474: 903, 586: 4980, 663: 4979, 2736, 2737, 2735, 855: 6663}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 5804, 2736, 2737, 2735, 875: 6661}, + {98: 6660}, // 4145 - {2353, 2353}, - {2343, 2343, 7: 4977, 474: 4958, 803: 6655}, - {2355, 2355}, - {2343, 2343, 474: 4958, 803: 6657}, - {2356, 2356}, + {98: 6659}, + {2348, 2348, 474: 2348}, + {2349, 2349, 474: 2349}, + {2347, 2347, 7: 5806, 474: 4963, 803: 6662}, + {2351, 2351}, // 4150 - {569: 6663}, - {494: 6661}, - {569: 2358}, - {490: 6662, 569: 2359}, - {569: 2357}, + {2347, 2347, 7: 4982, 474: 4963, 803: 6664}, + {2356, 2356}, + {2357, 2357}, + {2347, 2347, 7: 4982, 474: 4963, 803: 6667}, + {2359, 2359}, // 4155 - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 3889, 2731, 2732, 2730, 736: 6664}, - {490: 5363, 555: 913, 648: 913, 659: 913, 858: 6665}, - {555: 6668, 648: 6667, 659: 6669, 1132: 6666}, - {2364, 2364}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 6676, 2731, 2732, 2730}, + {2347, 2347, 474: 4963, 803: 6669}, + {2360, 2360}, + {569: 6675}, + {494: 6673}, + {569: 2362}, // 4160 - {473: 3865, 838: 6671}, - {473: 3865, 838: 5933, 973: 6670}, - {2361, 2361, 7: 5934}, - {505: 6672}, - {473: 3865, 838: 6673}, + {490: 6674, 569: 2363}, + {569: 2361}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 3894, 2736, 2737, 2735, 736: 6676}, + {490: 5368, 555: 917, 648: 917, 659: 917, 858: 6677}, + {555: 6680, 648: 6679, 659: 6681, 1132: 6678}, // 4165 - {86: 6674}, - {508: 2705, 732: 4021, 763: 6675}, - {2362, 2362}, - {555: 6668, 659: 6669, 1132: 6677}, - {2363, 2363}, + {2368, 2368}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 6688, 2736, 2737, 2735}, + {473: 3870, 838: 6683}, + {473: 3870, 838: 5945, 973: 6682}, + {2365, 2365, 7: 5946}, // 4170 - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 3889, 2731, 2732, 2730, 736: 6679}, - {2366, 2366, 649: 6681, 1212: 6680}, - {2367, 2367}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 6682, 2731, 2732, 2730}, - {2365, 2365}, + {505: 6684}, + {473: 3870, 838: 6685}, + {86: 6686}, + {508: 2710, 732: 4026, 763: 6687}, + {2366, 2366}, // 4175 - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 659: 6684, 663: 3889, 2731, 2732, 2730, 736: 6685}, - {260: 6687}, - {2369, 2369, 508: 2705, 732: 4021, 763: 6686}, - {2368, 2368}, - {508: 2705, 732: 4021, 763: 6688}, + {555: 6680, 659: 6681, 1132: 6689}, + {2367, 2367}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 3894, 2736, 2737, 2735, 736: 6691}, + {2370, 2370, 649: 6693, 1213: 6692}, + {2371, 2371}, // 4180 - {2370, 2370}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 3889, 2731, 2732, 2730, 736: 6700, 1147: 6699, 1317: 6698}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 475: 3458, 570: 5195, 663: 3459, 2731, 2732, 2730, 737: 5194, 776: 6693, 1152: 6692, 1322: 6691}, - {2374, 2374, 7: 6696}, - {2373, 2373, 7: 2373}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 6694, 2736, 2737, 2735}, + {2369, 2369}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 659: 6696, 663: 3894, 2736, 2737, 2735, 736: 6697}, + {260: 6699}, + {2373, 2373, 508: 2710, 732: 4026, 763: 6698}, // 4185 - {649: 6694}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 475: 3458, 570: 5195, 663: 3459, 2731, 2732, 2730, 737: 5194, 776: 6695}, - {2371, 2371, 7: 2371}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 475: 3458, 570: 5195, 663: 3459, 2731, 2732, 2730, 737: 5194, 776: 6693, 1152: 6697}, - {2372, 2372, 7: 2372}, + {2372, 2372}, + {508: 2710, 732: 4026, 763: 6700}, + {2374, 2374}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 3894, 2736, 2737, 2735, 736: 6712, 1147: 6711, 1318: 6710}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 475: 3463, 570: 5200, 663: 3464, 2736, 2737, 2735, 737: 5199, 776: 6705, 1152: 6704, 1323: 6703}, // 4190 - {2378, 2378, 7: 6703}, + {2378, 2378, 7: 6708}, {2377, 2377, 7: 2377}, - {649: 6701}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 3889, 2731, 2732, 2730, 736: 6702}, + {649: 6706}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 475: 3463, 570: 5200, 663: 3464, 2736, 2737, 2735, 737: 5199, 776: 6707}, {2375, 2375, 7: 2375}, // 4195 - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 3889, 2731, 2732, 2730, 736: 6700, 1147: 6704}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 475: 3463, 570: 5200, 663: 3464, 2736, 2737, 2735, 737: 5199, 776: 6705, 1152: 6709}, {2376, 2376, 7: 2376}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 2156, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 479: 4205, 482: 2156, 504: 6558, 506: 2156, 646: 2156, 663: 5294, 2731, 2732, 2730, 779: 6557, 791: 6556, 814: 6754, 848: 6560, 930: 6755}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 6744, 2731, 2732, 2730}, - {2: 1850, 1850, 1850, 1850, 1850, 8: 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 48: 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 475: 1850, 566: 4416, 570: 1850, 780: 6733}, + {2382, 2382, 7: 6715}, + {2381, 2381, 7: 2381}, + {649: 6713}, // 4200 - {274: 6727, 1230: 6726}, - {160: 6722}, - {2: 1850, 1850, 1850, 1850, 1850, 8: 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 48: 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 566: 4416, 780: 6711}, - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 3889, 2731, 2732, 2730, 736: 6712}, - {70: 6389, 6386, 6392, 6393, 6394, 6387, 6385, 6395, 6391, 6388, 6716, 656: 6390, 911: 6715, 985: 6714, 1165: 6713}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 3894, 2736, 2737, 2735, 736: 6714}, + {2379, 2379, 7: 2379}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 3894, 2736, 2737, 2735, 736: 6712, 1147: 6716}, + {2380, 2380, 7: 2380}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 2160, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 479: 4210, 482: 2160, 504: 6570, 506: 2160, 646: 2160, 663: 5299, 2736, 2737, 2735, 779: 6569, 791: 6568, 814: 6766, 848: 6572, 930: 6767}, // 4205 - {25, 25, 70: 6389, 6386, 6392, 6393, 6394, 6387, 6385, 6395, 6391, 6388, 6716, 656: 6390, 911: 6715, 985: 6721}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 6756, 2736, 2737, 2735}, + {2: 1854, 1854, 1854, 1854, 1854, 8: 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 48: 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 475: 1854, 566: 4421, 570: 1854, 780: 6745}, + {274: 6739, 1231: 6738}, + {161: 6734}, + {2: 1854, 1854, 1854, 1854, 1854, 8: 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 48: 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 566: 4421, 780: 6723}, + // 4210 + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 3894, 2736, 2737, 2735, 736: 6724}, + {70: 6401, 6398, 6404, 6405, 6406, 6399, 6397, 6407, 6403, 6400, 6728, 656: 6402, 911: 6727, 985: 6726, 1166: 6725}, + {25, 25, 70: 6401, 6398, 6404, 6405, 6406, 6399, 6397, 6407, 6403, 6400, 6728, 656: 6402, 911: 6727, 985: 6733}, {24, 24, 70: 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 656: 24}, {22, 22, 70: 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 656: 22}, - {21, 21, 70: 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 474: 6718, 485: 2037, 2037, 498: 4246, 508: 2037, 656: 21, 735: 6717}, - {485: 4024, 4025, 508: 2705, 732: 4021, 763: 4023, 812: 6720}, - // 4210 - {485: 4024, 4025, 508: 2705, 732: 4021, 763: 4023, 812: 6719}, + // 4215 + {21, 21, 70: 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 474: 6730, 485: 2041, 2041, 498: 4251, 508: 2041, 656: 21, 735: 6729}, + {485: 4029, 4030, 508: 2710, 732: 4026, 763: 4028, 812: 6732}, + {485: 4029, 4030, 508: 2710, 732: 4026, 763: 4028, 812: 6731}, {19, 19, 70: 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 656: 19}, {20, 20, 70: 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 656: 20}, - {23, 23, 70: 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 656: 23}, - {2: 1850, 1850, 1850, 1850, 1850, 8: 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 48: 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 1850, 566: 4416, 780: 6723}, - // 4215 - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 3347, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 663: 4951, 2731, 2732, 2730, 884: 6724}, - {86: 6481, 88: 6486, 6488, 6482, 6487, 6490, 6484, 6480, 6485, 6489, 6483, 872: 6478, 1101: 6725}, - {51, 51, 7: 6514, 86: 6481, 88: 6486, 6488, 6482, 6487, 6490, 6484, 6480, 6485, 6489, 6483, 872: 6513}, - {237, 237}, - {400: 6728}, // 4220 - {236, 236, 70: 6729}, - {152: 6730}, - {472: 6731}, - {202: 6732}, - {235, 235}, + {23, 23, 70: 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 656: 23}, + {2: 1854, 1854, 1854, 1854, 1854, 8: 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 48: 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 566: 4421, 780: 6735}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 3352, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 663: 4956, 2736, 2737, 2735, 884: 6736}, + {86: 6493, 88: 6498, 6500, 6494, 6499, 6502, 6496, 6492, 6497, 6501, 6495, 872: 6490, 1101: 6737}, + {51, 51, 7: 6526, 86: 6493, 88: 6498, 6500, 6494, 6499, 6502, 6496, 6492, 6497, 6501, 6495, 872: 6525}, // 4225 - {2: 2971, 2816, 2852, 2973, 2743, 8: 2789, 2744, 2875, 2990, 2983, 3340, 3335, 2855, 3138, 2857, 2831, 2775, 2778, 2767, 2800, 2859, 2860, 2967, 2854, 2991, 3095, 3094, 2742, 2853, 2856, 2867, 2807, 2811, 2863, 2976, 2822, 2903, 2740, 2741, 2902, 2975, 2739, 2988, 2948, 48: 3059, 2821, 2824, 3042, 3039, 3031, 3043, 3046, 3047, 3044, 3048, 3049, 3045, 3038, 3050, 3033, 3034, 3037, 3040, 3041, 3051, 3343, 2889, 2825, 3018, 3017, 3019, 3014, 3013, 3020, 3015, 3016, 2817, 2933, 3003, 3066, 3001, 3067, 3107, 3002, 3189, 3193, 3181, 3192, 3194, 3184, 3190, 3191, 3195, 3188, 2758, 2892, 2829, 3344, 3333, 2752, 3337, 2897, 2989, 2787, 3356, 3000, 3339, 3354, 3355, 3353, 3349, 2992, 2993, 2994, 2995, 2996, 2997, 2999, 2830, 3345, 2826, 2918, 2922, 2923, 2924, 2925, 2913, 2942, 2985, 2944, 2760, 2943, 2802, 2914, 3064, 2894, 2934, 2797, 2850, 3009, 2871, 2761, 2766, 2777, 2792, 3332, 3004, 2874, 2819, 2916, 2841, 2747, 2893, 2776, 2796, 3169, 3053, 3142, 2930, 2839, 6734, 2869, 2806, 3140, 2810, 2818, 2840, 3054, 2751, 2769, 3336, 2790, 2782, 2868, 3007, 3023, 2951, 2844, 3060, 3061, 3025, 2888, 3062, 2981, 3137, 3088, 3021, 2820, 2921, 3341, 2979, 2878, 2736, 2762, 2883, 2773, 2774, 2885, 2781, 2791, 2794, 3032, 2946, 3139, 2912, 2881, 2941, 2984, 2870, 3006, 3090, 2828, 3100, 3101, 3342, 2980, 3069, 3029, 3070, 2890, 2952, 2750, 3118, 3071, 3074, 2756, 3055, 3075, 3352, 2763, 2954, 3120, 3077, 2950, 2771, 3079, 2963, 2987, 2974, 2772, 3124, 3081, 3110, 2982, 2785, 3012, 3176, 3338, 2795, 2798, 2964, 3010, 3129, 3005, 3130, 2958, 3083, 3082, 3008, 3065, 2895, 3357, 3084, 3085, 2899, 2956, 3086, 3063, 2814, 2815, 2929, 3035, 2931, 3143, 3087, 2977, 2978, 2919, 2823, 2960, 3103, 3091, 2738, 3152, 2959, 3159, 3160, 3161, 3162, 3164, 3163, 3165, 3166, 3102, 2836, 2961, 3186, 3185, 2842, 2733, 2734, 3011, 3028, 2745, 3030, 3056, 2737, 2748, 2749, 3072, 3073, 2753, 2940, 2754, 2755, 2927, 3348, 3076, 2872, 2759, 2764, 2765, 3078, 3080, 2884, 3125, 2886, 2779, 2780, 2896, 2784, 2947, 3170, 2786, 3197, 2957, 2891, 2865, 3097, 2965, 2986, 2949, 2880, 3131, 2935, 2953, 2998, 2803, 2801, 2877, 2966, 2858, 3022, 2936, 2861, 2862, 3358, 2898, 3196, 2805, 2827, 3104, 3171, 2808, 2969, 2972, 3024, 3058, 3105, 3068, 2908, 2909, 2915, 3135, 3108, 3136, 3109, 3036, 3111, 2939, 2876, 3089, 2970, 2928, 3096, 3093, 3092, 3144, 2955, 3057, 2968, 3156, 3099, 2937, 2832, 2833, 3179, 3167, 2837, 2866, 2873, 2938, 3106, 2945, 3361, 2847, 3113, 3114, 3334, 3115, 3116, 3117, 3172, 3119, 3121, 3122, 3123, 2783, 2932, 3173, 2901, 3126, 2788, 3180, 3362, 3128, 3367, 3366, 3359, 3182, 3183, 3133, 3132, 2804, 3134, 3141, 2907, 2812, 2813, 3052, 2926, 3350, 3351, 3360, 2920, 2848, 2962, 2879, 2882, 3174, 3148, 3149, 3150, 3151, 3175, 3363, 3146, 3147, 2900, 3098, 3364, 3365, 3168, 3153, 3154, 3155, 3187, 3346, 475: 3458, 570: 5195, 663: 3459, 2731, 2732, 2730, 737: 5194, 776: 5212, 889: 5213, 920: 6735}, - {1702, 1702, 7: 1702, 13: 1702, 46: 1702, 142: 1702, 473: 6739, 1702, 568: 1702, 661: 1702, 1702}, - {223, 223, 7: 5215, 13: 223, 46: 223, 474: 223, 661: 5259, 958: 5258, 6736}, - {231, 231, 13: 231, 46: 231, 474: 6431, 1007: 6737}, - {210, 210, 13: 6448, 46: 6446, 951: 6447, 6445, 1099: 6444, 6738}, + {237, 237}, + {400: 6740}, + {236, 236, 70: 6741}, + {152: 6742}, + {472: 6743}, // 4230 - {239, 239}, - {47: 6740}, - {142: 6741}, - {659: 6742}, - {475: 5228, 891: 6743}, + {202: 6744}, + {235, 235}, + {2: 2976, 2821, 2857, 2978, 2748, 8: 2794, 2749, 2880, 2995, 2988, 3345, 3340, 2860, 3143, 2862, 2836, 2780, 2783, 2772, 2805, 2864, 2865, 2972, 2859, 2996, 3100, 3099, 2747, 2858, 2861, 2872, 2812, 2816, 2868, 2981, 2827, 2908, 2745, 2746, 2907, 2980, 2744, 2993, 2953, 48: 3064, 2826, 2829, 3047, 3044, 3036, 3048, 3051, 3052, 3049, 3053, 3054, 3050, 3043, 3055, 3038, 3039, 3042, 3045, 3046, 3056, 3348, 2894, 2830, 3023, 3022, 3024, 3019, 3018, 3025, 3020, 3021, 2822, 2938, 3008, 3071, 3006, 3072, 3112, 3007, 3194, 3198, 3186, 3197, 3199, 3189, 3195, 3196, 3200, 3193, 2763, 2897, 2834, 3349, 3338, 2757, 3342, 2902, 2994, 2792, 3361, 3005, 3344, 3359, 3360, 3358, 3354, 2997, 2998, 2999, 3000, 3001, 3002, 3004, 2835, 3350, 2831, 2923, 2927, 2928, 2929, 2930, 2918, 2947, 2990, 2949, 2765, 2948, 2807, 2919, 3069, 2899, 2939, 2802, 2855, 3014, 2876, 2766, 2771, 2782, 2797, 3337, 3009, 2879, 2824, 2921, 2846, 2752, 2898, 2781, 2801, 3174, 2811, 3058, 3147, 2935, 2844, 6746, 2874, 3145, 2815, 2823, 2845, 3059, 2756, 2774, 3341, 2795, 2787, 2873, 3012, 3028, 2956, 2849, 3065, 3066, 3030, 2893, 3067, 2986, 3142, 3093, 3026, 2825, 2926, 3346, 2984, 2883, 2741, 2767, 2888, 2778, 2779, 2890, 2786, 2796, 2799, 3037, 2951, 3144, 2917, 2886, 2946, 2989, 2875, 3011, 3095, 2833, 3105, 3106, 3347, 2985, 3074, 3034, 3075, 2895, 2957, 2755, 3123, 3076, 3079, 2761, 3060, 3080, 3357, 2768, 2959, 3125, 3082, 2955, 2776, 3084, 2968, 2992, 2979, 2777, 3129, 3086, 3115, 2987, 2790, 3017, 3181, 3343, 2800, 2803, 2969, 3015, 3134, 3010, 3135, 2963, 3088, 3087, 3013, 3070, 2900, 3362, 3089, 3090, 2904, 2961, 3091, 3068, 2819, 2820, 2934, 3040, 2936, 3148, 3092, 2982, 2983, 2924, 2828, 2965, 3108, 3096, 2743, 3157, 2964, 3164, 3165, 3166, 3167, 3169, 3168, 3170, 3171, 3107, 2841, 2966, 3191, 3190, 2847, 2738, 2739, 3016, 3033, 2750, 3035, 3061, 2742, 2753, 2754, 3077, 3078, 2758, 2945, 2759, 2760, 2932, 3353, 3081, 2877, 2764, 2769, 2770, 3083, 3085, 2889, 3130, 2891, 2784, 2785, 2901, 2789, 2952, 3175, 2791, 3202, 2962, 2896, 2870, 3102, 2970, 2991, 2954, 2885, 3136, 2940, 2958, 3003, 2808, 2806, 2882, 2971, 2863, 3027, 2941, 2866, 2867, 3363, 2903, 3201, 2810, 2832, 3109, 3176, 2813, 2974, 2977, 3029, 3063, 3110, 3073, 2913, 2914, 2920, 3140, 3113, 3141, 3114, 3041, 3116, 2944, 2881, 3094, 2975, 2933, 3101, 3098, 3097, 3149, 2960, 3062, 2973, 3161, 3104, 2942, 2837, 2838, 3184, 3172, 2842, 2871, 2878, 2943, 3111, 2950, 3366, 2852, 3118, 3119, 3339, 3120, 3121, 3122, 3177, 3124, 3126, 3127, 3128, 2788, 2937, 3178, 2906, 3131, 2793, 3185, 3367, 3133, 3372, 3371, 3364, 3187, 3188, 3138, 3137, 2809, 3139, 3146, 2912, 2817, 2818, 3057, 2931, 3355, 3356, 3365, 2925, 2853, 2967, 2884, 2887, 3179, 3153, 3154, 3155, 3156, 3180, 3368, 3151, 3152, 2905, 3103, 3369, 3370, 3173, 3158, 3159, 3160, 3192, 3351, 475: 3463, 570: 5200, 663: 3464, 2736, 2737, 2735, 737: 5199, 776: 5217, 889: 5218, 920: 6747}, + {1706, 1706, 7: 1706, 13: 1706, 46: 1706, 142: 1706, 473: 6751, 1706, 568: 1706, 661: 1706, 1706}, + {223, 223, 7: 5220, 13: 223, 46: 223, 474: 223, 661: 5264, 958: 5263, 6748}, // 4235 - {238, 238}, - {1943, 1943, 15: 1943, 48: 1943, 50: 1943, 1943, 1943, 1943, 1943, 1943, 1943, 1943, 1943, 1943, 1943, 1943, 1943, 1943, 1943, 1943, 1943, 1943, 1943, 1943, 138: 6465, 472: 1943, 507: 6464, 652: 1943, 1040: 6745}, - {2000, 2000, 15: 2000, 48: 2000, 50: 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 472: 2000, 652: 2000, 896: 6746}, - {1937, 1937, 15: 6185, 48: 6161, 50: 6181, 6174, 6164, 6160, 6168, 6172, 6184, 6167, 6173, 6171, 6169, 6182, 6175, 6163, 6183, 6162, 6165, 6166, 6170, 6748, 472: 6176, 652: 6186, 892: 6178, 6177, 6180, 6159, 897: 6179, 1224: 6747}, - {1952, 1952}, + {231, 231, 13: 231, 46: 231, 474: 6443, 1007: 6749}, + {210, 210, 13: 6460, 46: 6458, 951: 6459, 6457, 1099: 6456, 6750}, + {239, 239}, + {47: 6752}, + {142: 6753}, // 4240 - {176: 6750, 650: 6749}, - {559, 559, 569: 6132, 967: 6752}, - {559, 559, 569: 6132, 967: 6751}, - {1935, 1935}, - {1936, 1936}, + {659: 6754}, + {475: 5233, 891: 6755}, + {238, 238}, + {1947, 1947, 15: 1947, 48: 1947, 50: 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 138: 6477, 472: 1947, 507: 6476, 652: 1947, 1040: 6757}, + {2004, 2004, 15: 2004, 48: 2004, 50: 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 472: 2004, 652: 2004, 896: 6758}, // 4245 - {14: 1411, 16: 1411, 19: 1411, 160: 4944, 479: 1411, 482: 1411, 504: 1411, 506: 1411, 646: 1411}, - {14: 2156, 16: 2156, 19: 2156, 479: 4205, 482: 2156, 504: 6558, 506: 2156, 646: 2156, 779: 6557, 791: 6556, 848: 6560, 930: 6756}, - {2175, 2175, 14: 2156, 16: 2156, 19: 2156, 479: 4205, 482: 2156, 504: 6558, 506: 2156, 646: 2156, 779: 6557, 791: 6556, 848: 6561}, - {2176, 2176, 14: 2156, 16: 2156, 19: 2156, 479: 4205, 482: 2156, 504: 6558, 506: 2156, 646: 2156, 779: 6557, 791: 6556, 848: 6561}, - {2035, 2035, 48: 2539, 69: 2658, 71: 2518, 80: 2550, 145: 2520, 152: 2548, 2533, 155: 2517, 168: 2544, 203: 2569, 207: 2671, 210: 2513, 220: 2568, 2535, 2667, 2519, 238: 2547, 243: 2523, 248: 2545, 250: 2514, 253: 2551, 271: 2537, 275: 2536, 282: 2549, 284: 2515, 287: 2538, 298: 2528, 473: 2559, 2558, 496: 2666, 501: 2557, 504: 2567, 507: 2543, 525: 2661, 529: 2531, 567: 2542, 569: 2556, 645: 2552, 648: 2670, 652: 2516, 2660, 660: 2511, 668: 2522, 673: 2521, 678: 2566, 685: 2512, 708: 2563, 738: 2524, 747: 2565, 2553, 2554, 2555, 2564, 755: 2562, 2561, 2560, 2527, 2638, 2637, 765: 2525, 771: 2659, 773: 2619, 2630, 2649, 778: 2526, 782: 2585, 798: 2534, 805: 2573, 808: 2664, 843: 2580, 847: 2583, 852: 2662, 857: 2622, 859: 2632, 861: 2627, 2636, 2639, 2540, 929: 2592, 933: 2529, 971: 2665, 978: 2571, 980: 2572, 2575, 2576, 984: 2578, 986: 2577, 988: 2574, 990: 2579, 2581, 2582, 995: 2541, 2618, 998: 2588, 1008: 2596, 2589, 2590, 2591, 2597, 2595, 2598, 2599, 1017: 2594, 2593, 1020: 2584, 2546, 2530, 2600, 2612, 2601, 2602, 2603, 2605, 2609, 2606, 2610, 2611, 2604, 2608, 2607, 1037: 2570, 1041: 2586, 1043: 2587, 2532, 1048: 2614, 2613, 1052: 2616, 2617, 2615, 1058: 2655, 2620, 1066: 2669, 2668, 2621, 1073: 2623, 1076: 2652, 1078: 2656, 1102: 2624, 2625, 1105: 2626, 1107: 2631, 1110: 2628, 2629, 1113: 2654, 2633, 2663, 2635, 2634, 1122: 2640, 1124: 2642, 2641, 2645, 1128: 2646, 1130: 2653, 1133: 2643, 6758, 1138: 2644, 1149: 2647, 2648, 2651, 1153: 2650}, + {1941, 1941, 15: 6197, 48: 6173, 50: 6193, 6186, 6176, 6172, 6180, 6184, 6196, 6179, 6185, 6183, 6181, 6194, 6187, 6175, 6195, 6174, 6177, 6178, 6182, 6760, 472: 6188, 652: 6198, 892: 6190, 6189, 6192, 6171, 897: 6191, 1225: 6759}, + {1956, 1956}, + {176: 6762, 650: 6761}, + {559, 559, 569: 6144, 967: 6764}, + {559, 559, 569: 6144, 967: 6763}, // 4250 + {1939, 1939}, + {1940, 1940}, + {14: 1415, 16: 1415, 19: 1415, 161: 4949, 479: 1415, 482: 1415, 504: 1415, 506: 1415, 646: 1415}, + {14: 2160, 16: 2160, 19: 2160, 479: 4210, 482: 2160, 504: 6570, 506: 2160, 646: 2160, 779: 6569, 791: 6568, 848: 6572, 930: 6768}, + {2179, 2179, 14: 2160, 16: 2160, 19: 2160, 479: 4210, 482: 2160, 504: 6570, 506: 2160, 646: 2160, 779: 6569, 791: 6568, 848: 6573}, + // 4255 + {2180, 2180, 14: 2160, 16: 2160, 19: 2160, 479: 4210, 482: 2160, 504: 6570, 506: 2160, 646: 2160, 779: 6569, 791: 6568, 848: 6573}, + {2039, 2039, 48: 2544, 69: 2663, 71: 2523, 80: 2555, 145: 2525, 152: 2553, 2538, 155: 2522, 168: 2549, 203: 2574, 207: 2676, 210: 2518, 220: 2573, 2540, 2672, 2524, 238: 2552, 243: 2528, 248: 2550, 250: 2519, 253: 2556, 271: 2542, 275: 2541, 282: 2554, 284: 2520, 287: 2543, 298: 2533, 473: 2564, 2563, 496: 2671, 501: 2562, 504: 2572, 507: 2548, 525: 2666, 529: 2536, 567: 2547, 569: 2561, 645: 2557, 648: 2675, 652: 2521, 2665, 660: 2516, 668: 2527, 673: 2526, 678: 2571, 685: 2517, 708: 2568, 738: 2529, 747: 2570, 2558, 2559, 2560, 2569, 755: 2567, 2566, 2565, 2532, 2643, 2642, 765: 2530, 771: 2664, 773: 2624, 2635, 2654, 778: 2531, 782: 2590, 798: 2539, 805: 2578, 808: 2669, 843: 2585, 847: 2588, 852: 2667, 857: 2627, 859: 2637, 861: 2632, 2641, 2644, 2545, 929: 2597, 933: 2534, 971: 2670, 978: 2576, 980: 2577, 2580, 2581, 984: 2583, 986: 2582, 988: 2579, 990: 2584, 2586, 2587, 995: 2546, 2623, 998: 2593, 1008: 2601, 2594, 2595, 2596, 2602, 2600, 2603, 2604, 1017: 2599, 2598, 1020: 2589, 2551, 2535, 2605, 2617, 2606, 2607, 2608, 2610, 2614, 2611, 2615, 2616, 2609, 2613, 2612, 1037: 2575, 1041: 2591, 1043: 2592, 2537, 1048: 2619, 2618, 1052: 2621, 2622, 2620, 1058: 2660, 2625, 1066: 2674, 2673, 2626, 1073: 2628, 1076: 2657, 1078: 2661, 1102: 2629, 2630, 1105: 2631, 1107: 2636, 1110: 2633, 2634, 1113: 2659, 2638, 2668, 2640, 2639, 1122: 2645, 1124: 2647, 2646, 2650, 1128: 2651, 1130: 2658, 1133: 2648, 6770, 1138: 2649, 1149: 2652, 2653, 2656, 1153: 2655}, {441, 441}, } ) @@ -11254,7 +11269,7 @@ func yylex1(yylex yyLexer, lval *yySymType) (n int) { } func yyParse(yylex yyLexer, parser *Parser) int { - const yyError = 1354 + const yyError = 1355 yyEx, _ := yylex.(yyLexerEx) var yyn int @@ -11455,33 +11470,40 @@ yynewstate: } } case 5: + { + parser.yyVAL.statement = &ast.CompactTableStmt{ + Table: yyS[yypt-1].item.(*ast.TableName), + ReplicaKind: ast.CompactReplicaKindAll, + } + } + case 6: { parser.yyVAL.statement = &ast.CompactTableStmt{ Table: yyS[yypt-3].item.(*ast.TableName), ReplicaKind: ast.CompactReplicaKindTiFlash, } } - case 6: + case 7: { parser.yyVAL.item = []*ast.PlacementOption{yyS[yypt-0].item.(*ast.PlacementOption)} } - case 7: + case 8: { parser.yyVAL.item = append(yyS[yypt-1].item.([]*ast.PlacementOption), yyS[yypt-0].item.(*ast.PlacementOption)) } - case 8: + case 9: { parser.yyVAL.item = append(yyS[yypt-2].item.([]*ast.PlacementOption), yyS[yypt-0].item.(*ast.PlacementOption)) } - case 9: + case 10: { parser.yyVAL.item = &ast.PlacementOption{Tp: ast.PlacementOptionPrimaryRegion, StrValue: yyS[yypt-0].ident} } - case 10: + case 11: { parser.yyVAL.item = &ast.PlacementOption{Tp: ast.PlacementOptionRegions, StrValue: yyS[yypt-0].ident} } - case 11: + case 12: { cnt := yyS[yypt-0].item.(uint64) if cnt == 0 { @@ -11490,41 +11512,37 @@ yynewstate: } parser.yyVAL.item = &ast.PlacementOption{Tp: ast.PlacementOptionFollowerCount, UintValue: cnt} } - case 12: - { - parser.yyVAL.item = &ast.PlacementOption{Tp: ast.PlacementOptionVoterCount, UintValue: yyS[yypt-0].item.(uint64)} - } case 13: { - parser.yyVAL.item = &ast.PlacementOption{Tp: ast.PlacementOptionLearnerCount, UintValue: yyS[yypt-0].item.(uint64)} + parser.yyVAL.item = &ast.PlacementOption{Tp: ast.PlacementOptionVoterCount, UintValue: yyS[yypt-0].item.(uint64)} } case 14: { - parser.yyVAL.item = &ast.PlacementOption{Tp: ast.PlacementOptionSchedule, StrValue: yyS[yypt-0].ident} + parser.yyVAL.item = &ast.PlacementOption{Tp: ast.PlacementOptionLearnerCount, UintValue: yyS[yypt-0].item.(uint64)} } case 15: { - parser.yyVAL.item = &ast.PlacementOption{Tp: ast.PlacementOptionConstraints, StrValue: yyS[yypt-0].ident} + parser.yyVAL.item = &ast.PlacementOption{Tp: ast.PlacementOptionSchedule, StrValue: yyS[yypt-0].ident} } case 16: { - parser.yyVAL.item = &ast.PlacementOption{Tp: ast.PlacementOptionLeaderConstraints, StrValue: yyS[yypt-0].ident} + parser.yyVAL.item = &ast.PlacementOption{Tp: ast.PlacementOptionConstraints, StrValue: yyS[yypt-0].ident} } case 17: { - parser.yyVAL.item = &ast.PlacementOption{Tp: ast.PlacementOptionFollowerConstraints, StrValue: yyS[yypt-0].ident} + parser.yyVAL.item = &ast.PlacementOption{Tp: ast.PlacementOptionLeaderConstraints, StrValue: yyS[yypt-0].ident} } case 18: { - parser.yyVAL.item = &ast.PlacementOption{Tp: ast.PlacementOptionVoterConstraints, StrValue: yyS[yypt-0].ident} + parser.yyVAL.item = &ast.PlacementOption{Tp: ast.PlacementOptionFollowerConstraints, StrValue: yyS[yypt-0].ident} } case 19: { - parser.yyVAL.item = &ast.PlacementOption{Tp: ast.PlacementOptionLearnerConstraints, StrValue: yyS[yypt-0].ident} + parser.yyVAL.item = &ast.PlacementOption{Tp: ast.PlacementOptionVoterConstraints, StrValue: yyS[yypt-0].ident} } case 20: { - parser.yyVAL.item = &ast.PlacementOption{Tp: ast.PlacementOptionPolicy, StrValue: yyS[yypt-0].ident} + parser.yyVAL.item = &ast.PlacementOption{Tp: ast.PlacementOptionLearnerConstraints, StrValue: yyS[yypt-0].ident} } case 21: { @@ -11540,21 +11558,25 @@ yynewstate: } case 24: { - parser.yyVAL.item = &ast.AttributesSpec{Default: true} + parser.yyVAL.item = &ast.PlacementOption{Tp: ast.PlacementOptionPolicy, StrValue: yyS[yypt-0].ident} } case 25: { - parser.yyVAL.item = &ast.AttributesSpec{Default: false, Attributes: yyS[yypt-0].ident} + parser.yyVAL.item = &ast.AttributesSpec{Default: true} } case 26: { - parser.yyVAL.item = &ast.StatsOptionsSpec{Default: true} + parser.yyVAL.item = &ast.AttributesSpec{Default: false, Attributes: yyS[yypt-0].ident} } case 27: { - parser.yyVAL.item = &ast.StatsOptionsSpec{Default: false, StatsOptions: yyS[yypt-0].ident} + parser.yyVAL.item = &ast.StatsOptionsSpec{Default: true} } case 28: + { + parser.yyVAL.item = &ast.StatsOptionsSpec{Default: false, StatsOptions: yyS[yypt-0].ident} + } + case 29: { if yyS[yypt-0].item != nil { parser.yyVAL.item = &ast.AlterTableSpec{ @@ -11565,19 +11587,19 @@ yynewstate: parser.yyVAL.item = nil } } - case 29: + case 30: { parser.yyVAL.item = &ast.AlterTableSpec{ Tp: ast.AlterTableRemovePartitioning, } } - case 30: + case 31: { ret := yyS[yypt-0].item.(*ast.AlterTableSpec) ret.NoWriteToBinlog = yyS[yypt-1].item.(bool) parser.yyVAL.item = ret } - case 31: + case 32: { parser.yyVAL.item = &ast.AlterTableSpec{ Tp: ast.AlterTablePartitionAttributes, @@ -11585,7 +11607,7 @@ yynewstate: AttributesSpec: yyS[yypt-0].item.(*ast.AttributesSpec), } } - case 32: + case 33: { parser.yyVAL.item = &ast.AlterTableSpec{ Tp: ast.AlterTablePartitionOptions, @@ -11593,22 +11615,22 @@ yynewstate: Options: yyS[yypt-0].item.([]*ast.TableOption), } } - case 33: + case 34: { parser.yyVAL.item = []string{} } - case 34: + case 35: { parser.yyVAL.item = yyS[yypt-0].item } - case 35: + case 36: { parser.yyVAL.item = &ast.AlterTableSpec{ Tp: ast.AlterTableOption, Options: yyS[yypt-0].item.([]*ast.TableOption), } } - case 36: + case 37: { tiflashReplicaSpec := &ast.TiFlashReplicaSpec{ Count: yyS[yypt-1].item.(uint64), @@ -11619,21 +11641,21 @@ yynewstate: TiFlashReplica: tiflashReplicaSpec, } } - case 37: + case 38: { parser.yyVAL.item = &ast.AlterTableSpec{ Tp: ast.AlterTableSetTiFlashMode, TiFlashMode: model.TiFlashModeNormal, } } - case 38: + case 39: { parser.yyVAL.item = &ast.AlterTableSpec{ Tp: ast.AlterTableSetTiFlashMode, TiFlashMode: model.TiFlashModeFast, } } - case 39: + case 40: { op := &ast.AlterTableSpec{ Tp: ast.AlterTableOption, @@ -11645,7 +11667,7 @@ yynewstate: } parser.yyVAL.item = op } - case 40: + case 41: { op := &ast.AlterTableSpec{ Tp: ast.AlterTableOption, @@ -11657,7 +11679,7 @@ yynewstate: } parser.yyVAL.item = op } - case 41: + case 42: { parser.yyVAL.item = &ast.AlterTableSpec{ IfNotExists: yyS[yypt-2].item.(bool), @@ -11666,7 +11688,7 @@ yynewstate: Position: yyS[yypt-0].item.(*ast.ColumnPosition), } } - case 42: + case 43: { tes := yyS[yypt-1].item.([]interface{}) var columnDefs []*ast.ColumnDef @@ -11686,7 +11708,7 @@ yynewstate: NewConstraints: constraints, } } - case 43: + case 44: { constraint := yyS[yypt-0].item.(*ast.Constraint) parser.yyVAL.item = &ast.AlterTableSpec{ @@ -11694,7 +11716,7 @@ yynewstate: Constraint: constraint, } } - case 44: + case 45: { var defs []*ast.PartitionDefinition if yyS[yypt-0].item != nil { @@ -11712,7 +11734,7 @@ yynewstate: PartDefinitions: defs, } } - case 45: + case 46: { noWriteToBinlog := yyS[yypt-2].item.(bool) if noWriteToBinlog { @@ -11726,7 +11748,7 @@ yynewstate: Num: getUint64FromNUM(yyS[yypt-0].item), } } - case 46: + case 47: { statsSpec := &ast.StatisticsSpec{ StatsName: yyS[yypt-4].ident, @@ -11739,21 +11761,21 @@ yynewstate: Statistics: statsSpec, } } - case 47: + case 48: { parser.yyVAL.item = &ast.AlterTableSpec{ Tp: ast.AlterTableAttributes, AttributesSpec: yyS[yypt-0].item.(*ast.AttributesSpec), } } - case 48: + case 49: { parser.yyVAL.item = &ast.AlterTableSpec{ Tp: ast.AlterTableStatsOptions, StatsOptionsSpec: yyS[yypt-0].item.(*ast.StatsOptionsSpec), } } - case 49: + case 50: { yylex.AppendError(yylex.Errorf("The CHECK PARTITIONING clause is parsed but not implement yet.")) parser.lastErrorAsWarn() @@ -11767,7 +11789,7 @@ yynewstate: } parser.yyVAL.item = ret } - case 50: + case 51: { noWriteToBinlog := yyS[yypt-1].item.(bool) if noWriteToBinlog { @@ -11780,7 +11802,7 @@ yynewstate: Num: getUint64FromNUM(yyS[yypt-0].item), } } - case 51: + case 52: { parser.yyVAL.item = &ast.AlterTableSpec{ IfExists: yyS[yypt-2].item.(bool), @@ -11788,11 +11810,11 @@ yynewstate: OldColumnName: yyS[yypt-1].item.(*ast.ColumnName), } } - case 52: + case 53: { parser.yyVAL.item = &ast.AlterTableSpec{Tp: ast.AlterTableDropPrimaryKey} } - case 53: + case 54: { parser.yyVAL.item = &ast.AlterTableSpec{ IfExists: yyS[yypt-1].item.(bool), @@ -11800,7 +11822,7 @@ yynewstate: PartitionNames: yyS[yypt-0].item.([]model.CIStr), } } - case 54: + case 55: { statsSpec := &ast.StatisticsSpec{ StatsName: yyS[yypt-0].ident, @@ -11811,7 +11833,7 @@ yynewstate: Statistics: statsSpec, } } - case 55: + case 56: { parser.yyVAL.item = &ast.AlterTableSpec{ Tp: ast.AlterTableExchangePartition, @@ -11820,7 +11842,7 @@ yynewstate: WithValidation: yyS[yypt-0].item.(bool), } } - case 56: + case 57: { ret := &ast.AlterTableSpec{ Tp: ast.AlterTableTruncatePartition, @@ -11832,7 +11854,7 @@ yynewstate: } parser.yyVAL.item = ret } - case 57: + case 58: { ret := &ast.AlterTableSpec{ NoWriteToBinlog: yyS[yypt-1].item.(bool), @@ -11845,7 +11867,7 @@ yynewstate: } parser.yyVAL.item = ret } - case 58: + case 59: { ret := &ast.AlterTableSpec{ NoWriteToBinlog: yyS[yypt-1].item.(bool), @@ -11858,7 +11880,7 @@ yynewstate: } parser.yyVAL.item = ret } - case 59: + case 60: { ret := &ast.AlterTableSpec{ Tp: ast.AlterTableImportPartitionTablespace, @@ -11872,7 +11894,7 @@ yynewstate: yylex.AppendError(yylex.Errorf("The IMPORT PARTITION TABLESPACE clause is parsed but ignored by all storage engines.")) parser.lastErrorAsWarn() } - case 60: + case 61: { ret := &ast.AlterTableSpec{ Tp: ast.AlterTableDiscardPartitionTablespace, @@ -11886,7 +11908,7 @@ yynewstate: yylex.AppendError(yylex.Errorf("The DISCARD PARTITION TABLESPACE clause is parsed but ignored by all storage engines.")) parser.lastErrorAsWarn() } - case 61: + case 62: { ret := &ast.AlterTableSpec{ Tp: ast.AlterTableImportTablespace, @@ -11895,7 +11917,7 @@ yynewstate: yylex.AppendError(yylex.Errorf("The IMPORT TABLESPACE clause is parsed but ignored by all storage engines.")) parser.lastErrorAsWarn() } - case 62: + case 63: { ret := &ast.AlterTableSpec{ Tp: ast.AlterTableDiscardTablespace, @@ -11904,7 +11926,7 @@ yynewstate: yylex.AppendError(yylex.Errorf("The DISCARD TABLESPACE clause is parsed but ignored by all storage engines.")) parser.lastErrorAsWarn() } - case 63: + case 64: { ret := &ast.AlterTableSpec{ Tp: ast.AlterTableRebuildPartition, @@ -11917,7 +11939,7 @@ yynewstate: } parser.yyVAL.item = ret } - case 64: + case 65: { parser.yyVAL.item = &ast.AlterTableSpec{ IfExists: yyS[yypt-1].item.(bool), @@ -11925,7 +11947,7 @@ yynewstate: Name: yyS[yypt-0].ident, } } - case 65: + case 66: { parser.yyVAL.item = &ast.AlterTableSpec{ IfExists: yyS[yypt-1].item.(bool), @@ -11933,26 +11955,26 @@ yynewstate: Name: yyS[yypt-0].ident, } } - case 66: + case 67: { parser.yyVAL.item = &ast.AlterTableSpec{ Tp: ast.AlterTableOrderByColumns, OrderByList: yyS[yypt-0].item.([]*ast.AlterOrderItem), } } - case 67: + case 68: { parser.yyVAL.item = &ast.AlterTableSpec{ Tp: ast.AlterTableDisableKeys, } } - case 68: + case 69: { parser.yyVAL.item = &ast.AlterTableSpec{ Tp: ast.AlterTableEnableKeys, } } - case 69: + case 70: { parser.yyVAL.item = &ast.AlterTableSpec{ IfExists: yyS[yypt-2].item.(bool), @@ -11961,7 +11983,7 @@ yynewstate: Position: yyS[yypt-0].item.(*ast.ColumnPosition), } } - case 70: + case 71: { parser.yyVAL.item = &ast.AlterTableSpec{ IfExists: yyS[yypt-3].item.(bool), @@ -11971,7 +11993,7 @@ yynewstate: Position: yyS[yypt-0].item.(*ast.ColumnPosition), } } - case 71: + case 72: { option := &ast.ColumnOption{Expr: yyS[yypt-0].expr} colDef := &ast.ColumnDef{ @@ -11983,7 +12005,7 @@ yynewstate: NewColumns: []*ast.ColumnDef{colDef}, } } - case 72: + case 73: { option := &ast.ColumnOption{Expr: yyS[yypt-1].expr} colDef := &ast.ColumnDef{ @@ -11995,7 +12017,7 @@ yynewstate: NewColumns: []*ast.ColumnDef{colDef}, } } - case 73: + case 74: { colDef := &ast.ColumnDef{ Name: yyS[yypt-2].item.(*ast.ColumnName), @@ -12005,7 +12027,7 @@ yynewstate: NewColumns: []*ast.ColumnDef{colDef}, } } - case 74: + case 75: { oldColName := &ast.ColumnName{Name: model.NewCIStr(yyS[yypt-2].ident)} newColName := &ast.ColumnName{Name: model.NewCIStr(yyS[yypt-0].ident)} @@ -12015,28 +12037,28 @@ yynewstate: NewColumnName: newColName, } } - case 75: + case 76: { parser.yyVAL.item = &ast.AlterTableSpec{ Tp: ast.AlterTableRenameTable, NewTable: yyS[yypt-0].item.(*ast.TableName), } } - case 76: + case 77: { parser.yyVAL.item = &ast.AlterTableSpec{ Tp: ast.AlterTableRenameTable, NewTable: yyS[yypt-0].item.(*ast.TableName), } } - case 77: + case 78: { parser.yyVAL.item = &ast.AlterTableSpec{ Tp: ast.AlterTableRenameTable, NewTable: yyS[yypt-0].item.(*ast.TableName), } } - case 78: + case 79: { parser.yyVAL.item = &ast.AlterTableSpec{ Tp: ast.AlterTableRenameIndex, @@ -12044,21 +12066,21 @@ yynewstate: ToKey: model.NewCIStr(yyS[yypt-0].ident), } } - case 79: + case 80: { parser.yyVAL.item = &ast.AlterTableSpec{ Tp: ast.AlterTableLock, LockType: yyS[yypt-0].item.(ast.LockType), } } - case 80: + case 81: { parser.yyVAL.item = &ast.AlterTableSpec{ Tp: ast.AlterTableWriteable, Writeable: yyS[yypt-0].item.(bool), } } - case 81: + case 82: { // Parse it and ignore it. Just for compatibility. parser.yyVAL.item = &ast.AlterTableSpec{ @@ -12066,28 +12088,28 @@ yynewstate: Algorithm: yyS[yypt-0].item.(ast.AlgorithmType), } } - case 82: + case 83: { // Parse it and ignore it. Just for compatibility. parser.yyVAL.item = &ast.AlterTableSpec{ Tp: ast.AlterTableForce, } } - case 83: + case 84: { // Parse it and ignore it. Just for compatibility. parser.yyVAL.item = &ast.AlterTableSpec{ Tp: ast.AlterTableWithValidation, } } - case 84: + case 85: { // Parse it and ignore it. Just for compatibility. parser.yyVAL.item = &ast.AlterTableSpec{ Tp: ast.AlterTableWithoutValidation, } } - case 85: + case 86: { // Parse it and ignore it. Just for compatibility. parser.yyVAL.item = &ast.AlterTableSpec{ @@ -12096,7 +12118,7 @@ yynewstate: yylex.AppendError(yylex.Errorf("The SECONDARY_LOAD clause is parsed but not implement yet.")) parser.lastErrorAsWarn() } - case 86: + case 87: { // Parse it and ignore it. Just for compatibility. parser.yyVAL.item = &ast.AlterTableSpec{ @@ -12105,7 +12127,7 @@ yynewstate: yylex.AppendError(yylex.Errorf("The SECONDARY_UNLOAD VALIDATION clause is parsed but not implement yet.")) parser.lastErrorAsWarn() } - case 87: + case 88: { c := &ast.Constraint{ Name: yyS[yypt-1].ident, @@ -12116,7 +12138,7 @@ yynewstate: Constraint: c, } } - case 88: + case 89: { // Parse it and ignore it. Just for compatibility. c := &ast.Constraint{ @@ -12127,7 +12149,7 @@ yynewstate: Constraint: c, } } - case 89: + case 90: { parser.yyVAL.item = &ast.AlterTableSpec{ Tp: ast.AlterTableIndexInvisible, @@ -12135,19 +12157,19 @@ yynewstate: Visibility: yyS[yypt-0].item.(ast.IndexVisibility), } } - case 90: + case 91: { parser.yyVAL.item = &ast.AlterTableSpec{ Tp: ast.AlterTableCache, } } - case 91: + case 92: { parser.yyVAL.item = &ast.AlterTableSpec{ Tp: ast.AlterTableNoCache, } } - case 92: + case 93: { ret := &ast.AlterTableSpec{ Tp: ast.AlterTableReorganizePartition, @@ -12155,7 +12177,7 @@ yynewstate: } parser.yyVAL.item = ret } - case 93: + case 94: { ret := &ast.AlterTableSpec{ Tp: ast.AlterTableReorganizePartition, @@ -12164,56 +12186,56 @@ yynewstate: } parser.yyVAL.item = ret } - case 94: + case 95: { parser.yyVAL.item = nil } - case 96: + case 97: { parser.yyVAL.item = true } - case 98: + case 99: { parser.yyVAL.item = true } - case 99: + case 100: { parser.yyVAL.item = false } - case 100: + case 101: { parser.yyVAL.item = model.PrimaryKeyTypeClustered } - case 101: + case 102: { parser.yyVAL.item = model.PrimaryKeyTypeNonClustered } - case 102: + case 103: { parser.yyVAL.item = ast.AlgorithmTypeDefault } - case 103: + case 104: { parser.yyVAL.item = ast.AlgorithmTypeCopy } - case 104: + case 105: { parser.yyVAL.item = ast.AlgorithmTypeInplace } - case 105: + case 106: { parser.yyVAL.item = ast.AlgorithmTypeInstant } - case 106: + case 107: { yylex.AppendError(ErrUnknownAlterAlgorithm.GenWithStackByArgs(yyS[yypt-2].ident)) return 1 } - case 107: + case 108: { parser.yyVAL.item = ast.LockTypeDefault } - case 108: + case 109: { id := strings.ToUpper(yyS[yypt-0].ident) @@ -12228,138 +12250,138 @@ yynewstate: return 1 } } - case 109: + case 110: { parser.yyVAL.item = true } - case 110: + case 111: { parser.yyVAL.item = false } - case 117: + case 118: { parser.yyVAL.item = &ast.ColumnPosition{Tp: ast.ColumnPositionNone} } - case 118: + case 119: { parser.yyVAL.item = &ast.ColumnPosition{Tp: ast.ColumnPositionFirst} } - case 119: + case 120: { parser.yyVAL.item = &ast.ColumnPosition{ Tp: ast.ColumnPositionAfter, RelativeColumn: yyS[yypt-0].item.(*ast.ColumnName), } } - case 120: + case 121: { parser.yyVAL.item = make([]*ast.AlterTableSpec, 0, 1) } - case 122: + case 123: { parser.yyVAL.item = []*ast.AlterTableSpec{yyS[yypt-0].item.(*ast.AlterTableSpec)} } - case 123: + case 124: { parser.yyVAL.item = append(yyS[yypt-2].item.([]*ast.AlterTableSpec), yyS[yypt-0].item.(*ast.AlterTableSpec)) } - case 124: + case 125: { parser.yyVAL.item = []model.CIStr{model.NewCIStr(yyS[yypt-0].ident)} } - case 125: + case 126: { parser.yyVAL.item = append(yyS[yypt-2].item.([]model.CIStr), model.NewCIStr(yyS[yypt-0].ident)) } - case 126: + case 127: { parser.yyVAL.item = nil } - case 127: + case 128: { parser.yyVAL.item = nil } - case 128: + case 129: { parser.yyVAL.item = yyS[yypt-0].ident } - case 130: + case 131: { parser.yyVAL.statement = &ast.RenameTableStmt{ TableToTables: yyS[yypt-0].item.([]*ast.TableToTable), } } - case 131: + case 132: { parser.yyVAL.item = []*ast.TableToTable{yyS[yypt-0].item.(*ast.TableToTable)} } - case 132: + case 133: { parser.yyVAL.item = append(yyS[yypt-2].item.([]*ast.TableToTable), yyS[yypt-0].item.(*ast.TableToTable)) } - case 133: + case 134: { parser.yyVAL.item = &ast.TableToTable{ OldTable: yyS[yypt-2].item.(*ast.TableName), NewTable: yyS[yypt-0].item.(*ast.TableName), } } - case 134: + case 135: { parser.yyVAL.statement = &ast.RenameUserStmt{ UserToUsers: yyS[yypt-0].item.([]*ast.UserToUser), } } - case 135: + case 136: { parser.yyVAL.item = []*ast.UserToUser{yyS[yypt-0].item.(*ast.UserToUser)} } - case 136: + case 137: { parser.yyVAL.item = append(yyS[yypt-2].item.([]*ast.UserToUser), yyS[yypt-0].item.(*ast.UserToUser)) } - case 137: + case 138: { parser.yyVAL.item = &ast.UserToUser{ OldUser: yyS[yypt-2].item.(*auth.UserIdentity), NewUser: yyS[yypt-0].item.(*auth.UserIdentity), } } - case 138: + case 139: { parser.yyVAL.statement = &ast.RecoverTableStmt{ JobID: yyS[yypt-0].item.(int64), } } - case 139: + case 140: { parser.yyVAL.statement = &ast.RecoverTableStmt{ Table: yyS[yypt-0].item.(*ast.TableName), } } - case 140: + case 141: { parser.yyVAL.statement = &ast.RecoverTableStmt{ Table: yyS[yypt-1].item.(*ast.TableName), JobNum: yyS[yypt-0].item.(int64), } } - case 141: + case 142: { parser.yyVAL.statement = &ast.FlashBackTableStmt{ Table: yyS[yypt-1].item.(*ast.TableName), NewName: yyS[yypt-0].ident, } } - case 142: + case 143: { parser.yyVAL.ident = "" } - case 143: + case 144: { parser.yyVAL.ident = yyS[yypt-0].ident } - case 144: + case 145: { parser.yyVAL.statement = &ast.SplitRegionStmt{ SplitSyntaxOpt: yyS[yypt-4].item.(*ast.SplitSyntaxOption), @@ -12368,7 +12390,7 @@ yynewstate: SplitOpt: yyS[yypt-0].item.(*ast.SplitOption), } } - case 145: + case 146: { parser.yyVAL.statement = &ast.SplitRegionStmt{ SplitSyntaxOpt: yyS[yypt-6].item.(*ast.SplitSyntaxOption), @@ -12378,7 +12400,7 @@ yynewstate: SplitOpt: yyS[yypt-0].item.(*ast.SplitOption), } } - case 146: + case 147: { parser.yyVAL.item = &ast.SplitOption{ Lower: yyS[yypt-4].item.([]ast.ExprNode), @@ -12386,52 +12408,52 @@ yynewstate: Num: yyS[yypt-0].item.(int64), } } - case 147: + case 148: { parser.yyVAL.item = &ast.SplitOption{ ValueLists: yyS[yypt-0].item.([][]ast.ExprNode), } } - case 148: + case 149: { parser.yyVAL.item = &ast.SplitSyntaxOption{} } - case 149: + case 150: { parser.yyVAL.item = &ast.SplitSyntaxOption{ HasRegionFor: true, } } - case 150: + case 151: { parser.yyVAL.item = &ast.SplitSyntaxOption{ HasPartition: true, } } - case 151: + case 152: { parser.yyVAL.item = &ast.SplitSyntaxOption{ HasRegionFor: true, HasPartition: true, } } - case 152: + case 153: { parser.yyVAL.statement = &ast.AnalyzeTableStmt{TableNames: yyS[yypt-2].item.([]*ast.TableName), ColumnChoice: yyS[yypt-1].item.(model.ColumnChoice), AnalyzeOpts: yyS[yypt-0].item.([]ast.AnalyzeOpt)} } - case 153: + case 154: { parser.yyVAL.statement = &ast.AnalyzeTableStmt{TableNames: []*ast.TableName{yyS[yypt-3].item.(*ast.TableName)}, IndexNames: yyS[yypt-1].item.([]model.CIStr), IndexFlag: true, AnalyzeOpts: yyS[yypt-0].item.([]ast.AnalyzeOpt)} } - case 154: + case 155: { parser.yyVAL.statement = &ast.AnalyzeTableStmt{TableNames: []*ast.TableName{yyS[yypt-3].item.(*ast.TableName)}, IndexNames: yyS[yypt-1].item.([]model.CIStr), IndexFlag: true, Incremental: true, AnalyzeOpts: yyS[yypt-0].item.([]ast.AnalyzeOpt)} } - case 155: + case 156: { parser.yyVAL.statement = &ast.AnalyzeTableStmt{TableNames: []*ast.TableName{yyS[yypt-4].item.(*ast.TableName)}, PartitionNames: yyS[yypt-2].item.([]model.CIStr), ColumnChoice: yyS[yypt-1].item.(model.ColumnChoice), AnalyzeOpts: yyS[yypt-0].item.([]ast.AnalyzeOpt)} } - case 156: + case 157: { parser.yyVAL.statement = &ast.AnalyzeTableStmt{ TableNames: []*ast.TableName{yyS[yypt-5].item.(*ast.TableName)}, @@ -12441,7 +12463,7 @@ yynewstate: AnalyzeOpts: yyS[yypt-0].item.([]ast.AnalyzeOpt), } } - case 157: + case 158: { parser.yyVAL.statement = &ast.AnalyzeTableStmt{ TableNames: []*ast.TableName{yyS[yypt-5].item.(*ast.TableName)}, @@ -12452,7 +12474,7 @@ yynewstate: AnalyzeOpts: yyS[yypt-0].item.([]ast.AnalyzeOpt), } } - case 158: + case 159: { parser.yyVAL.statement = &ast.AnalyzeTableStmt{ TableNames: []*ast.TableName{yyS[yypt-5].item.(*ast.TableName)}, @@ -12461,7 +12483,7 @@ yynewstate: HistogramOperation: ast.HistogramOperationUpdate, } } - case 159: + case 160: { parser.yyVAL.statement = &ast.AnalyzeTableStmt{ TableNames: []*ast.TableName{yyS[yypt-4].item.(*ast.TableName)}, @@ -12469,7 +12491,7 @@ yynewstate: HistogramOperation: ast.HistogramOperationDrop, } } - case 160: + case 161: { parser.yyVAL.statement = &ast.AnalyzeTableStmt{ TableNames: []*ast.TableName{yyS[yypt-3].item.(*ast.TableName)}, @@ -12477,7 +12499,7 @@ yynewstate: ColumnChoice: model.ColumnList, AnalyzeOpts: yyS[yypt-0].item.([]ast.AnalyzeOpt)} } - case 161: + case 162: { parser.yyVAL.statement = &ast.AnalyzeTableStmt{ TableNames: []*ast.TableName{yyS[yypt-5].item.(*ast.TableName)}, @@ -12486,94 +12508,90 @@ yynewstate: ColumnChoice: model.ColumnList, AnalyzeOpts: yyS[yypt-0].item.([]ast.AnalyzeOpt)} } - case 162: + case 163: { parser.yyVAL.item = model.DefaultChoice } - case 163: + case 164: { parser.yyVAL.item = model.AllColumns } - case 164: + case 165: { parser.yyVAL.item = model.PredicateColumns } - case 165: + case 166: { parser.yyVAL.item = []ast.AnalyzeOpt{} } - case 166: + case 167: { parser.yyVAL.item = yyS[yypt-0].item.([]ast.AnalyzeOpt) } - case 167: + case 168: { parser.yyVAL.item = []ast.AnalyzeOpt{yyS[yypt-0].item.(ast.AnalyzeOpt)} } - case 168: + case 169: { parser.yyVAL.item = append(yyS[yypt-2].item.([]ast.AnalyzeOpt), yyS[yypt-0].item.(ast.AnalyzeOpt)) } - case 169: + case 170: { parser.yyVAL.item = ast.AnalyzeOpt{Type: ast.AnalyzeOptNumBuckets, Value: ast.NewValueExpr(yyS[yypt-1].item, "", "")} } - case 170: + case 171: { parser.yyVAL.item = ast.AnalyzeOpt{Type: ast.AnalyzeOptNumTopN, Value: ast.NewValueExpr(yyS[yypt-1].item, "", "")} } - case 171: + case 172: { parser.yyVAL.item = ast.AnalyzeOpt{Type: ast.AnalyzeOptCMSketchDepth, Value: ast.NewValueExpr(yyS[yypt-2].item, "", "")} } - case 172: + case 173: { parser.yyVAL.item = ast.AnalyzeOpt{Type: ast.AnalyzeOptCMSketchWidth, Value: ast.NewValueExpr(yyS[yypt-2].item, "", "")} } - case 173: + case 174: { parser.yyVAL.item = ast.AnalyzeOpt{Type: ast.AnalyzeOptNumSamples, Value: ast.NewValueExpr(yyS[yypt-1].item, "", "")} } - case 174: + case 175: { parser.yyVAL.item = ast.AnalyzeOpt{Type: ast.AnalyzeOptSampleRate, Value: ast.NewValueExpr(yyS[yypt-1].item, "", "")} } - case 175: + case 176: { parser.yyVAL.item = &ast.Assignment{Column: yyS[yypt-2].item.(*ast.ColumnName), Expr: yyS[yypt-0].expr} } - case 176: + case 177: { parser.yyVAL.item = []*ast.Assignment{yyS[yypt-0].item.(*ast.Assignment)} } - case 177: + case 178: { parser.yyVAL.item = append(yyS[yypt-2].item.([]*ast.Assignment), yyS[yypt-0].item.(*ast.Assignment)) } - case 178: + case 179: { parser.yyVAL.item = []*ast.Assignment{} } - case 180: + case 181: { parser.yyVAL.statement = &ast.BeginStmt{} } - case 181: + case 182: { parser.yyVAL.statement = &ast.BeginStmt{ Mode: ast.Pessimistic, } } - case 182: + case 183: { parser.yyVAL.statement = &ast.BeginStmt{ Mode: ast.Optimistic, } } - case 183: - { - parser.yyVAL.statement = &ast.BeginStmt{} - } case 184: { parser.yyVAL.statement = &ast.BeginStmt{} @@ -12583,37 +12601,41 @@ yynewstate: parser.yyVAL.statement = &ast.BeginStmt{} } case 186: + { + parser.yyVAL.statement = &ast.BeginStmt{} + } + case 187: { parser.yyVAL.statement = &ast.BeginStmt{ CausalConsistencyOnly: true, } } - case 187: + case 188: { parser.yyVAL.statement = &ast.BeginStmt{ ReadOnly: true, } } - case 188: + case 189: { parser.yyVAL.statement = &ast.BeginStmt{ ReadOnly: true, AsOf: yyS[yypt-0].item.(*ast.AsOfClause), } } - case 189: + case 190: { parser.yyVAL.statement = &ast.BinlogStmt{Str: yyS[yypt-0].ident} } - case 190: + case 191: { parser.yyVAL.item = []*ast.ColumnDef{yyS[yypt-0].item.(*ast.ColumnDef)} } - case 191: + case 192: { parser.yyVAL.item = append(yyS[yypt-2].item.([]*ast.ColumnDef), yyS[yypt-0].item.(*ast.ColumnDef)) } - case 192: + case 193: { colDef := &ast.ColumnDef{Name: yyS[yypt-2].item.(*ast.ColumnName), Tp: yyS[yypt-1].item.(*types.FieldType), Options: yyS[yypt-0].item.([]*ast.ColumnOption)} if !colDef.Validate() { @@ -12622,7 +12644,7 @@ yynewstate: } parser.yyVAL.item = colDef } - case 193: + case 194: { // TODO: check flen 0 tp := types.NewFieldType(mysql.TypeLonglong) @@ -12636,103 +12658,103 @@ yynewstate: } parser.yyVAL.item = colDef } - case 194: + case 195: { parser.yyVAL.item = &ast.ColumnName{Name: model.NewCIStr(yyS[yypt-0].ident)} } - case 195: + case 196: { parser.yyVAL.item = &ast.ColumnName{Table: model.NewCIStr(yyS[yypt-2].ident), Name: model.NewCIStr(yyS[yypt-0].ident)} } - case 196: + case 197: { parser.yyVAL.item = &ast.ColumnName{Schema: model.NewCIStr(yyS[yypt-4].ident), Table: model.NewCIStr(yyS[yypt-2].ident), Name: model.NewCIStr(yyS[yypt-0].ident)} } - case 197: + case 198: { parser.yyVAL.item = []*ast.ColumnName{yyS[yypt-0].item.(*ast.ColumnName)} } - case 198: + case 199: { parser.yyVAL.item = append(yyS[yypt-2].item.([]*ast.ColumnName), yyS[yypt-0].item.(*ast.ColumnName)) } - case 199: + case 200: { parser.yyVAL.item = []*ast.ColumnName{} } - case 201: + case 202: { parser.yyVAL.item = []model.CIStr{} } - case 202: + case 203: { parser.yyVAL.item = yyS[yypt-1].item } - case 203: + case 204: { parser.yyVAL.item = []model.CIStr{model.NewCIStr(yyS[yypt-0].ident)} } - case 204: + case 205: { parser.yyVAL.item = append(yyS[yypt-2].item.([]model.CIStr), model.NewCIStr(yyS[yypt-0].ident)) } - case 205: + case 206: { parser.yyVAL.item = []*ast.ColumnNameOrUserVar{} } - case 207: + case 208: { parser.yyVAL.item = []*ast.ColumnNameOrUserVar{yyS[yypt-0].item.(*ast.ColumnNameOrUserVar)} } - case 208: + case 209: { parser.yyVAL.item = append(yyS[yypt-2].item.([]*ast.ColumnNameOrUserVar), yyS[yypt-0].item.(*ast.ColumnNameOrUserVar)) } - case 209: + case 210: { parser.yyVAL.item = &ast.ColumnNameOrUserVar{ColumnName: yyS[yypt-0].item.(*ast.ColumnName)} } - case 210: + case 211: { parser.yyVAL.item = &ast.ColumnNameOrUserVar{UserVar: yyS[yypt-0].expr.(*ast.VariableExpr)} } - case 211: + case 212: { parser.yyVAL.item = []*ast.ColumnNameOrUserVar{} } - case 212: + case 213: { parser.yyVAL.item = yyS[yypt-1].item.([]*ast.ColumnNameOrUserVar) } - case 213: + case 214: { parser.yyVAL.statement = &ast.CommitStmt{} } - case 214: + case 215: { parser.yyVAL.statement = &ast.CommitStmt{CompletionType: yyS[yypt-0].item.(ast.CompletionType)} } - case 218: + case 219: { parser.yyVAL.ident = "NOT" } - case 219: + case 220: { parser.yyVAL.item = true } - case 220: + case 221: { parser.yyVAL.item = false } - case 221: + case 222: { parser.yyVAL.item = true } - case 223: + case 224: { parser.yyVAL.item = 0 } - case 224: + case 225: { if yyS[yypt-0].item.(bool) { parser.yyVAL.item = 1 @@ -12740,57 +12762,57 @@ yynewstate: parser.yyVAL.item = 2 } } - case 225: + case 226: { parser.yyVAL.item = &ast.ColumnOption{Tp: ast.ColumnOptionNotNull} } - case 226: + case 227: { parser.yyVAL.item = &ast.ColumnOption{Tp: ast.ColumnOptionNull} } - case 227: + case 228: { parser.yyVAL.item = &ast.ColumnOption{Tp: ast.ColumnOptionAutoIncrement} } - case 228: + case 229: { // KEY is normally a synonym for INDEX. The key attribute PRIMARY KEY // can also be specified as just KEY when given in a column definition. // See http://dev.mysql.com/doc/refman/5.7/en/create-table.html parser.yyVAL.item = &ast.ColumnOption{Tp: ast.ColumnOptionPrimaryKey} } - case 229: + case 230: { // KEY is normally a synonym for INDEX. The key attribute PRIMARY KEY // can also be specified as just KEY when given in a column definition. // See http://dev.mysql.com/doc/refman/5.7/en/create-table.html parser.yyVAL.item = &ast.ColumnOption{Tp: ast.ColumnOptionPrimaryKey, PrimaryKeyTp: yyS[yypt-0].item.(model.PrimaryKeyType)} } - case 230: + case 231: { parser.yyVAL.item = &ast.ColumnOption{Tp: ast.ColumnOptionUniqKey} } - case 231: + case 232: { parser.yyVAL.item = &ast.ColumnOption{Tp: ast.ColumnOptionUniqKey} } - case 232: + case 233: { parser.yyVAL.item = &ast.ColumnOption{Tp: ast.ColumnOptionDefaultValue, Expr: yyS[yypt-0].expr} } - case 233: + case 234: { parser.yyVAL.item = []*ast.ColumnOption{{Tp: ast.ColumnOptionNotNull}, {Tp: ast.ColumnOptionAutoIncrement}, {Tp: ast.ColumnOptionUniqKey}} } - case 234: + case 235: { parser.yyVAL.item = &ast.ColumnOption{Tp: ast.ColumnOptionOnUpdate, Expr: yyS[yypt-0].expr} } - case 235: + case 236: { parser.yyVAL.item = &ast.ColumnOption{Tp: ast.ColumnOptionComment, Expr: ast.NewValueExpr(yyS[yypt-0].ident, "", "")} } - case 236: + case 237: { // See https://dev.mysql.com/doc/refman/5.7/en/create-table.html // The CHECK clause is parsed but ignored by all storage engines. @@ -12817,7 +12839,7 @@ yynewstate: default: } } - case 237: + case 238: { startOffset := parser.startOffset(&yyS[yypt-2]) endOffset := parser.endOffset(&yyS[yypt-1]) @@ -12830,56 +12852,56 @@ yynewstate: Stored: yyS[yypt-0].item.(bool), } } - case 238: + case 239: { parser.yyVAL.item = &ast.ColumnOption{ Tp: ast.ColumnOptionReference, Refer: yyS[yypt-0].item.(*ast.ReferenceDef), } } - case 239: + case 240: { parser.yyVAL.item = &ast.ColumnOption{Tp: ast.ColumnOptionCollate, StrValue: yyS[yypt-0].ident} } - case 240: + case 241: { parser.yyVAL.item = &ast.ColumnOption{Tp: ast.ColumnOptionColumnFormat, StrValue: yyS[yypt-0].ident} } - case 241: + case 242: { parser.yyVAL.item = &ast.ColumnOption{Tp: ast.ColumnOptionStorage, StrValue: yyS[yypt-0].ident} yylex.AppendError(yylex.Errorf("The STORAGE clause is parsed but ignored by all storage engines.")) parser.lastErrorAsWarn() } - case 242: + case 243: { parser.yyVAL.item = &ast.ColumnOption{Tp: ast.ColumnOptionAutoRandom, AutoRandomBitLength: yyS[yypt-0].item.(int)} } - case 246: + case 247: { parser.yyVAL.ident = "DEFAULT" } - case 247: + case 248: { parser.yyVAL.ident = "FIXED" } - case 248: + case 249: { parser.yyVAL.ident = "DYNAMIC" } - case 251: - { - parser.yyVAL.item = false - } case 252: { parser.yyVAL.item = false } case 253: { - parser.yyVAL.item = true + parser.yyVAL.item = false } case 254: + { + parser.yyVAL.item = true + } + case 255: { if columnOption, ok := yyS[yypt-0].item.(*ast.ColumnOption); ok { parser.yyVAL.item = []*ast.ColumnOption{columnOption} @@ -12887,7 +12909,7 @@ yynewstate: parser.yyVAL.item = yyS[yypt-0].item } } - case 255: + case 256: { if columnOption, ok := yyS[yypt-0].item.(*ast.ColumnOption); ok { parser.yyVAL.item = append(yyS[yypt-1].item.([]*ast.ColumnOption), columnOption) @@ -12895,11 +12917,11 @@ yynewstate: parser.yyVAL.item = append(yyS[yypt-1].item.([]*ast.ColumnOption), yyS[yypt-0].item.([]*ast.ColumnOption)...) } } - case 256: + case 257: { parser.yyVAL.item = []*ast.ColumnOption{} } - case 258: + case 259: { c := &ast.Constraint{ Tp: ast.ConstraintPrimaryKey, @@ -12918,7 +12940,7 @@ yynewstate: } parser.yyVAL.item = c } - case 259: + case 260: { c := &ast.Constraint{ Tp: ast.ConstraintFulltext, @@ -12931,7 +12953,7 @@ yynewstate: } parser.yyVAL.item = c } - case 260: + case 261: { c := &ast.Constraint{ IfNotExists: yyS[yypt-5].item.(bool), @@ -12951,7 +12973,7 @@ yynewstate: } parser.yyVAL.item = c } - case 261: + case 262: { c := &ast.Constraint{ Tp: ast.ConstraintUniq, @@ -12971,7 +12993,7 @@ yynewstate: } parser.yyVAL.item = c } - case 262: + case 263: { parser.yyVAL.item = &ast.Constraint{ IfNotExists: yyS[yypt-5].item.(bool), @@ -12982,7 +13004,7 @@ yynewstate: IsEmptyIndex: yyS[yypt-4].item.(*ast.NullString).Empty, } } - case 263: + case 264: { parser.yyVAL.item = &ast.Constraint{ Tp: ast.ConstraintCheck, @@ -12990,29 +13012,29 @@ yynewstate: Enforced: yyS[yypt-0].item.(bool), } } - case 264: + case 265: { parser.yyVAL.item = ast.MatchFull } - case 265: + case 266: { parser.yyVAL.item = ast.MatchPartial } - case 266: + case 267: { parser.yyVAL.item = ast.MatchSimple } - case 267: + case 268: { parser.yyVAL.item = ast.MatchNone } - case 268: + case 269: { parser.yyVAL.item = yyS[yypt-0].item yylex.AppendError(yylex.Errorf("The MATCH clause is parsed but ignored by all storage engines.")) parser.lastErrorAsWarn() } - case 269: + case 270: { onDeleteUpdate := yyS[yypt-0].item.([2]interface{}) parser.yyVAL.item = &ast.ReferenceDef{ @@ -13023,90 +13045,90 @@ yynewstate: Match: yyS[yypt-1].item.(ast.MatchType), } } - case 270: + case 271: { parser.yyVAL.item = &ast.OnDeleteOpt{ReferOpt: yyS[yypt-0].item.(ast.ReferOptionType)} } - case 271: + case 272: { parser.yyVAL.item = &ast.OnUpdateOpt{ReferOpt: yyS[yypt-0].item.(ast.ReferOptionType)} } - case 272: + case 273: { parser.yyVAL.item = [2]interface{}{&ast.OnDeleteOpt{}, &ast.OnUpdateOpt{}} } - case 273: + case 274: { parser.yyVAL.item = [2]interface{}{yyS[yypt-0].item, &ast.OnUpdateOpt{}} } - case 274: + case 275: { parser.yyVAL.item = [2]interface{}{&ast.OnDeleteOpt{}, yyS[yypt-0].item} } - case 275: + case 276: { parser.yyVAL.item = [2]interface{}{yyS[yypt-1].item, yyS[yypt-0].item} } - case 276: + case 277: { parser.yyVAL.item = [2]interface{}{yyS[yypt-0].item, yyS[yypt-1].item} } - case 277: + case 278: { parser.yyVAL.item = ast.ReferOptionRestrict } - case 278: + case 279: { parser.yyVAL.item = ast.ReferOptionCascade } - case 279: + case 280: { parser.yyVAL.item = ast.ReferOptionSetNull } - case 280: + case 281: { parser.yyVAL.item = ast.ReferOptionNoAction } - case 281: + case 282: { parser.yyVAL.item = ast.ReferOptionSetDefault yylex.AppendError(yylex.Errorf("The SET DEFAULT clause is parsed but ignored by all storage engines.")) parser.lastErrorAsWarn() } - case 286: + case 287: { parser.yyVAL.expr = yyS[yypt-1].expr.(*ast.FuncCallExpr) } - case 287: + case 288: { parser.yyVAL.expr = &ast.FuncCallExpr{ FnName: model.NewCIStr(yyS[yypt-2].ident), } } - case 288: + case 289: { parser.yyVAL.expr = &ast.FuncCallExpr{ FnName: model.NewCIStr(yyS[yypt-3].ident), Args: yyS[yypt-1].item.([]ast.ExprNode), } } - case 289: + case 290: { parser.yyVAL.expr = yyS[yypt-1].expr.(*ast.FuncCallExpr) } - case 291: + case 292: { parser.yyVAL.expr = &ast.FuncCallExpr{FnName: model.NewCIStr("CURRENT_TIMESTAMP")} } - case 292: + case 293: { parser.yyVAL.expr = &ast.FuncCallExpr{FnName: model.NewCIStr("CURRENT_TIMESTAMP")} } - case 293: + case 294: { parser.yyVAL.expr = &ast.FuncCallExpr{FnName: model.NewCIStr("CURRENT_TIMESTAMP"), Args: []ast.ExprNode{ast.NewValueExpr(yyS[yypt-1].item, parser.charset, parser.collation)}} } - case 294: + case 295: { objNameExpr := &ast.TableNameExpr{ Name: yyS[yypt-0].item.(*ast.TableName), @@ -13116,7 +13138,7 @@ yynewstate: Args: []ast.ExprNode{objNameExpr}, } } - case 295: + case 296: { objNameExpr := &ast.TableNameExpr{ Name: yyS[yypt-1].item.(*ast.TableName), @@ -13126,39 +13148,39 @@ yynewstate: Args: []ast.ExprNode{objNameExpr}, } } - case 303: + case 304: { parser.yyVAL.expr = ast.NewValueExpr(yyS[yypt-0].expr, parser.charset, parser.collation) } - case 304: + case 305: { parser.yyVAL.expr = &ast.UnaryOperationExpr{Op: opcode.Plus, V: ast.NewValueExpr(yyS[yypt-0].item, parser.charset, parser.collation)} } - case 305: + case 306: { parser.yyVAL.expr = &ast.UnaryOperationExpr{Op: opcode.Minus, V: ast.NewValueExpr(yyS[yypt-0].item, parser.charset, parser.collation)} } - case 309: + case 310: { parser.yyVAL.item = ast.StatsTypeCardinality } - case 310: + case 311: { parser.yyVAL.item = ast.StatsTypeDependency } - case 311: + case 312: { parser.yyVAL.item = ast.StatsTypeCorrelation } - case 312: + case 313: { parser.yyVAL.item = ast.BindingStatusTypeEnabled } - case 313: + case 314: { parser.yyVAL.item = ast.BindingStatusTypeDisabled } - case 314: + case 315: { parser.yyVAL.statement = &ast.CreateStatisticsStmt{ IfNotExists: yyS[yypt-9].item.(bool), @@ -13168,11 +13190,11 @@ yynewstate: Columns: yyS[yypt-1].item.([]*ast.ColumnName), } } - case 315: + case 316: { parser.yyVAL.statement = &ast.DropStatisticsStmt{StatsName: yyS[yypt-0].ident} } - case 316: + case 317: { var indexOption *ast.IndexOption if yyS[yypt-1].item != nil { @@ -13205,80 +13227,80 @@ yynewstate: LockAlg: indexLockAndAlgorithm, } } - case 317: + case 318: { parser.yyVAL.item = ([]*ast.IndexPartSpecification)(nil) } - case 318: + case 319: { parser.yyVAL.item = yyS[yypt-1].item } - case 319: + case 320: { parser.yyVAL.item = []*ast.IndexPartSpecification{yyS[yypt-0].item.(*ast.IndexPartSpecification)} } - case 320: + case 321: { parser.yyVAL.item = append(yyS[yypt-2].item.([]*ast.IndexPartSpecification), yyS[yypt-0].item.(*ast.IndexPartSpecification)) } - case 321: + case 322: { // Order is parsed but just ignored as MySQL did. parser.yyVAL.item = &ast.IndexPartSpecification{Column: yyS[yypt-2].item.(*ast.ColumnName), Length: yyS[yypt-1].item.(int)} } - case 322: + case 323: { parser.yyVAL.item = &ast.IndexPartSpecification{Expr: yyS[yypt-2].expr} } - case 323: + case 324: { parser.yyVAL.item = nil } - case 324: + case 325: { parser.yyVAL.item = &ast.IndexLockAndAlgorithm{ LockTp: yyS[yypt-0].item.(ast.LockType), AlgorithmTp: ast.AlgorithmTypeDefault, } } - case 325: + case 326: { parser.yyVAL.item = &ast.IndexLockAndAlgorithm{ LockTp: ast.LockTypeDefault, AlgorithmTp: yyS[yypt-0].item.(ast.AlgorithmType), } } - case 326: + case 327: { parser.yyVAL.item = &ast.IndexLockAndAlgorithm{ LockTp: yyS[yypt-1].item.(ast.LockType), AlgorithmTp: yyS[yypt-0].item.(ast.AlgorithmType), } } - case 327: + case 328: { parser.yyVAL.item = &ast.IndexLockAndAlgorithm{ LockTp: yyS[yypt-0].item.(ast.LockType), AlgorithmTp: yyS[yypt-1].item.(ast.AlgorithmType), } } - case 328: + case 329: { parser.yyVAL.item = ast.IndexKeyTypeNone } - case 329: + case 330: { parser.yyVAL.item = ast.IndexKeyTypeUnique } - case 330: + case 331: { parser.yyVAL.item = ast.IndexKeyTypeSpatial } - case 331: + case 332: { parser.yyVAL.item = ast.IndexKeyTypeFullText } - case 332: + case 333: { parser.yyVAL.statement = &ast.AlterDatabaseStmt{ Name: model.NewCIStr(yyS[yypt-1].ident), @@ -13286,7 +13308,7 @@ yynewstate: Options: yyS[yypt-0].item.([]*ast.DatabaseOption), } } - case 333: + case 334: { parser.yyVAL.statement = &ast.AlterDatabaseStmt{ Name: model.NewCIStr(""), @@ -13294,7 +13316,7 @@ yynewstate: Options: yyS[yypt-0].item.([]*ast.DatabaseOption), } } - case 334: + case 335: { parser.yyVAL.statement = &ast.CreateDatabaseStmt{ IfNotExists: yyS[yypt-2].item.(bool), @@ -13302,19 +13324,19 @@ yynewstate: Options: yyS[yypt-0].item.([]*ast.DatabaseOption), } } - case 337: + case 338: { parser.yyVAL.item = &ast.DatabaseOption{Tp: ast.DatabaseOptionCharset, Value: yyS[yypt-0].ident} } - case 338: + case 339: { parser.yyVAL.item = &ast.DatabaseOption{Tp: ast.DatabaseOptionCollate, Value: yyS[yypt-0].ident} } - case 339: + case 340: { parser.yyVAL.item = &ast.DatabaseOption{Tp: ast.DatabaseOptionEncryption, Value: yyS[yypt-0].ident} } - case 340: + case 341: { placementOptions := yyS[yypt-0].item.(*ast.PlacementOption) parser.yyVAL.item = &ast.DatabaseOption{ @@ -13324,7 +13346,7 @@ yynewstate: UintValue: placementOptions.UintValue, } } - case 341: + case 342: { placementOptions := yyS[yypt-0].item.(*ast.PlacementOption) parser.yyVAL.item = &ast.DatabaseOption{ @@ -13334,7 +13356,7 @@ yynewstate: UintValue: placementOptions.UintValue, } } - case 342: + case 343: { tiflashReplicaSpec := &ast.TiFlashReplicaSpec{ Count: yyS[yypt-1].item.(uint64), @@ -13345,19 +13367,19 @@ yynewstate: TiFlashReplica: tiflashReplicaSpec, } } - case 343: + case 344: { parser.yyVAL.item = []*ast.DatabaseOption{} } - case 345: + case 346: { parser.yyVAL.item = []*ast.DatabaseOption{yyS[yypt-0].item.(*ast.DatabaseOption)} } - case 346: + case 347: { parser.yyVAL.item = append(yyS[yypt-1].item.([]*ast.DatabaseOption), yyS[yypt-0].item.(*ast.DatabaseOption)) } - case 347: + case 348: { stmt := yyS[yypt-6].item.(*ast.CreateTableStmt) stmt.Table = yyS[yypt-7].item.(*ast.TableName) @@ -13378,7 +13400,7 @@ yynewstate: } parser.yyVAL.statement = stmt } - case 348: + case 349: { tmp := &ast.CreateTableStmt{ Table: yyS[yypt-2].item.(*ast.TableName), @@ -13395,23 +13417,23 @@ yynewstate: } parser.yyVAL.statement = tmp } - case 349: + case 350: { parser.yyVAL.item = nil } - case 350: + case 351: { parser.yyVAL.item = true } - case 351: + case 352: { parser.yyVAL.item = false } - case 354: + case 355: { parser.yyVAL.item = nil } - case 355: + case 356: { method := yyS[yypt-3].item.(*ast.PartitionMethod) method.Num = yyS[yypt-2].item.(uint64) @@ -13428,7 +13450,7 @@ yynewstate: } parser.yyVAL.item = opt } - case 356: + case 357: { keyAlgorithm, _ := yyS[yypt-3].item.(*ast.PartitionKeyAlgorithm) parser.yyVAL.item = &ast.PartitionMethod{ @@ -13438,7 +13460,7 @@ yynewstate: KeyAlgorithm: keyAlgorithm, } } - case 357: + case 358: { parser.yyVAL.item = &ast.PartitionMethod{ Tp: model.PartitionTypeHash, @@ -13446,11 +13468,11 @@ yynewstate: Expr: yyS[yypt-1].expr.(ast.ExprNode), } } - case 358: + case 359: { parser.yyVAL.item = nil } - case 359: + case 360: { tp := getUint64FromNUM(yyS[yypt-0].item) if tp != 1 && tp != 2 { @@ -13461,35 +13483,35 @@ yynewstate: Type: tp, } } - case 361: + case 362: { parser.yyVAL.item = &ast.PartitionMethod{ Tp: model.PartitionTypeRange, Expr: yyS[yypt-1].expr.(ast.ExprNode), } } - case 362: + case 363: { parser.yyVAL.item = &ast.PartitionMethod{ Tp: model.PartitionTypeRange, ColumnNames: yyS[yypt-1].item.([]*ast.ColumnName), } } - case 363: + case 364: { parser.yyVAL.item = &ast.PartitionMethod{ Tp: model.PartitionTypeList, Expr: yyS[yypt-1].expr.(ast.ExprNode), } } - case 364: + case 365: { parser.yyVAL.item = &ast.PartitionMethod{ Tp: model.PartitionTypeList, ColumnNames: yyS[yypt-1].item.([]*ast.ColumnName), } } - case 365: + case 366: { parser.yyVAL.item = &ast.PartitionMethod{ Tp: model.PartitionTypeSystemTime, @@ -13497,38 +13519,38 @@ yynewstate: Unit: yyS[yypt-0].item.(ast.TimeUnitType), } } - case 366: + case 367: { parser.yyVAL.item = &ast.PartitionMethod{ Tp: model.PartitionTypeSystemTime, Limit: yyS[yypt-0].item.(uint64), } } - case 367: + case 368: { parser.yyVAL.item = &ast.PartitionMethod{ Tp: model.PartitionTypeSystemTime, } } - case 368: + case 369: { parser.yyVAL.ident = "" } - case 370: + case 371: { parser.yyVAL.item = nil } - case 371: + case 372: { method := yyS[yypt-1].item.(*ast.PartitionMethod) method.Num = yyS[yypt-0].item.(uint64) parser.yyVAL.item = method } - case 372: + case 373: { parser.yyVAL.item = uint64(0) } - case 373: + case 374: { res := yyS[yypt-0].item.(uint64) if res == 0 { @@ -13537,11 +13559,11 @@ yynewstate: } parser.yyVAL.item = res } - case 374: + case 375: { parser.yyVAL.item = uint64(0) } - case 375: + case 376: { res := yyS[yypt-0].item.(uint64) if res == 0 { @@ -13550,23 +13572,23 @@ yynewstate: } parser.yyVAL.item = res } - case 376: + case 377: { parser.yyVAL.item = nil } - case 377: + case 378: { parser.yyVAL.item = yyS[yypt-1].item.([]*ast.PartitionDefinition) } - case 378: + case 379: { parser.yyVAL.item = []*ast.PartitionDefinition{yyS[yypt-0].item.(*ast.PartitionDefinition)} } - case 379: + case 380: { parser.yyVAL.item = append(yyS[yypt-2].item.([]*ast.PartitionDefinition), yyS[yypt-0].item.(*ast.PartitionDefinition)) } - case 380: + case 381: { parser.yyVAL.item = &ast.PartitionDefinition{ Name: model.NewCIStr(yyS[yypt-3].ident), @@ -13575,80 +13597,80 @@ yynewstate: Sub: yyS[yypt-0].item.([]*ast.SubPartitionDefinition), } } - case 381: + case 382: { parser.yyVAL.item = make([]*ast.SubPartitionDefinition, 0) } - case 382: + case 383: { parser.yyVAL.item = yyS[yypt-1].item } - case 383: + case 384: { parser.yyVAL.item = []*ast.SubPartitionDefinition{yyS[yypt-0].item.(*ast.SubPartitionDefinition)} } - case 384: + case 385: { list := yyS[yypt-2].item.([]*ast.SubPartitionDefinition) parser.yyVAL.item = append(list, yyS[yypt-0].item.(*ast.SubPartitionDefinition)) } - case 385: + case 386: { parser.yyVAL.item = &ast.SubPartitionDefinition{ Name: model.NewCIStr(yyS[yypt-1].ident), Options: yyS[yypt-0].item.([]*ast.TableOption), } } - case 386: + case 387: { parser.yyVAL.item = make([]*ast.TableOption, 0) } - case 387: + case 388: { list := yyS[yypt-1].item.([]*ast.TableOption) parser.yyVAL.item = append(list, yyS[yypt-0].item.(*ast.TableOption)) } - case 388: + case 389: { parser.yyVAL.item = &ast.TableOption{Tp: ast.TableOptionComment, StrValue: yyS[yypt-0].ident} } - case 389: + case 390: { parser.yyVAL.item = &ast.TableOption{Tp: ast.TableOptionEngine, StrValue: yyS[yypt-0].ident} } - case 390: + case 391: { parser.yyVAL.item = &ast.TableOption{Tp: ast.TableOptionEngine, StrValue: yyS[yypt-0].ident} } - case 391: + case 392: { parser.yyVAL.item = &ast.TableOption{Tp: ast.TableOptionInsertMethod, StrValue: yyS[yypt-0].ident} } - case 392: + case 393: { parser.yyVAL.item = &ast.TableOption{Tp: ast.TableOptionDataDirectory, StrValue: yyS[yypt-0].ident} } - case 393: + case 394: { parser.yyVAL.item = &ast.TableOption{Tp: ast.TableOptionIndexDirectory, StrValue: yyS[yypt-0].ident} } - case 394: + case 395: { parser.yyVAL.item = &ast.TableOption{Tp: ast.TableOptionMaxRows, UintValue: yyS[yypt-0].item.(uint64)} } - case 395: + case 396: { parser.yyVAL.item = &ast.TableOption{Tp: ast.TableOptionMinRows, UintValue: yyS[yypt-0].item.(uint64)} } - case 396: + case 397: { parser.yyVAL.item = &ast.TableOption{Tp: ast.TableOptionTablespace, StrValue: yyS[yypt-0].ident} } - case 397: + case 398: { parser.yyVAL.item = &ast.TableOption{Tp: ast.TableOptionNodegroup, UintValue: yyS[yypt-0].item.(uint64)} } - case 398: + case 399: { placementOptions := yyS[yypt-0].item.(*ast.PlacementOption) parser.yyVAL.item = &ast.TableOption{ @@ -13658,27 +13680,27 @@ yynewstate: UintValue: placementOptions.UintValue, } } - case 399: + case 400: { parser.yyVAL.item = &ast.PartitionDefinitionClauseNone{} } - case 400: + case 401: { parser.yyVAL.item = &ast.PartitionDefinitionClauseLessThan{ Exprs: []ast.ExprNode{&ast.MaxValueExpr{}}, } } - case 401: + case 402: { parser.yyVAL.item = &ast.PartitionDefinitionClauseLessThan{ Exprs: yyS[yypt-1].item.([]ast.ExprNode), } } - case 402: + case 403: { parser.yyVAL.item = &ast.PartitionDefinitionClauseIn{} } - case 403: + case 404: { exprs := yyS[yypt-1].item.([]ast.ExprNode) values := make([][]ast.ExprNode, 0, len(exprs)) @@ -13691,33 +13713,29 @@ yynewstate: } parser.yyVAL.item = &ast.PartitionDefinitionClauseIn{Values: values} } - case 404: + case 405: { parser.yyVAL.item = &ast.PartitionDefinitionClauseHistory{Current: false} } - case 405: + case 406: { parser.yyVAL.item = &ast.PartitionDefinitionClauseHistory{Current: true} } - case 406: + case 407: { parser.yyVAL.item = ast.OnDuplicateKeyHandlingError } - case 407: + case 408: { parser.yyVAL.item = ast.OnDuplicateKeyHandlingIgnore } - case 408: + case 409: { parser.yyVAL.item = ast.OnDuplicateKeyHandlingReplace } - case 411: - { - parser.yyVAL.item = &ast.CreateTableStmt{} - } case 412: { - parser.yyVAL.item = &ast.CreateTableStmt{Select: yyS[yypt-0].statement.(ast.ResultSetNode)} + parser.yyVAL.item = &ast.CreateTableStmt{} } case 413: { @@ -13728,6 +13746,10 @@ yynewstate: parser.yyVAL.item = &ast.CreateTableStmt{Select: yyS[yypt-0].statement.(ast.ResultSetNode)} } case 415: + { + parser.yyVAL.item = &ast.CreateTableStmt{Select: yyS[yypt-0].statement.(ast.ResultSetNode)} + } + case 416: { var sel ast.ResultSetNode switch x := yyS[yypt-0].expr.(*ast.SubqueryExpr).Query.(type) { @@ -13740,7 +13762,7 @@ yynewstate: } parser.yyVAL.item = &ast.CreateTableStmt{Select: sel} } - case 419: + case 420: { var sel ast.StmtNode switch x := yyS[yypt-0].expr.(*ast.SubqueryExpr).Query.(type) { @@ -13753,15 +13775,15 @@ yynewstate: } parser.yyVAL.statement = sel } - case 420: + case 421: { parser.yyVAL.item = yyS[yypt-0].item } - case 421: + case 422: { parser.yyVAL.item = yyS[yypt-1].item } - case 422: + case 423: { startOffset := parser.startOffset(&yyS[yypt-1]) selStmt := yyS[yypt-1].statement.(ast.StmtNode) @@ -13786,17 +13808,13 @@ yynewstate: } parser.yyVAL.statement = x } - case 423: - { - parser.yyVAL.item = false - } case 424: { - parser.yyVAL.item = true + parser.yyVAL.item = false } case 425: { - parser.yyVAL.item = model.AlgorithmUndefined + parser.yyVAL.item = true } case 426: { @@ -13804,67 +13822,71 @@ yynewstate: } case 427: { - parser.yyVAL.item = model.AlgorithmMerge + parser.yyVAL.item = model.AlgorithmUndefined } case 428: { - parser.yyVAL.item = model.AlgorithmTemptable + parser.yyVAL.item = model.AlgorithmMerge } case 429: { - parser.yyVAL.item = &auth.UserIdentity{CurrentUser: true} + parser.yyVAL.item = model.AlgorithmTemptable } case 430: { - parser.yyVAL.item = yyS[yypt-0].item + parser.yyVAL.item = &auth.UserIdentity{CurrentUser: true} } case 431: { - parser.yyVAL.item = model.SecurityDefiner + parser.yyVAL.item = yyS[yypt-0].item } case 432: { parser.yyVAL.item = model.SecurityDefiner } case 433: + { + parser.yyVAL.item = model.SecurityDefiner + } + case 434: { parser.yyVAL.item = model.SecurityInvoker } - case 435: + case 436: { parser.yyVAL.item = nil } - case 436: + case 437: { parser.yyVAL.item = yyS[yypt-1].item.([]model.CIStr) } - case 437: + case 438: { parser.yyVAL.item = []model.CIStr{model.NewCIStr(yyS[yypt-0].ident)} } - case 438: + case 439: { parser.yyVAL.item = append(yyS[yypt-2].item.([]model.CIStr), model.NewCIStr(yyS[yypt-0].ident)) } - case 439: + case 440: { parser.yyVAL.item = nil } - case 440: + case 441: { parser.yyVAL.item = model.CheckOptionCascaded } - case 441: + case 442: { parser.yyVAL.item = model.CheckOptionLocal } - case 442: + case 443: { parser.yyVAL.statement = &ast.DoStmt{ Exprs: yyS[yypt-0].item.([]ast.ExprNode), } } - case 443: + case 444: { // Single Table tn := yyS[yypt-6].item.(*ast.TableName) @@ -13892,7 +13914,7 @@ yynewstate: parser.yyVAL.statement = x } - case 444: + case 445: { // Multiple Table x := &ast.DeleteStmt{ @@ -13912,7 +13934,7 @@ yynewstate: } parser.yyVAL.statement = x } - case 445: + case 446: { // Multiple Table x := &ast.DeleteStmt{ @@ -13931,23 +13953,23 @@ yynewstate: } parser.yyVAL.statement = x } - case 448: + case 449: { d := yyS[yypt-0].statement.(*ast.DeleteStmt) d.With = yyS[yypt-1].item.(*ast.WithClause) parser.yyVAL.statement = d } - case 449: + case 450: { d := yyS[yypt-0].statement.(*ast.DeleteStmt) d.With = yyS[yypt-1].item.(*ast.WithClause) parser.yyVAL.statement = d } - case 451: + case 452: { parser.yyVAL.statement = &ast.DropDatabaseStmt{IfExists: yyS[yypt-1].item.(bool), Name: model.NewCIStr(yyS[yypt-0].ident)} } - case 452: + case 453: { var indexLockAndAlgorithm *ast.IndexLockAndAlgorithm if yyS[yypt-0].item != nil { @@ -13958,39 +13980,39 @@ yynewstate: } parser.yyVAL.statement = &ast.DropIndexStmt{IfExists: yyS[yypt-4].item.(bool), IndexName: yyS[yypt-3].ident, Table: yyS[yypt-1].item.(*ast.TableName), LockAlg: indexLockAndAlgorithm} } - case 453: + case 454: { parser.yyVAL.statement = &ast.DropTableStmt{IfExists: yyS[yypt-2].item.(bool), Tables: yyS[yypt-1].item.([]*ast.TableName), IsView: false, TemporaryKeyword: yyS[yypt-4].item.(ast.TemporaryKeyword)} } - case 454: + case 455: { parser.yyVAL.item = ast.TemporaryNone } - case 455: + case 456: { parser.yyVAL.item = ast.TemporaryLocal } - case 456: + case 457: { parser.yyVAL.item = ast.TemporaryGlobal } - case 457: + case 458: { parser.yyVAL.statement = &ast.DropTableStmt{Tables: yyS[yypt-1].item.([]*ast.TableName), IsView: true} } - case 458: + case 459: { parser.yyVAL.statement = &ast.DropTableStmt{IfExists: true, Tables: yyS[yypt-1].item.([]*ast.TableName), IsView: true} } - case 459: + case 460: { parser.yyVAL.statement = &ast.DropUserStmt{IsDropRole: false, IfExists: false, UserList: yyS[yypt-0].item.([]*auth.UserIdentity)} } - case 460: + case 461: { parser.yyVAL.statement = &ast.DropUserStmt{IsDropRole: false, IfExists: true, UserList: yyS[yypt-0].item.([]*auth.UserIdentity)} } - case 461: + case 462: { tmp := make([]*auth.UserIdentity, 0, 10) roleList := yyS[yypt-0].item.([]*auth.RoleIdentity) @@ -13999,7 +14021,7 @@ yynewstate: } parser.yyVAL.statement = &ast.DropUserStmt{IsDropRole: true, IfExists: false, UserList: tmp} } - case 462: + case 463: { tmp := make([]*auth.UserIdentity, 0, 10) roleList := yyS[yypt-0].item.([]*auth.RoleIdentity) @@ -14008,29 +14030,29 @@ yynewstate: } parser.yyVAL.statement = &ast.DropUserStmt{IsDropRole: true, IfExists: true, UserList: tmp} } - case 463: + case 464: { parser.yyVAL.statement = &ast.DropStatsStmt{Table: yyS[yypt-0].item.(*ast.TableName)} } - case 464: + case 465: { parser.yyVAL.statement = &ast.DropStatsStmt{ Table: yyS[yypt-2].item.(*ast.TableName), PartitionNames: yyS[yypt-0].item.([]model.CIStr), } } - case 465: + case 466: { parser.yyVAL.statement = &ast.DropStatsStmt{ Table: yyS[yypt-1].item.(*ast.TableName), IsGlobalStats: true, } } - case 473: + case 474: { parser.yyVAL.statement = nil } - case 474: + case 475: { parser.yyVAL.statement = &ast.TraceStmt{ Stmt: yyS[yypt-0].statement, @@ -14040,7 +14062,7 @@ yynewstate: startOffset := parser.startOffset(&yyS[yypt]) yyS[yypt-0].statement.SetText(parser.lexer.client, string(parser.src[startOffset:])) } - case 475: + case 476: { parser.yyVAL.statement = &ast.TraceStmt{ Stmt: yyS[yypt-0].statement, @@ -14050,7 +14072,7 @@ yynewstate: startOffset := parser.startOffset(&yyS[yypt]) yyS[yypt-0].statement.SetText(parser.lexer.client, string(parser.src[startOffset:])) } - case 476: + case 477: { parser.yyVAL.statement = &ast.TraceStmt{ Stmt: yyS[yypt-0].statement, @@ -14059,7 +14081,7 @@ yynewstate: startOffset := parser.startOffset(&yyS[yypt]) yyS[yypt-0].statement.SetText(parser.lexer.client, string(parser.src[startOffset:])) } - case 477: + case 478: { parser.yyVAL.statement = &ast.TraceStmt{ Stmt: yyS[yypt-0].statement, @@ -14069,7 +14091,7 @@ yynewstate: startOffset := parser.startOffset(&yyS[yypt]) yyS[yypt-0].statement.SetText(parser.lexer.client, string(parser.src[startOffset:])) } - case 481: + case 482: { parser.yyVAL.statement = &ast.ExplainStmt{ Stmt: &ast.ShowStmt{ @@ -14078,7 +14100,7 @@ yynewstate: }, } } - case 482: + case 483: { parser.yyVAL.statement = &ast.ExplainStmt{ Stmt: &ast.ShowStmt{ @@ -14088,49 +14110,49 @@ yynewstate: }, } } - case 483: + case 484: { parser.yyVAL.statement = &ast.ExplainStmt{ Stmt: yyS[yypt-0].statement, Format: "row", } } - case 484: + case 485: { parser.yyVAL.statement = &ast.ExplainForStmt{ Format: "row", ConnectionID: getUint64FromNUM(yyS[yypt-0].item), } } - case 485: + case 486: { parser.yyVAL.statement = &ast.ExplainForStmt{ Format: yyS[yypt-3].ident, ConnectionID: getUint64FromNUM(yyS[yypt-0].item), } } - case 486: + case 487: { parser.yyVAL.statement = &ast.ExplainStmt{ Stmt: yyS[yypt-0].statement, Format: yyS[yypt-1].ident, } } - case 487: + case 488: { parser.yyVAL.statement = &ast.ExplainForStmt{ Format: yyS[yypt-3].ident, ConnectionID: getUint64FromNUM(yyS[yypt-0].item), } } - case 488: + case 489: { parser.yyVAL.statement = &ast.ExplainStmt{ Stmt: yyS[yypt-0].statement, Format: yyS[yypt-1].ident, } } - case 489: + case 490: { parser.yyVAL.statement = &ast.ExplainStmt{ Stmt: yyS[yypt-0].statement, @@ -14138,7 +14160,7 @@ yynewstate: Analyze: true, } } - case 490: + case 491: { parser.yyVAL.statement = &ast.ExplainStmt{ Stmt: yyS[yypt-0].statement, @@ -14146,7 +14168,7 @@ yynewstate: Analyze: true, } } - case 491: + case 492: { parser.yyVAL.statement = &ast.ExplainStmt{ Stmt: yyS[yypt-0].statement, @@ -14154,15 +14176,15 @@ yynewstate: Analyze: true, } } - case 499: + case 500: { parser.yyVAL.statement = &ast.SavepointStmt{Name: yyS[yypt-0].ident} } - case 500: + case 501: { parser.yyVAL.statement = &ast.ReleaseSavepointStmt{Name: yyS[yypt-0].ident} } - case 501: + case 502: { stmt := yyS[yypt-3].item.(*ast.BRIEStmt) stmt.Kind = ast.BRIEKindBackup @@ -14170,7 +14192,7 @@ yynewstate: stmt.Options = yyS[yypt-0].item.([]*ast.BRIEOption) parser.yyVAL.statement = stmt } - case 502: + case 503: { stmt := yyS[yypt-3].item.(*ast.BRIEStmt) stmt.Kind = ast.BRIEKindRestore @@ -14178,110 +14200,110 @@ yynewstate: stmt.Options = yyS[yypt-0].item.([]*ast.BRIEOption) parser.yyVAL.statement = stmt } - case 503: + case 504: { parser.yyVAL.item = &ast.BRIEStmt{} } - case 504: + case 505: { parser.yyVAL.item = &ast.BRIEStmt{Schemas: yyS[yypt-0].item.([]string)} } - case 505: + case 506: { parser.yyVAL.item = &ast.BRIEStmt{Tables: yyS[yypt-0].item.([]*ast.TableName)} } - case 506: + case 507: { parser.yyVAL.item = []string{yyS[yypt-0].ident} } - case 507: + case 508: { parser.yyVAL.item = append(yyS[yypt-2].item.([]string), yyS[yypt-0].ident) } - case 508: + case 509: { parser.yyVAL.item = []*ast.BRIEOption{} } - case 509: + case 510: { parser.yyVAL.item = append(yyS[yypt-1].item.([]*ast.BRIEOption), yyS[yypt-0].item.(*ast.BRIEOption)) } - case 510: + case 511: { parser.yyVAL.item = ast.BRIEOptionConcurrency } - case 511: + case 512: { parser.yyVAL.item = ast.BRIEOptionResume } - case 512: + case 513: { parser.yyVAL.item = ast.BRIEOptionSendCreds } - case 513: + case 514: { parser.yyVAL.item = ast.BRIEOptionOnline } - case 514: + case 515: { parser.yyVAL.item = ast.BRIEOptionCheckpoint } - case 515: + case 516: { parser.yyVAL.item = ast.BRIEOptionSkipSchemaFiles } - case 516: + case 517: { parser.yyVAL.item = ast.BRIEOptionStrictFormat } - case 517: + case 518: { parser.yyVAL.item = ast.BRIEOptionCSVNotNull } - case 518: + case 519: { parser.yyVAL.item = ast.BRIEOptionCSVBackslashEscape } - case 519: + case 520: { parser.yyVAL.item = ast.BRIEOptionCSVTrimLastSeparators } - case 520: + case 521: { parser.yyVAL.item = ast.BRIEOptionTiKVImporter } - case 521: + case 522: { parser.yyVAL.item = ast.BRIEOptionCSVSeparator } - case 522: + case 523: { parser.yyVAL.item = ast.BRIEOptionCSVDelimiter } - case 523: + case 524: { parser.yyVAL.item = ast.BRIEOptionCSVNull } - case 524: + case 525: { parser.yyVAL.item = ast.BRIEOptionBackend } - case 525: + case 526: { parser.yyVAL.item = ast.BRIEOptionOnDuplicate } - case 526: + case 527: { parser.yyVAL.item = ast.BRIEOptionOnDuplicate } - case 527: + case 528: { parser.yyVAL.item = &ast.BRIEOption{ Tp: yyS[yypt-2].item.(ast.BRIEOptionType), UintValue: yyS[yypt-0].item.(uint64), } } - case 528: + case 529: { value := uint64(0) if yyS[yypt-0].item.(bool) { @@ -14292,21 +14314,21 @@ yynewstate: UintValue: value, } } - case 529: + case 530: { parser.yyVAL.item = &ast.BRIEOption{ Tp: yyS[yypt-2].item.(ast.BRIEOptionType), StrValue: yyS[yypt-0].ident, } } - case 530: + case 531: { parser.yyVAL.item = &ast.BRIEOption{ Tp: yyS[yypt-2].item.(ast.BRIEOptionType), StrValue: strings.ToLower(yyS[yypt-0].ident), } } - case 531: + case 532: { unit, err := yyS[yypt-1].item.(ast.TimeUnitType).Duration() if err != nil { @@ -14319,35 +14341,35 @@ yynewstate: UintValue: yyS[yypt-2].item.(uint64) * uint64(unit), } } - case 532: + case 533: { parser.yyVAL.item = &ast.BRIEOption{ Tp: ast.BRIEOptionBackupTS, StrValue: yyS[yypt-0].ident, } } - case 533: + case 534: { parser.yyVAL.item = &ast.BRIEOption{ Tp: ast.BRIEOptionBackupTSO, UintValue: yyS[yypt-0].item.(uint64), } } - case 534: + case 535: { parser.yyVAL.item = &ast.BRIEOption{ Tp: ast.BRIEOptionLastBackupTS, StrValue: yyS[yypt-0].ident, } } - case 535: + case 536: { parser.yyVAL.item = &ast.BRIEOption{ Tp: ast.BRIEOptionLastBackupTSO, UintValue: yyS[yypt-0].item.(uint64), } } - case 536: + case 537: { // TODO: check overflow? parser.yyVAL.item = &ast.BRIEOption{ @@ -14355,21 +14377,21 @@ yynewstate: UintValue: yyS[yypt-3].item.(uint64) * 1048576, } } - case 537: + case 538: { parser.yyVAL.item = &ast.BRIEOption{ Tp: ast.BRIEOptionCSVHeader, UintValue: ast.BRIECSVHeaderIsColumns, } } - case 538: + case 539: { parser.yyVAL.item = &ast.BRIEOption{ Tp: ast.BRIEOptionCSVHeader, UintValue: yyS[yypt-0].item.(uint64), } } - case 539: + case 540: { value := uint64(0) if yyS[yypt-0].item.(bool) { @@ -14380,14 +14402,14 @@ yynewstate: UintValue: value, } } - case 540: + case 541: { parser.yyVAL.item = &ast.BRIEOption{ Tp: ast.BRIEOptionChecksum, UintValue: uint64(yyS[yypt-0].item.(ast.BRIEOptionLevel)), } } - case 541: + case 542: { value := uint64(0) if yyS[yypt-0].item.(bool) { @@ -14398,18 +14420,18 @@ yynewstate: UintValue: value, } } - case 542: + case 543: { parser.yyVAL.item = &ast.BRIEOption{ Tp: ast.BRIEOptionAnalyze, UintValue: uint64(yyS[yypt-0].item.(ast.BRIEOptionLevel)), } } - case 543: + case 544: { parser.yyVAL.item = getUint64FromNUM(yyS[yypt-0].item) } - case 544: + case 545: { v, rangeErrMsg := getInt64FromNUM(yyS[yypt-0].item) if len(rangeErrMsg) != 0 { @@ -14418,35 +14440,35 @@ yynewstate: } parser.yyVAL.item = v } - case 546: + case 547: { parser.yyVAL.item = yyS[yypt-0].item.(int64) != 0 } - case 547: + case 548: { parser.yyVAL.item = false } - case 548: + case 549: { parser.yyVAL.item = true } - case 549: + case 550: { parser.yyVAL.item = ast.BRIEOptionLevelOff } - case 550: + case 551: { parser.yyVAL.item = ast.BRIEOptionLevelOptional } - case 551: + case 552: { parser.yyVAL.item = ast.BRIEOptionLevelRequired } - case 552: + case 553: { parser.yyVAL.statement = &ast.PurgeImportStmt{TaskID: getUint64FromNUM(yyS[yypt-0].item)} } - case 553: + case 554: { parser.yyVAL.statement = &ast.CreateImportStmt{ IfNotExists: yyS[yypt-5].item.(bool), @@ -14456,21 +14478,21 @@ yynewstate: Options: yyS[yypt-0].item.([]*ast.BRIEOption), } } - case 554: + case 555: { parser.yyVAL.statement = &ast.StopImportStmt{ IfRunning: yyS[yypt-1].item.(bool), Name: yyS[yypt-0].ident, } } - case 555: + case 556: { parser.yyVAL.statement = &ast.ResumeImportStmt{ IfNotRunning: yyS[yypt-1].item.(bool), Name: yyS[yypt-0].ident, } } - case 556: + case 557: { s := &ast.AlterImportStmt{ Name: yyS[yypt-3].ident, @@ -14482,14 +14504,14 @@ yynewstate: } parser.yyVAL.statement = s } - case 557: + case 558: { parser.yyVAL.statement = &ast.DropImportStmt{ IfExists: yyS[yypt-1].item.(bool), Name: yyS[yypt-0].ident, } } - case 558: + case 559: { parser.yyVAL.statement = &ast.ShowImportStmt{ Name: yyS[yypt-2].ident, @@ -14497,73 +14519,73 @@ yynewstate: TableNames: yyS[yypt-0].item.([]*ast.TableName), } } - case 559: + case 560: { parser.yyVAL.item = false } - case 560: + case 561: { parser.yyVAL.item = true } - case 561: + case 562: { parser.yyVAL.item = false } - case 562: + case 563: { parser.yyVAL.item = true } - case 563: + case 564: { parser.yyVAL.item = false } - case 564: + case 565: { parser.yyVAL.item = true } - case 565: + case 566: { parser.yyVAL.item = ast.ErrorHandleError } - case 566: + case 567: { parser.yyVAL.item = ast.ErrorHandleReplace } - case 567: + case 568: { parser.yyVAL.item = ast.ErrorHandleSkipAll } - case 568: + case 569: { parser.yyVAL.item = ast.ErrorHandleSkipConstraint } - case 569: + case 570: { parser.yyVAL.item = ast.ErrorHandleSkipDuplicate } - case 570: + case 571: { parser.yyVAL.item = ast.ErrorHandleSkipStrict } - case 571: + case 572: { parser.yyVAL.item = nil } - case 572: + case 573: { parser.yyVAL.item = &ast.ImportTruncate{ IsErrorsOnly: false, TableNames: yyS[yypt-0].item.([]*ast.TableName), } } - case 573: + case 574: { parser.yyVAL.item = &ast.ImportTruncate{ IsErrorsOnly: true, TableNames: yyS[yypt-0].item.([]*ast.TableName), } } - case 574: + case 575: { v := yyS[yypt-2].ident v = strings.TrimPrefix(v, "@") @@ -14574,19 +14596,19 @@ yynewstate: Value: yyS[yypt-0].expr, } } - case 575: + case 576: { parser.yyVAL.expr = &ast.BinaryOperationExpr{Op: opcode.LogicOr, L: yyS[yypt-2].expr, R: yyS[yypt-0].expr} } - case 576: + case 577: { parser.yyVAL.expr = &ast.BinaryOperationExpr{Op: opcode.LogicXor, L: yyS[yypt-2].expr, R: yyS[yypt-0].expr} } - case 577: + case 578: { parser.yyVAL.expr = &ast.BinaryOperationExpr{Op: opcode.LogicAnd, L: yyS[yypt-2].expr, R: yyS[yypt-0].expr} } - case 578: + case 579: { expr, ok := yyS[yypt-0].expr.(*ast.ExistsSubqueryExpr) if ok { @@ -14596,7 +14618,7 @@ yynewstate: parser.yyVAL.expr = &ast.UnaryOperationExpr{Op: opcode.Not, V: yyS[yypt-0].expr} } } - case 579: + case 580: { parser.yyVAL.expr = &ast.MatchAgainst{ ColumnNames: yyS[yypt-6].item.([]*ast.ColumnName), @@ -14604,87 +14626,87 @@ yynewstate: Modifier: ast.FulltextSearchModifier(yyS[yypt-1].item.(int)), } } - case 580: + case 581: { parser.yyVAL.expr = &ast.IsTruthExpr{Expr: yyS[yypt-2].expr, Not: !yyS[yypt-1].item.(bool), True: int64(1)} } - case 581: + case 582: { parser.yyVAL.expr = &ast.IsTruthExpr{Expr: yyS[yypt-2].expr, Not: !yyS[yypt-1].item.(bool), True: int64(0)} } - case 582: + case 583: { /* https://dev.mysql.com/doc/refman/5.7/en/comparison-operators.html#operator_is */ parser.yyVAL.expr = &ast.IsNullExpr{Expr: yyS[yypt-2].expr, Not: !yyS[yypt-1].item.(bool)} } - case 584: + case 585: { parser.yyVAL.expr = &ast.MaxValueExpr{} } - case 586: + case 587: { parser.yyVAL.item = ast.FulltextSearchModifierNaturalLanguageMode } - case 587: + case 588: { parser.yyVAL.item = ast.FulltextSearchModifierNaturalLanguageMode } - case 588: + case 589: { parser.yyVAL.item = ast.FulltextSearchModifierNaturalLanguageMode | ast.FulltextSearchModifierWithQueryExpansion } - case 589: + case 590: { parser.yyVAL.item = ast.FulltextSearchModifierBooleanMode } - case 590: + case 591: { parser.yyVAL.item = ast.FulltextSearchModifierWithQueryExpansion } - case 595: + case 596: { parser.yyVAL.item = []ast.ExprNode{yyS[yypt-0].expr} } - case 596: + case 597: { parser.yyVAL.item = append(yyS[yypt-2].item.([]ast.ExprNode), yyS[yypt-0].expr) } - case 597: + case 598: { parser.yyVAL.item = []ast.ExprNode{yyS[yypt-0].expr} } - case 598: + case 599: { parser.yyVAL.item = append(yyS[yypt-2].item.([]ast.ExprNode), yyS[yypt-0].expr) } - case 599: + case 600: { parser.yyVAL.item = []ast.ExprNode{} } - case 601: + case 602: { parser.yyVAL.item = []ast.ExprNode{} } - case 603: + case 604: { expr := ast.NewValueExpr(yyS[yypt-0].item, parser.charset, parser.collation) parser.yyVAL.item = []ast.ExprNode{expr} } - case 604: + case 605: { parser.yyVAL.expr = &ast.IsNullExpr{Expr: yyS[yypt-2].expr, Not: !yyS[yypt-1].item.(bool)} } - case 605: + case 606: { parser.yyVAL.expr = &ast.BinaryOperationExpr{Op: yyS[yypt-1].item.(opcode.Op), L: yyS[yypt-2].expr, R: yyS[yypt-0].expr} } - case 606: + case 607: { sq := yyS[yypt-0].expr.(*ast.SubqueryExpr) sq.MultiRows = true parser.yyVAL.expr = &ast.CompareSubqueryExpr{Op: yyS[yypt-2].item.(opcode.Op), L: yyS[yypt-3].expr, R: sq, All: yyS[yypt-1].item.(bool)} } - case 607: + case 608: { v := yyS[yypt-2].ident v = strings.TrimPrefix(v, "@") @@ -14696,25 +14718,21 @@ yynewstate: } parser.yyVAL.expr = &ast.BinaryOperationExpr{Op: yyS[yypt-3].item.(opcode.Op), L: yyS[yypt-4].expr, R: variable} } - case 609: - { - parser.yyVAL.item = opcode.GE - } case 610: { - parser.yyVAL.item = opcode.GT + parser.yyVAL.item = opcode.GE } case 611: { - parser.yyVAL.item = opcode.LE + parser.yyVAL.item = opcode.GT } case 612: { - parser.yyVAL.item = opcode.LT + parser.yyVAL.item = opcode.LE } case 613: { - parser.yyVAL.item = opcode.NE + parser.yyVAL.item = opcode.LT } case 614: { @@ -14722,51 +14740,51 @@ yynewstate: } case 615: { - parser.yyVAL.item = opcode.EQ + parser.yyVAL.item = opcode.NE } case 616: { - parser.yyVAL.item = opcode.NullEQ + parser.yyVAL.item = opcode.EQ } case 617: { - parser.yyVAL.item = true + parser.yyVAL.item = opcode.NullEQ } case 618: { - parser.yyVAL.item = false + parser.yyVAL.item = true } case 619: { - parser.yyVAL.item = true + parser.yyVAL.item = false } case 620: { - parser.yyVAL.item = false + parser.yyVAL.item = true } case 621: { - parser.yyVAL.item = true + parser.yyVAL.item = false } case 622: { - parser.yyVAL.item = false + parser.yyVAL.item = true } case 623: { - parser.yyVAL.item = true + parser.yyVAL.item = false } case 624: { - parser.yyVAL.item = false + parser.yyVAL.item = true } case 625: { - parser.yyVAL.item = true + parser.yyVAL.item = false } case 626: { - parser.yyVAL.item = false + parser.yyVAL.item = true } case 627: { @@ -14778,19 +14796,23 @@ yynewstate: } case 629: { - parser.yyVAL.item = true + parser.yyVAL.item = false } case 630: { - parser.yyVAL.expr = &ast.PatternInExpr{Expr: yyS[yypt-4].expr, Not: !yyS[yypt-3].item.(bool), List: yyS[yypt-1].item.([]ast.ExprNode)} + parser.yyVAL.item = true } case 631: + { + parser.yyVAL.expr = &ast.PatternInExpr{Expr: yyS[yypt-4].expr, Not: !yyS[yypt-3].item.(bool), List: yyS[yypt-1].item.([]ast.ExprNode)} + } + case 632: { sq := yyS[yypt-0].expr.(*ast.SubqueryExpr) sq.MultiRows = true parser.yyVAL.expr = &ast.PatternInExpr{Expr: yyS[yypt-2].expr, Not: !yyS[yypt-1].item.(bool), Sel: sq} } - case 632: + case 633: { parser.yyVAL.expr = &ast.BetweenExpr{ Expr: yyS[yypt-4].expr, @@ -14799,7 +14821,7 @@ yynewstate: Not: !yyS[yypt-3].item.(bool), } } - case 633: + case 634: { escape := yyS[yypt-0].ident if len(escape) > 1 { @@ -14815,57 +14837,57 @@ yynewstate: Escape: escape[0], } } - case 634: + case 635: { parser.yyVAL.expr = &ast.PatternRegexpExpr{Expr: yyS[yypt-2].expr, Pattern: yyS[yypt-0].expr, Not: !yyS[yypt-1].item.(bool)} } - case 638: + case 639: { parser.yyVAL.ident = "\\" } - case 639: + case 640: { parser.yyVAL.ident = yyS[yypt-0].ident } - case 640: + case 641: { parser.yyVAL.item = &ast.SelectField{WildCard: &ast.WildCardField{}} } - case 641: + case 642: { wildCard := &ast.WildCardField{Table: model.NewCIStr(yyS[yypt-2].ident)} parser.yyVAL.item = &ast.SelectField{WildCard: wildCard} } - case 642: + case 643: { wildCard := &ast.WildCardField{Schema: model.NewCIStr(yyS[yypt-4].ident), Table: model.NewCIStr(yyS[yypt-2].ident)} parser.yyVAL.item = &ast.SelectField{WildCard: wildCard} } - case 643: + case 644: { expr := yyS[yypt-1].expr asName := yyS[yypt-0].ident parser.yyVAL.item = &ast.SelectField{Expr: expr, AsName: model.NewCIStr(asName)} } - case 644: + case 645: { parser.yyVAL.ident = "" } - case 647: + case 648: { parser.yyVAL.ident = yyS[yypt-0].ident } - case 649: + case 650: { parser.yyVAL.ident = yyS[yypt-0].ident } - case 650: + case 651: { field := yyS[yypt-0].item.(*ast.SelectField) field.Offset = parser.startOffset(&yyS[yypt]) parser.yyVAL.item = []*ast.SelectField{field} } - case 651: + case 652: { fl := yyS[yypt-2].item.([]*ast.SelectField) last := fl[len(fl)-1] @@ -14877,71 +14899,71 @@ yynewstate: newField.Offset = parser.startOffset(&yyS[yypt]) parser.yyVAL.item = append(fl, newField) } - case 652: + case 653: { parser.yyVAL.item = &ast.GroupByClause{Items: yyS[yypt-0].item.([]*ast.ByItem)} } - case 653: + case 654: { parser.yyVAL.item = nil } - case 654: + case 655: { parser.yyVAL.item = &ast.HavingClause{Expr: yyS[yypt-0].expr} } - case 655: + case 656: { parser.yyVAL.item = nil } - case 657: + case 658: { parser.yyVAL.item = &ast.AsOfClause{ TsExpr: yyS[yypt-0].expr.(ast.ExprNode), } } - case 658: + case 659: { parser.yyVAL.item = false } - case 659: + case 660: { parser.yyVAL.item = true } - case 660: + case 661: { parser.yyVAL.item = false } - case 661: + case 662: { parser.yyVAL.item = true } - case 662: + case 663: { parser.yyVAL.item = false } - case 663: + case 664: { parser.yyVAL.item = true } - case 664: + case 665: { parser.yyVAL.item = &ast.NullString{ String: "", Empty: false, } } - case 665: + case 666: { parser.yyVAL.item = &ast.NullString{ String: yyS[yypt-0].ident, Empty: len(yyS[yypt-0].ident) == 0, } } - case 666: + case 667: { parser.yyVAL.item = nil } - case 667: + case 668: { // Merge the options if yyS[yypt-1].item == nil { @@ -14965,19 +14987,19 @@ yynewstate: parser.yyVAL.item = opt1 } } - case 668: + case 669: { parser.yyVAL.item = &ast.IndexOption{ KeyBlockSize: yyS[yypt-0].item.(uint64), } } - case 669: + case 670: { parser.yyVAL.item = &ast.IndexOption{ Tp: yyS[yypt-0].item.(model.IndexType), } } - case 670: + case 671: { parser.yyVAL.item = &ast.IndexOption{ ParserName: model.NewCIStr(yyS[yypt-0].ident), @@ -14985,75 +15007,75 @@ yynewstate: yylex.AppendError(yylex.Errorf("The WITH PARASER clause is parsed but ignored by all storage engines.")) parser.lastErrorAsWarn() } - case 671: + case 672: { parser.yyVAL.item = &ast.IndexOption{ Comment: yyS[yypt-0].ident, } } - case 672: + case 673: { parser.yyVAL.item = &ast.IndexOption{ Visibility: yyS[yypt-0].item.(ast.IndexVisibility), } } - case 673: + case 674: { parser.yyVAL.item = &ast.IndexOption{ PrimaryKeyTp: yyS[yypt-0].item.(model.PrimaryKeyType), } } - case 674: + case 675: { parser.yyVAL.item = []interface{}{yyS[yypt-0].item, nil} } - case 675: + case 676: { parser.yyVAL.item = []interface{}{yyS[yypt-2].item, yyS[yypt-0].item} } - case 676: + case 677: { parser.yyVAL.item = []interface{}{&ast.NullString{String: yyS[yypt-2].ident, Empty: len(yyS[yypt-2].ident) == 0}, yyS[yypt-0].item} } - case 677: + case 678: { parser.yyVAL.item = nil } - case 679: + case 680: { parser.yyVAL.item = yyS[yypt-0].item } - case 680: + case 681: { parser.yyVAL.item = yyS[yypt-0].item } - case 681: + case 682: { parser.yyVAL.item = model.IndexTypeBtree } - case 682: + case 683: { parser.yyVAL.item = model.IndexTypeHash } - case 683: + case 684: { parser.yyVAL.item = model.IndexTypeRtree } - case 684: + case 685: { parser.yyVAL.item = ast.IndexVisibilityVisible } - case 685: + case 686: { parser.yyVAL.item = ast.IndexVisibilityInvisible } - case 1157: + case 1158: { parser.yyVAL.statement = &ast.CallStmt{ Procedure: yyS[yypt-0].expr.(*ast.FuncCallExpr), } } - case 1158: + case 1159: { parser.yyVAL.expr = &ast.FuncCallExpr{ Tp: ast.FuncCallExprTypeGeneric, @@ -15061,7 +15083,7 @@ yynewstate: Args: []ast.ExprNode{}, } } - case 1159: + case 1160: { parser.yyVAL.expr = &ast.FuncCallExpr{ Tp: ast.FuncCallExprTypeGeneric, @@ -15070,7 +15092,7 @@ yynewstate: Args: []ast.ExprNode{}, } } - case 1160: + case 1161: { parser.yyVAL.expr = &ast.FuncCallExpr{ Tp: ast.FuncCallExprTypeGeneric, @@ -15078,7 +15100,7 @@ yynewstate: Args: yyS[yypt-1].item.([]ast.ExprNode), } } - case 1161: + case 1162: { parser.yyVAL.expr = &ast.FuncCallExpr{ Tp: ast.FuncCallExprTypeGeneric, @@ -15087,7 +15109,7 @@ yynewstate: Args: yyS[yypt-1].item.([]ast.ExprNode), } } - case 1162: + case 1163: { x := yyS[yypt-1].item.(*ast.InsertStmt) x.Priority = yyS[yypt-6].item.(mysql.PriorityEnum) @@ -15104,17 +15126,13 @@ yynewstate: x.PartitionNames = yyS[yypt-2].item.([]model.CIStr) parser.yyVAL.statement = x } - case 1165: + case 1166: { parser.yyVAL.item = &ast.InsertStmt{ Columns: yyS[yypt-3].item.([]*ast.ColumnName), Lists: yyS[yypt-0].item.([][]ast.ExprNode), } } - case 1166: - { - parser.yyVAL.item = &ast.InsertStmt{Columns: yyS[yypt-2].item.([]*ast.ColumnName), Select: yyS[yypt-0].statement.(ast.ResultSetNode)} - } case 1167: { parser.yyVAL.item = &ast.InsertStmt{Columns: yyS[yypt-2].item.([]*ast.ColumnName), Select: yyS[yypt-0].statement.(ast.ResultSetNode)} @@ -15124,6 +15142,10 @@ yynewstate: parser.yyVAL.item = &ast.InsertStmt{Columns: yyS[yypt-2].item.([]*ast.ColumnName), Select: yyS[yypt-0].statement.(ast.ResultSetNode)} } case 1169: + { + parser.yyVAL.item = &ast.InsertStmt{Columns: yyS[yypt-2].item.([]*ast.ColumnName), Select: yyS[yypt-0].statement.(ast.ResultSetNode)} + } + case 1170: { var sel ast.ResultSetNode switch x := yyS[yypt-0].expr.(*ast.SubqueryExpr).Query.(type) { @@ -15136,13 +15158,9 @@ yynewstate: } parser.yyVAL.item = &ast.InsertStmt{Columns: yyS[yypt-2].item.([]*ast.ColumnName), Select: sel} } - case 1170: - { - parser.yyVAL.item = &ast.InsertStmt{Lists: yyS[yypt-0].item.([][]ast.ExprNode)} - } case 1171: { - parser.yyVAL.item = &ast.InsertStmt{Select: yyS[yypt-0].statement.(ast.ResultSetNode)} + parser.yyVAL.item = &ast.InsertStmt{Lists: yyS[yypt-0].item.([][]ast.ExprNode)} } case 1172: { @@ -15153,6 +15171,10 @@ yynewstate: parser.yyVAL.item = &ast.InsertStmt{Select: yyS[yypt-0].statement.(ast.ResultSetNode)} } case 1174: + { + parser.yyVAL.item = &ast.InsertStmt{Select: yyS[yypt-0].statement.(ast.ResultSetNode)} + } + case 1175: { var sel ast.ResultSetNode switch x := yyS[yypt-0].expr.(*ast.SubqueryExpr).Query.(type) { @@ -15165,66 +15187,66 @@ yynewstate: } parser.yyVAL.item = &ast.InsertStmt{Select: sel} } - case 1175: + case 1176: { parser.yyVAL.item = &ast.InsertStmt{Setlist: yyS[yypt-0].item.([]*ast.Assignment)} } - case 1178: + case 1179: { parser.yyVAL.item = [][]ast.ExprNode{yyS[yypt-0].item.([]ast.ExprNode)} } - case 1179: + case 1180: { parser.yyVAL.item = append(yyS[yypt-2].item.([][]ast.ExprNode), yyS[yypt-0].item.([]ast.ExprNode)) } - case 1180: + case 1181: { parser.yyVAL.item = yyS[yypt-1].item } - case 1181: + case 1182: { parser.yyVAL.item = []ast.ExprNode{} } - case 1183: + case 1184: { parser.yyVAL.item = append(yyS[yypt-2].item.([]ast.ExprNode), yyS[yypt-0].expr) } - case 1184: + case 1185: { parser.yyVAL.item = []ast.ExprNode{yyS[yypt-0].expr} } - case 1186: + case 1187: { parser.yyVAL.expr = &ast.DefaultExpr{} } - case 1187: + case 1188: { parser.yyVAL.item = &ast.Assignment{ Column: yyS[yypt-2].item.(*ast.ColumnName), Expr: yyS[yypt-0].expr, } } - case 1188: + case 1189: { parser.yyVAL.item = []*ast.Assignment{} } - case 1189: + case 1190: { parser.yyVAL.item = []*ast.Assignment{yyS[yypt-0].item.(*ast.Assignment)} } - case 1190: + case 1191: { parser.yyVAL.item = append(yyS[yypt-2].item.([]*ast.Assignment), yyS[yypt-0].item.(*ast.Assignment)) } - case 1191: + case 1192: { parser.yyVAL.item = nil } - case 1192: + case 1193: { parser.yyVAL.item = yyS[yypt-0].item } - case 1193: + case 1194: { x := yyS[yypt-0].item.(*ast.InsertStmt) x.IsReplace = true @@ -15234,31 +15256,31 @@ yynewstate: x.PartitionNames = yyS[yypt-1].item.([]model.CIStr) parser.yyVAL.statement = x } - case 1194: + case 1195: { parser.yyVAL.expr = ast.NewValueExpr(false, parser.charset, parser.collation) } - case 1195: + case 1196: { parser.yyVAL.expr = ast.NewValueExpr(nil, parser.charset, parser.collation) } - case 1196: + case 1197: { parser.yyVAL.expr = ast.NewValueExpr(true, parser.charset, parser.collation) } - case 1197: + case 1198: { parser.yyVAL.expr = ast.NewValueExpr(yyS[yypt-0].item, parser.charset, parser.collation) } - case 1198: + case 1199: { parser.yyVAL.expr = ast.NewValueExpr(yyS[yypt-0].item, parser.charset, parser.collation) } - case 1199: + case 1200: { parser.yyVAL.expr = ast.NewValueExpr(yyS[yypt-0].item, parser.charset, parser.collation) } - case 1201: + case 1202: { // See https://dev.mysql.com/doc/refman/5.7/en/charset-literal.html co, err := charset.GetDefaultCollationLegacy(yyS[yypt-1].ident) @@ -15275,15 +15297,15 @@ yynewstate: } parser.yyVAL.expr = expr } - case 1202: + case 1203: { parser.yyVAL.expr = ast.NewValueExpr(yyS[yypt-0].item, parser.charset, parser.collation) } - case 1203: + case 1204: { parser.yyVAL.expr = ast.NewValueExpr(yyS[yypt-0].item, parser.charset, parser.collation) } - case 1204: + case 1205: { co, err := charset.GetDefaultCollationLegacy(yyS[yypt-1].ident) if err != nil { @@ -15299,7 +15321,7 @@ yynewstate: } parser.yyVAL.expr = expr } - case 1205: + case 1206: { co, err := charset.GetDefaultCollationLegacy(yyS[yypt-1].ident) if err != nil { @@ -15315,12 +15337,12 @@ yynewstate: } parser.yyVAL.expr = expr } - case 1206: + case 1207: { expr := ast.NewValueExpr(yyS[yypt-0].ident, parser.charset, parser.collation) parser.yyVAL.expr = expr } - case 1207: + case 1208: { valExpr := yyS[yypt-1].expr.(ast.ValueExpr) strLit := valExpr.GetString() @@ -15333,31 +15355,31 @@ yynewstate: } parser.yyVAL.expr = expr } - case 1208: + case 1209: { parser.yyVAL.item = []*ast.AlterOrderItem{yyS[yypt-0].item.(*ast.AlterOrderItem)} } - case 1209: + case 1210: { parser.yyVAL.item = append(yyS[yypt-2].item.([]*ast.AlterOrderItem), yyS[yypt-0].item.(*ast.AlterOrderItem)) } - case 1210: + case 1211: { parser.yyVAL.item = &ast.AlterOrderItem{Column: yyS[yypt-1].item.(*ast.ColumnName), Desc: yyS[yypt-0].item.(bool)} } - case 1211: + case 1212: { parser.yyVAL.item = &ast.OrderByClause{Items: yyS[yypt-0].item.([]*ast.ByItem)} } - case 1212: + case 1213: { parser.yyVAL.item = []*ast.ByItem{yyS[yypt-0].item.(*ast.ByItem)} } - case 1213: + case 1214: { parser.yyVAL.item = append(yyS[yypt-2].item.([]*ast.ByItem), yyS[yypt-0].item.(*ast.ByItem)) } - case 1214: + case 1215: { expr := yyS[yypt-0].expr valueExpr, ok := expr.(ast.ValueExpr) @@ -15369,7 +15391,7 @@ yynewstate: } parser.yyVAL.item = &ast.ByItem{Expr: expr, NullOrder: true} } - case 1215: + case 1216: { expr := yyS[yypt-1].expr valueExpr, ok := expr.(ast.ValueExpr) @@ -15381,55 +15403,55 @@ yynewstate: } parser.yyVAL.item = &ast.ByItem{Expr: expr, Desc: yyS[yypt-0].item.(bool)} } - case 1216: + case 1217: { parser.yyVAL.item = false } - case 1217: + case 1218: { parser.yyVAL.item = true } - case 1218: + case 1219: { parser.yyVAL.item = false // ASC by default } - case 1219: + case 1220: { parser.yyVAL.item = false } - case 1220: + case 1221: { parser.yyVAL.item = true } - case 1221: + case 1222: { parser.yyVAL.item = nil } - case 1223: + case 1224: { parser.yyVAL.expr = &ast.BinaryOperationExpr{Op: opcode.Or, L: yyS[yypt-2].expr, R: yyS[yypt-0].expr} } - case 1224: + case 1225: { parser.yyVAL.expr = &ast.BinaryOperationExpr{Op: opcode.And, L: yyS[yypt-2].expr, R: yyS[yypt-0].expr} } - case 1225: + case 1226: { parser.yyVAL.expr = &ast.BinaryOperationExpr{Op: opcode.LeftShift, L: yyS[yypt-2].expr, R: yyS[yypt-0].expr} } - case 1226: + case 1227: { parser.yyVAL.expr = &ast.BinaryOperationExpr{Op: opcode.RightShift, L: yyS[yypt-2].expr, R: yyS[yypt-0].expr} } - case 1227: + case 1228: { parser.yyVAL.expr = &ast.BinaryOperationExpr{Op: opcode.Plus, L: yyS[yypt-2].expr, R: yyS[yypt-0].expr} } - case 1228: + case 1229: { parser.yyVAL.expr = &ast.BinaryOperationExpr{Op: opcode.Minus, L: yyS[yypt-2].expr, R: yyS[yypt-0].expr} } - case 1229: + case 1230: { parser.yyVAL.expr = &ast.FuncCallExpr{ FnName: model.NewCIStr("DATE_ADD"), @@ -15440,7 +15462,7 @@ yynewstate: }, } } - case 1230: + case 1231: { parser.yyVAL.expr = &ast.FuncCallExpr{ FnName: model.NewCIStr("DATE_SUB"), @@ -15451,7 +15473,7 @@ yynewstate: }, } } - case 1231: + case 1232: { parser.yyVAL.expr = &ast.FuncCallExpr{ FnName: model.NewCIStr("DATE_ADD"), @@ -15462,44 +15484,44 @@ yynewstate: }, } } - case 1232: + case 1233: { parser.yyVAL.expr = &ast.BinaryOperationExpr{Op: opcode.Mul, L: yyS[yypt-2].expr, R: yyS[yypt-0].expr} } - case 1233: + case 1234: { parser.yyVAL.expr = &ast.BinaryOperationExpr{Op: opcode.Div, L: yyS[yypt-2].expr, R: yyS[yypt-0].expr} } - case 1234: + case 1235: { parser.yyVAL.expr = &ast.BinaryOperationExpr{Op: opcode.Mod, L: yyS[yypt-2].expr, R: yyS[yypt-0].expr} } - case 1235: + case 1236: { parser.yyVAL.expr = &ast.BinaryOperationExpr{Op: opcode.IntDiv, L: yyS[yypt-2].expr, R: yyS[yypt-0].expr} } - case 1236: + case 1237: { parser.yyVAL.expr = &ast.BinaryOperationExpr{Op: opcode.Mod, L: yyS[yypt-2].expr, R: yyS[yypt-0].expr} } - case 1237: + case 1238: { parser.yyVAL.expr = &ast.BinaryOperationExpr{Op: opcode.Xor, L: yyS[yypt-2].expr, R: yyS[yypt-0].expr} } - case 1239: + case 1240: { parser.yyVAL.expr = &ast.ColumnNameExpr{Name: &ast.ColumnName{ Name: model.NewCIStr(yyS[yypt-0].ident), }} } - case 1240: + case 1241: { parser.yyVAL.expr = &ast.ColumnNameExpr{Name: &ast.ColumnName{ Table: model.NewCIStr(yyS[yypt-2].ident), Name: model.NewCIStr(yyS[yypt-0].ident), }} } - case 1241: + case 1242: { parser.yyVAL.expr = &ast.ColumnNameExpr{Name: &ast.ColumnName{ Schema: model.NewCIStr(yyS[yypt-4].ident), @@ -15507,39 +15529,39 @@ yynewstate: Name: model.NewCIStr(yyS[yypt-0].ident), }} } - case 1246: + case 1247: { parser.yyVAL.expr = &ast.SetCollationExpr{Expr: yyS[yypt-2].expr, Collate: yyS[yypt-0].ident} } - case 1249: + case 1250: { parser.yyVAL.expr = ast.NewParamMarkerExpr(yyS[yypt].offset) } - case 1252: + case 1253: { parser.yyVAL.expr = &ast.UnaryOperationExpr{Op: opcode.Not2, V: yyS[yypt-0].expr} } - case 1253: + case 1254: { parser.yyVAL.expr = &ast.UnaryOperationExpr{Op: opcode.BitNeg, V: yyS[yypt-0].expr} } - case 1254: + case 1255: { parser.yyVAL.expr = &ast.UnaryOperationExpr{Op: opcode.Minus, V: yyS[yypt-0].expr} } - case 1255: + case 1256: { parser.yyVAL.expr = &ast.UnaryOperationExpr{Op: opcode.Plus, V: yyS[yypt-0].expr} } - case 1256: + case 1257: { parser.yyVAL.expr = &ast.FuncCallExpr{FnName: model.NewCIStr(ast.Concat), Args: []ast.ExprNode{yyS[yypt-2].expr, yyS[yypt-0].expr}} } - case 1257: + case 1258: { parser.yyVAL.expr = &ast.UnaryOperationExpr{Op: opcode.Not2, V: yyS[yypt-0].expr} } - case 1259: + case 1260: { startOffset := parser.startOffset(&yyS[yypt-1]) endOffset := parser.endOffset(&yyS[yypt]) @@ -15547,23 +15569,23 @@ yynewstate: expr.SetText(parser.lexer.client, parser.src[startOffset:endOffset]) parser.yyVAL.expr = &ast.ParenthesesExpr{Expr: expr} } - case 1260: + case 1261: { values := append(yyS[yypt-3].item.([]ast.ExprNode), yyS[yypt-1].expr) parser.yyVAL.expr = &ast.RowExpr{Values: values} } - case 1261: + case 1262: { values := append(yyS[yypt-3].item.([]ast.ExprNode), yyS[yypt-1].expr) parser.yyVAL.expr = &ast.RowExpr{Values: values} } - case 1262: + case 1263: { sq := yyS[yypt-0].expr.(*ast.SubqueryExpr) sq.Exists = true parser.yyVAL.expr = &ast.ExistsSubqueryExpr{Sel: sq} } - case 1263: + case 1264: { /* * ODBC escape syntax. @@ -15587,7 +15609,7 @@ yynewstate: parser.yyVAL.expr = yyS[yypt-1].expr } } - case 1264: + case 1265: { // See https://dev.mysql.com/doc/refman/5.7/en/cast-functions.html#operator_binary tp := types.NewFieldType(mysql.TypeString) @@ -15600,7 +15622,7 @@ yynewstate: FunctionType: ast.CastBinaryOperator, } } - case 1265: + case 1266: { /* See https://dev.mysql.com/doc/refman/5.7/en/cast-functions.html#function_cast */ tp := yyS[yypt-1].item.(*types.FieldType) @@ -15620,7 +15642,7 @@ yynewstate: ExplicitCharSet: explicitCharset, } } - case 1266: + case 1267: { x := &ast.CaseExpr{WhenClauses: yyS[yypt-2].item.([]*ast.WhenClause)} if yyS[yypt-3].expr != nil { @@ -15631,7 +15653,7 @@ yynewstate: } parser.yyVAL.expr = x } - case 1267: + case 1268: { // See https://dev.mysql.com/doc/refman/5.7/en/cast-functions.html#function_convert tp := yyS[yypt-1].item.(*types.FieldType) @@ -15651,7 +15673,7 @@ yynewstate: ExplicitCharSet: explicitCharset, } } - case 1268: + case 1269: { // See https://dev.mysql.com/doc/refman/5.7/en/cast-functions.html#function_convert charset1 := ast.NewValueExpr(yyS[yypt-1].ident, "", "") @@ -15660,62 +15682,62 @@ yynewstate: Args: []ast.ExprNode{yyS[yypt-3].expr, charset1}, } } - case 1269: + case 1270: { parser.yyVAL.expr = &ast.DefaultExpr{Name: yyS[yypt-1].expr.(*ast.ColumnNameExpr).Name} } - case 1270: + case 1271: { parser.yyVAL.expr = &ast.ValuesExpr{Column: yyS[yypt-1].expr.(*ast.ColumnNameExpr)} } - case 1271: + case 1272: { expr := ast.NewValueExpr(yyS[yypt-0].ident, parser.charset, parser.collation) parser.yyVAL.expr = &ast.FuncCallExpr{FnName: model.NewCIStr(ast.JSONExtract), Args: []ast.ExprNode{yyS[yypt-2].expr, expr}} } - case 1272: + case 1273: { expr := ast.NewValueExpr(yyS[yypt-0].ident, parser.charset, parser.collation) extract := &ast.FuncCallExpr{FnName: model.NewCIStr(ast.JSONExtract), Args: []ast.ExprNode{yyS[yypt-2].expr, expr}} parser.yyVAL.expr = &ast.FuncCallExpr{FnName: model.NewCIStr(ast.JSONUnquote), Args: []ast.ExprNode{extract}} } - case 1275: + case 1276: { parser.yyVAL.item = false } - case 1276: + case 1277: { parser.yyVAL.item = true } - case 1277: + case 1278: { parser.yyVAL.item = false } - case 1279: + case 1280: { parser.yyVAL.item = true } - case 1282: + case 1283: { parser.yyVAL.item = true } - case 1324: + case 1325: { parser.yyVAL.expr = &ast.FuncCallExpr{FnName: model.NewCIStr(yyS[yypt-3].ident), Args: yyS[yypt-1].item.([]ast.ExprNode)} } - case 1325: + case 1326: { parser.yyVAL.expr = &ast.FuncCallExpr{FnName: model.NewCIStr(yyS[yypt-3].ident), Args: yyS[yypt-1].item.([]ast.ExprNode)} } - case 1326: + case 1327: { parser.yyVAL.expr = &ast.FuncCallExpr{FnName: model.NewCIStr(yyS[yypt-1].ident)} } - case 1327: + case 1328: { parser.yyVAL.expr = &ast.FuncCallExpr{FnName: model.NewCIStr(yyS[yypt-2].ident)} } - case 1328: + case 1329: { args := []ast.ExprNode{} if yyS[yypt-0].item != nil { @@ -15723,7 +15745,7 @@ yynewstate: } parser.yyVAL.expr = &ast.FuncCallExpr{FnName: model.NewCIStr(yyS[yypt-1].ident), Args: args} } - case 1329: + case 1330: { nilVal := ast.NewValueExpr(nil, parser.charset, parser.collation) args := yyS[yypt-1].item.([]ast.ExprNode) @@ -15732,7 +15754,7 @@ yynewstate: Args: append(args, nilVal), } } - case 1330: + case 1331: { charset1 := ast.NewValueExpr(yyS[yypt-1].ident, "", "") args := yyS[yypt-3].item.([]ast.ExprNode) @@ -15741,42 +15763,42 @@ yynewstate: Args: append(args, charset1), } } - case 1331: + case 1332: { expr := ast.NewValueExpr(yyS[yypt-0].ident, "", "") parser.yyVAL.expr = &ast.FuncCallExpr{FnName: model.NewCIStr(ast.DateLiteral), Args: []ast.ExprNode{expr}} } - case 1332: + case 1333: { expr := ast.NewValueExpr(yyS[yypt-0].ident, "", "") parser.yyVAL.expr = &ast.FuncCallExpr{FnName: model.NewCIStr(ast.TimeLiteral), Args: []ast.ExprNode{expr}} } - case 1333: + case 1334: { expr := ast.NewValueExpr(yyS[yypt-0].ident, "", "") parser.yyVAL.expr = &ast.FuncCallExpr{FnName: model.NewCIStr(ast.TimestampLiteral), Args: []ast.ExprNode{expr}} } - case 1334: + case 1335: { parser.yyVAL.expr = &ast.FuncCallExpr{FnName: model.NewCIStr(ast.InsertFunc), Args: yyS[yypt-1].item.([]ast.ExprNode)} } - case 1335: + case 1336: { parser.yyVAL.expr = &ast.BinaryOperationExpr{Op: opcode.Mod, L: yyS[yypt-3].expr, R: yyS[yypt-1].expr} } - case 1336: + case 1337: { parser.yyVAL.expr = &ast.FuncCallExpr{FnName: model.NewCIStr(ast.PasswordFunc), Args: yyS[yypt-1].item.([]ast.ExprNode)} } - case 1337: + case 1338: { parser.yyVAL.expr = &ast.FuncCallExpr{FnName: model.NewCIStr(yyS[yypt-3].ident), Args: yyS[yypt-1].item.([]ast.ExprNode)} } - case 1338: + case 1339: { parser.yyVAL.expr = &ast.FuncCallExpr{FnName: model.NewCIStr(yyS[yypt-3].ident), Args: yyS[yypt-1].item.([]ast.ExprNode)} } - case 1339: + case 1340: { parser.yyVAL.expr = &ast.FuncCallExpr{ FnName: model.NewCIStr(yyS[yypt-5].ident), @@ -15787,7 +15809,7 @@ yynewstate: }, } } - case 1340: + case 1341: { parser.yyVAL.expr = &ast.FuncCallExpr{ FnName: model.NewCIStr(yyS[yypt-7].ident), @@ -15798,7 +15820,7 @@ yynewstate: }, } } - case 1341: + case 1342: { parser.yyVAL.expr = &ast.FuncCallExpr{ FnName: model.NewCIStr(yyS[yypt-7].ident), @@ -15809,7 +15831,7 @@ yynewstate: }, } } - case 1342: + case 1343: { timeUnit := &ast.TimeUnitExpr{Unit: yyS[yypt-3].item.(ast.TimeUnitType)} parser.yyVAL.expr = &ast.FuncCallExpr{ @@ -15817,7 +15839,7 @@ yynewstate: Args: []ast.ExprNode{timeUnit, yyS[yypt-1].expr}, } } - case 1343: + case 1344: { parser.yyVAL.expr = &ast.FuncCallExpr{ FnName: model.NewCIStr(yyS[yypt-5].ident), @@ -15827,67 +15849,67 @@ yynewstate: }, } } - case 1344: + case 1345: { parser.yyVAL.expr = &ast.FuncCallExpr{FnName: model.NewCIStr(yyS[yypt-5].ident), Args: []ast.ExprNode{yyS[yypt-3].expr, yyS[yypt-1].expr}} } - case 1345: + case 1346: { parser.yyVAL.expr = &ast.FuncCallExpr{ FnName: model.NewCIStr(yyS[yypt-5].ident), Args: []ast.ExprNode{yyS[yypt-3].expr, yyS[yypt-1].expr}, } } - case 1346: + case 1347: { parser.yyVAL.expr = &ast.FuncCallExpr{ FnName: model.NewCIStr(yyS[yypt-5].ident), Args: []ast.ExprNode{yyS[yypt-3].expr, yyS[yypt-1].expr}, } } - case 1347: + case 1348: { parser.yyVAL.expr = &ast.FuncCallExpr{ FnName: model.NewCIStr(yyS[yypt-7].ident), Args: []ast.ExprNode{yyS[yypt-5].expr, yyS[yypt-3].expr, yyS[yypt-1].expr}, } } - case 1348: + case 1349: { parser.yyVAL.expr = &ast.FuncCallExpr{ FnName: model.NewCIStr(yyS[yypt-7].ident), Args: []ast.ExprNode{yyS[yypt-5].expr, yyS[yypt-3].expr, yyS[yypt-1].expr}, } } - case 1349: + case 1350: { parser.yyVAL.expr = &ast.FuncCallExpr{ FnName: model.NewCIStr(yyS[yypt-7].ident), Args: []ast.ExprNode{&ast.TimeUnitExpr{Unit: yyS[yypt-5].item.(ast.TimeUnitType)}, yyS[yypt-3].expr, yyS[yypt-1].expr}, } } - case 1350: + case 1351: { parser.yyVAL.expr = &ast.FuncCallExpr{ FnName: model.NewCIStr(yyS[yypt-7].ident), Args: []ast.ExprNode{&ast.TimeUnitExpr{Unit: yyS[yypt-5].item.(ast.TimeUnitType)}, yyS[yypt-3].expr, yyS[yypt-1].expr}, } } - case 1351: + case 1352: { parser.yyVAL.expr = &ast.FuncCallExpr{ FnName: model.NewCIStr(yyS[yypt-3].ident), Args: []ast.ExprNode{yyS[yypt-1].expr}, } } - case 1352: + case 1353: { parser.yyVAL.expr = &ast.FuncCallExpr{ FnName: model.NewCIStr(yyS[yypt-5].ident), Args: []ast.ExprNode{yyS[yypt-1].expr, yyS[yypt-3].expr}, } } - case 1353: + case 1354: { spaceVal := ast.NewValueExpr(" ", parser.charset, parser.collation) direction := &ast.TrimDirectionExpr{Direction: yyS[yypt-3].item.(ast.TrimDirectionType)} @@ -15896,7 +15918,7 @@ yynewstate: Args: []ast.ExprNode{yyS[yypt-1].expr, spaceVal, direction}, } } - case 1354: + case 1355: { direction := &ast.TrimDirectionExpr{Direction: yyS[yypt-4].item.(ast.TrimDirectionType)} parser.yyVAL.expr = &ast.FuncCallExpr{ @@ -15904,63 +15926,63 @@ yynewstate: Args: []ast.ExprNode{yyS[yypt-1].expr, yyS[yypt-3].expr, direction}, } } - case 1355: + case 1356: { parser.yyVAL.expr = &ast.FuncCallExpr{ FnName: model.NewCIStr(yyS[yypt-3].ident), Args: []ast.ExprNode{yyS[yypt-1].expr}, } } - case 1356: + case 1357: { parser.yyVAL.expr = &ast.FuncCallExpr{ FnName: model.NewCIStr(yyS[yypt-6].ident), Args: []ast.ExprNode{yyS[yypt-4].expr, ast.NewValueExpr("CHAR", parser.charset, parser.collation), ast.NewValueExpr(yyS[yypt-1].item, parser.charset, parser.collation)}, } } - case 1357: + case 1358: { parser.yyVAL.expr = &ast.FuncCallExpr{ FnName: model.NewCIStr(yyS[yypt-6].ident), Args: []ast.ExprNode{yyS[yypt-4].expr, ast.NewValueExpr("BINARY", parser.charset, parser.collation), ast.NewValueExpr(yyS[yypt-1].item, parser.charset, parser.collation)}, } } - case 1359: + case 1360: { parser.yyVAL.expr = &ast.FuncCallExpr{ FnName: model.NewCIStr(yyS[yypt-7].ident), Args: []ast.ExprNode{yyS[yypt-5].expr, yyS[yypt-3].expr, yyS[yypt-1].expr}, } } - case 1360: + case 1361: { parser.yyVAL.item = ast.GetFormatSelectorDate } - case 1361: + case 1362: { parser.yyVAL.item = ast.GetFormatSelectorDatetime } - case 1362: + case 1363: { parser.yyVAL.item = ast.GetFormatSelectorTime } - case 1363: + case 1364: { parser.yyVAL.item = ast.GetFormatSelectorDatetime } - case 1368: + case 1369: { parser.yyVAL.item = ast.TrimBoth } - case 1369: + case 1370: { parser.yyVAL.item = ast.TrimLeading } - case 1370: + case 1371: { parser.yyVAL.item = ast.TrimTrailing } - case 1371: + case 1372: { objNameExpr := &ast.TableNameExpr{ Name: yyS[yypt-1].item.(*ast.TableName), @@ -15970,7 +15992,7 @@ yynewstate: Args: []ast.ExprNode{objNameExpr}, } } - case 1372: + case 1373: { objNameExpr := &ast.TableNameExpr{ Name: yyS[yypt-3].item.(*ast.TableName), @@ -15981,7 +16003,7 @@ yynewstate: Args: []ast.ExprNode{objNameExpr, valueExpr}, } } - case 1374: + case 1375: { if yyS[yypt-0].item != nil { parser.yyVAL.expr = &ast.WindowFuncExpr{F: yyS[yypt-5].ident, Args: []ast.ExprNode{yyS[yypt-2].expr}, Distinct: yyS[yypt-3].item.(bool), Spec: *(yyS[yypt-0].item.(*ast.WindowSpec))} @@ -15989,15 +16011,15 @@ yynewstate: parser.yyVAL.expr = &ast.AggregateFuncExpr{F: yyS[yypt-5].ident, Args: []ast.ExprNode{yyS[yypt-2].expr}, Distinct: yyS[yypt-3].item.(bool)} } } - case 1375: + case 1376: { parser.yyVAL.expr = &ast.AggregateFuncExpr{F: yyS[yypt-3].ident, Args: yyS[yypt-1].item.([]ast.ExprNode), Distinct: false} } - case 1376: + case 1377: { parser.yyVAL.expr = &ast.AggregateFuncExpr{F: yyS[yypt-3].ident, Args: yyS[yypt-1].item.([]ast.ExprNode)} } - case 1377: + case 1378: { if yyS[yypt-0].item != nil { parser.yyVAL.expr = &ast.WindowFuncExpr{F: yyS[yypt-4].ident, Args: []ast.ExprNode{yyS[yypt-2].expr}, Spec: *(yyS[yypt-0].item.(*ast.WindowSpec))} @@ -16005,7 +16027,7 @@ yynewstate: parser.yyVAL.expr = &ast.AggregateFuncExpr{F: yyS[yypt-4].ident, Args: []ast.ExprNode{yyS[yypt-2].expr}} } } - case 1378: + case 1379: { if yyS[yypt-0].item != nil { parser.yyVAL.expr = &ast.WindowFuncExpr{F: yyS[yypt-5].ident, Args: []ast.ExprNode{yyS[yypt-2].expr}, Spec: *(yyS[yypt-0].item.(*ast.WindowSpec))} @@ -16013,7 +16035,7 @@ yynewstate: parser.yyVAL.expr = &ast.AggregateFuncExpr{F: yyS[yypt-5].ident, Args: []ast.ExprNode{yyS[yypt-2].expr}} } } - case 1379: + case 1380: { if yyS[yypt-0].item != nil { parser.yyVAL.expr = &ast.WindowFuncExpr{F: yyS[yypt-4].ident, Args: []ast.ExprNode{yyS[yypt-2].expr}, Spec: *(yyS[yypt-0].item.(*ast.WindowSpec))} @@ -16021,7 +16043,7 @@ yynewstate: parser.yyVAL.expr = &ast.AggregateFuncExpr{F: yyS[yypt-4].ident, Args: []ast.ExprNode{yyS[yypt-2].expr}} } } - case 1380: + case 1381: { if yyS[yypt-0].item != nil { parser.yyVAL.expr = &ast.WindowFuncExpr{F: yyS[yypt-5].ident, Args: []ast.ExprNode{yyS[yypt-2].expr}, Spec: *(yyS[yypt-0].item.(*ast.WindowSpec))} @@ -16029,7 +16051,7 @@ yynewstate: parser.yyVAL.expr = &ast.AggregateFuncExpr{F: yyS[yypt-5].ident, Args: []ast.ExprNode{yyS[yypt-2].expr}} } } - case 1381: + case 1382: { if yyS[yypt-0].item != nil { parser.yyVAL.expr = &ast.WindowFuncExpr{F: yyS[yypt-4].ident, Args: []ast.ExprNode{yyS[yypt-2].expr}, Spec: *(yyS[yypt-0].item.(*ast.WindowSpec))} @@ -16037,7 +16059,7 @@ yynewstate: parser.yyVAL.expr = &ast.AggregateFuncExpr{F: yyS[yypt-4].ident, Args: []ast.ExprNode{yyS[yypt-2].expr}} } } - case 1382: + case 1383: { if yyS[yypt-0].item != nil { parser.yyVAL.expr = &ast.WindowFuncExpr{F: yyS[yypt-5].ident, Args: []ast.ExprNode{yyS[yypt-2].expr}, Spec: *(yyS[yypt-0].item.(*ast.WindowSpec))} @@ -16045,11 +16067,11 @@ yynewstate: parser.yyVAL.expr = &ast.AggregateFuncExpr{F: yyS[yypt-5].ident, Args: []ast.ExprNode{yyS[yypt-2].expr}} } } - case 1383: + case 1384: { parser.yyVAL.expr = &ast.AggregateFuncExpr{F: yyS[yypt-4].ident, Args: yyS[yypt-1].item.([]ast.ExprNode), Distinct: true} } - case 1384: + case 1385: { if yyS[yypt-0].item != nil { parser.yyVAL.expr = &ast.WindowFuncExpr{F: yyS[yypt-5].ident, Args: []ast.ExprNode{yyS[yypt-2].expr}, Spec: *(yyS[yypt-0].item.(*ast.WindowSpec))} @@ -16057,7 +16079,7 @@ yynewstate: parser.yyVAL.expr = &ast.AggregateFuncExpr{F: yyS[yypt-5].ident, Args: []ast.ExprNode{yyS[yypt-2].expr}} } } - case 1385: + case 1386: { if yyS[yypt-0].item != nil { parser.yyVAL.expr = &ast.WindowFuncExpr{F: yyS[yypt-4].ident, Args: []ast.ExprNode{yyS[yypt-2].expr}, Spec: *(yyS[yypt-0].item.(*ast.WindowSpec))} @@ -16065,7 +16087,7 @@ yynewstate: parser.yyVAL.expr = &ast.AggregateFuncExpr{F: yyS[yypt-4].ident, Args: []ast.ExprNode{yyS[yypt-2].expr}} } } - case 1386: + case 1387: { args := []ast.ExprNode{ast.NewValueExpr(1, parser.charset, parser.collation)} if yyS[yypt-0].item != nil { @@ -16074,7 +16096,7 @@ yynewstate: parser.yyVAL.expr = &ast.AggregateFuncExpr{F: yyS[yypt-4].ident, Args: args} } } - case 1387: + case 1388: { args := yyS[yypt-4].item.([]ast.ExprNode) args = append(args, yyS[yypt-2].item.(ast.ExprNode)) @@ -16088,7 +16110,7 @@ yynewstate: parser.yyVAL.expr = agg } } - case 1388: + case 1389: { if yyS[yypt-0].item != nil { parser.yyVAL.expr = &ast.WindowFuncExpr{F: yyS[yypt-5].ident, Args: []ast.ExprNode{yyS[yypt-2].expr}, Distinct: yyS[yypt-3].item.(bool), Spec: *(yyS[yypt-0].item.(*ast.WindowSpec))} @@ -16096,7 +16118,7 @@ yynewstate: parser.yyVAL.expr = &ast.AggregateFuncExpr{F: yyS[yypt-5].ident, Args: []ast.ExprNode{yyS[yypt-2].expr}, Distinct: yyS[yypt-3].item.(bool)} } } - case 1389: + case 1390: { if yyS[yypt-0].item != nil { parser.yyVAL.expr = &ast.WindowFuncExpr{F: yyS[yypt-5].ident, Args: []ast.ExprNode{yyS[yypt-2].expr}, Distinct: yyS[yypt-3].item.(bool), Spec: *(yyS[yypt-0].item.(*ast.WindowSpec))} @@ -16104,7 +16126,7 @@ yynewstate: parser.yyVAL.expr = &ast.AggregateFuncExpr{F: yyS[yypt-5].ident, Args: []ast.ExprNode{yyS[yypt-2].expr}, Distinct: yyS[yypt-3].item.(bool)} } } - case 1390: + case 1391: { if yyS[yypt-0].item != nil { parser.yyVAL.expr = &ast.WindowFuncExpr{F: yyS[yypt-5].ident, Args: []ast.ExprNode{yyS[yypt-2].expr}, Distinct: yyS[yypt-3].item.(bool), Spec: *(yyS[yypt-0].item.(*ast.WindowSpec))} @@ -16112,7 +16134,7 @@ yynewstate: parser.yyVAL.expr = &ast.AggregateFuncExpr{F: yyS[yypt-5].ident, Args: []ast.ExprNode{yyS[yypt-2].expr}, Distinct: yyS[yypt-3].item.(bool)} } } - case 1391: + case 1392: { if yyS[yypt-0].item != nil { parser.yyVAL.expr = &ast.WindowFuncExpr{F: ast.AggFuncStddevPop, Args: []ast.ExprNode{yyS[yypt-2].expr}, Distinct: yyS[yypt-3].item.(bool), Spec: *(yyS[yypt-0].item.(*ast.WindowSpec))} @@ -16120,7 +16142,7 @@ yynewstate: parser.yyVAL.expr = &ast.AggregateFuncExpr{F: ast.AggFuncStddevPop, Args: []ast.ExprNode{yyS[yypt-2].expr}, Distinct: yyS[yypt-3].item.(bool)} } } - case 1392: + case 1393: { if yyS[yypt-0].item != nil { parser.yyVAL.expr = &ast.WindowFuncExpr{F: yyS[yypt-5].ident, Args: []ast.ExprNode{yyS[yypt-2].expr}, Distinct: yyS[yypt-3].item.(bool), Spec: *(yyS[yypt-0].item.(*ast.WindowSpec))} @@ -16128,7 +16150,7 @@ yynewstate: parser.yyVAL.expr = &ast.AggregateFuncExpr{F: yyS[yypt-5].ident, Args: []ast.ExprNode{yyS[yypt-2].expr}, Distinct: yyS[yypt-3].item.(bool)} } } - case 1393: + case 1394: { if yyS[yypt-0].item != nil { parser.yyVAL.expr = &ast.WindowFuncExpr{F: ast.AggFuncVarPop, Args: []ast.ExprNode{yyS[yypt-2].expr}, Distinct: yyS[yypt-3].item.(bool), Spec: *(yyS[yypt-0].item.(*ast.WindowSpec))} @@ -16136,11 +16158,11 @@ yynewstate: parser.yyVAL.expr = &ast.AggregateFuncExpr{F: ast.AggFuncVarPop, Args: []ast.ExprNode{yyS[yypt-2].expr}, Distinct: yyS[yypt-3].item.(bool)} } } - case 1394: + case 1395: { parser.yyVAL.expr = &ast.AggregateFuncExpr{F: yyS[yypt-5].ident, Args: []ast.ExprNode{yyS[yypt-2].expr}, Distinct: yyS[yypt-3].item.(bool)} } - case 1395: + case 1396: { if yyS[yypt-0].item != nil { parser.yyVAL.expr = &ast.WindowFuncExpr{F: yyS[yypt-4].ident, Args: []ast.ExprNode{yyS[yypt-2].expr}, Spec: *(yyS[yypt-0].item.(*ast.WindowSpec))} @@ -16148,7 +16170,7 @@ yynewstate: parser.yyVAL.expr = &ast.AggregateFuncExpr{F: yyS[yypt-4].ident, Args: []ast.ExprNode{yyS[yypt-2].expr}} } } - case 1396: + case 1397: { if yyS[yypt-0].item != nil { parser.yyVAL.expr = &ast.WindowFuncExpr{F: yyS[yypt-5].ident, Args: []ast.ExprNode{yyS[yypt-2].expr}, Spec: *(yyS[yypt-0].item.(*ast.WindowSpec))} @@ -16156,7 +16178,7 @@ yynewstate: parser.yyVAL.expr = &ast.AggregateFuncExpr{F: yyS[yypt-5].ident, Args: []ast.ExprNode{yyS[yypt-2].expr}} } } - case 1397: + case 1398: { if yyS[yypt-0].item != nil { parser.yyVAL.expr = &ast.WindowFuncExpr{F: yyS[yypt-6].ident, Args: []ast.ExprNode{yyS[yypt-4].expr, yyS[yypt-2].expr}, Spec: *(yyS[yypt-0].item.(*ast.WindowSpec))} @@ -16164,7 +16186,7 @@ yynewstate: parser.yyVAL.expr = &ast.AggregateFuncExpr{F: yyS[yypt-6].ident, Args: []ast.ExprNode{yyS[yypt-4].expr, yyS[yypt-2].expr}} } } - case 1398: + case 1399: { if yyS[yypt-0].item != nil { parser.yyVAL.expr = &ast.WindowFuncExpr{F: yyS[yypt-7].ident, Args: []ast.ExprNode{yyS[yypt-4].expr, yyS[yypt-2].expr}, Spec: *(yyS[yypt-0].item.(*ast.WindowSpec))} @@ -16172,7 +16194,7 @@ yynewstate: parser.yyVAL.expr = &ast.AggregateFuncExpr{F: yyS[yypt-7].ident, Args: []ast.ExprNode{yyS[yypt-4].expr, yyS[yypt-2].expr}} } } - case 1399: + case 1400: { if yyS[yypt-0].item != nil { parser.yyVAL.expr = &ast.WindowFuncExpr{F: yyS[yypt-7].ident, Args: []ast.ExprNode{yyS[yypt-5].expr, yyS[yypt-2].expr}, Spec: *(yyS[yypt-0].item.(*ast.WindowSpec))} @@ -16180,7 +16202,7 @@ yynewstate: parser.yyVAL.expr = &ast.AggregateFuncExpr{F: yyS[yypt-7].ident, Args: []ast.ExprNode{yyS[yypt-5].expr, yyS[yypt-2].expr}} } } - case 1400: + case 1401: { if yyS[yypt-0].item != nil { parser.yyVAL.expr = &ast.WindowFuncExpr{F: yyS[yypt-8].ident, Args: []ast.ExprNode{yyS[yypt-5].expr, yyS[yypt-2].expr}, Spec: *(yyS[yypt-0].item.(*ast.WindowSpec))} @@ -16188,22 +16210,22 @@ yynewstate: parser.yyVAL.expr = &ast.AggregateFuncExpr{F: yyS[yypt-8].ident, Args: []ast.ExprNode{yyS[yypt-5].expr, yyS[yypt-2].expr}} } } - case 1401: + case 1402: { parser.yyVAL.item = ast.NewValueExpr(",", "", "") } - case 1402: + case 1403: { parser.yyVAL.item = ast.NewValueExpr(yyS[yypt-0].ident, "", "") } - case 1403: + case 1404: { parser.yyVAL.expr = &ast.FuncCallExpr{ FnName: model.NewCIStr(yyS[yypt-3].ident), Args: yyS[yypt-1].item.([]ast.ExprNode), } } - case 1404: + case 1405: { var tp ast.FuncCallExprType if isInTokenMap(yyS[yypt-3].ident) { @@ -16218,159 +16240,159 @@ yynewstate: Args: yyS[yypt-1].item.([]ast.ExprNode), } } - case 1405: + case 1406: { parser.yyVAL.item = nil } - case 1406: + case 1407: { parser.yyVAL.item = nil } - case 1407: + case 1408: { expr := ast.NewValueExpr(yyS[yypt-1].item, parser.charset, parser.collation) parser.yyVAL.item = expr } - case 1409: + case 1410: { parser.yyVAL.item = ast.TimeUnitSecondMicrosecond } - case 1410: + case 1411: { parser.yyVAL.item = ast.TimeUnitMinuteMicrosecond } - case 1411: + case 1412: { parser.yyVAL.item = ast.TimeUnitMinuteSecond } - case 1412: + case 1413: { parser.yyVAL.item = ast.TimeUnitHourMicrosecond } - case 1413: + case 1414: { parser.yyVAL.item = ast.TimeUnitHourSecond } - case 1414: + case 1415: { parser.yyVAL.item = ast.TimeUnitHourMinute } - case 1415: + case 1416: { parser.yyVAL.item = ast.TimeUnitDayMicrosecond } - case 1416: + case 1417: { parser.yyVAL.item = ast.TimeUnitDaySecond } - case 1417: + case 1418: { parser.yyVAL.item = ast.TimeUnitDayMinute } - case 1418: + case 1419: { parser.yyVAL.item = ast.TimeUnitDayHour } - case 1419: + case 1420: { parser.yyVAL.item = ast.TimeUnitYearMonth } - case 1420: + case 1421: { parser.yyVAL.item = ast.TimeUnitMicrosecond } - case 1421: + case 1422: { parser.yyVAL.item = ast.TimeUnitSecond } - case 1422: + case 1423: { parser.yyVAL.item = ast.TimeUnitMinute } - case 1423: + case 1424: { parser.yyVAL.item = ast.TimeUnitHour } - case 1424: + case 1425: { parser.yyVAL.item = ast.TimeUnitDay } - case 1425: + case 1426: { parser.yyVAL.item = ast.TimeUnitWeek } - case 1426: + case 1427: { parser.yyVAL.item = ast.TimeUnitMonth } - case 1427: + case 1428: { parser.yyVAL.item = ast.TimeUnitQuarter } - case 1428: + case 1429: { parser.yyVAL.item = ast.TimeUnitYear } - case 1429: + case 1430: { parser.yyVAL.item = ast.TimeUnitSecond } - case 1430: + case 1431: { parser.yyVAL.item = ast.TimeUnitMinute } - case 1431: + case 1432: { parser.yyVAL.item = ast.TimeUnitHour } - case 1432: + case 1433: { parser.yyVAL.item = ast.TimeUnitDay } - case 1433: + case 1434: { parser.yyVAL.item = ast.TimeUnitWeek } - case 1434: + case 1435: { parser.yyVAL.item = ast.TimeUnitMonth } - case 1435: + case 1436: { parser.yyVAL.item = ast.TimeUnitQuarter } - case 1436: + case 1437: { parser.yyVAL.item = ast.TimeUnitYear } - case 1437: + case 1438: { parser.yyVAL.expr = nil } - case 1439: + case 1440: { parser.yyVAL.item = []*ast.WhenClause{yyS[yypt-0].item.(*ast.WhenClause)} } - case 1440: + case 1441: { parser.yyVAL.item = append(yyS[yypt-1].item.([]*ast.WhenClause), yyS[yypt-0].item.(*ast.WhenClause)) } - case 1441: + case 1442: { parser.yyVAL.item = &ast.WhenClause{ Expr: yyS[yypt-2].expr, Result: yyS[yypt-0].expr, } } - case 1442: + case 1443: { parser.yyVAL.item = nil } - case 1443: + case 1444: { parser.yyVAL.item = yyS[yypt-0].expr } - case 1444: + case 1445: { tp := types.NewFieldType(mysql.TypeVarString) tp.SetFlen(yyS[yypt-0].item.(int)) // TODO: Flen should be the flen of expression @@ -16382,7 +16404,7 @@ yynewstate: tp.AddFlag(mysql.BinaryFlag) parser.yyVAL.item = tp } - case 1445: + case 1446: { tp := types.NewFieldType(mysql.TypeVarString) tp.SetFlen(yyS[yypt-1].item.(int)) // TODO: Flen should be the flen of expression @@ -16405,7 +16427,7 @@ yynewstate: } parser.yyVAL.item = tp } - case 1446: + case 1447: { tp := types.NewFieldType(mysql.TypeDate) tp.SetCharset(charset.CharsetBin) @@ -16413,7 +16435,7 @@ yynewstate: tp.AddFlag(mysql.BinaryFlag) parser.yyVAL.item = tp } - case 1447: + case 1448: { tp := types.NewFieldType(mysql.TypeYear) tp.SetCharset(charset.CharsetBin) @@ -16421,7 +16443,7 @@ yynewstate: tp.AddFlag(mysql.BinaryFlag) parser.yyVAL.item = tp } - case 1448: + case 1449: { tp := types.NewFieldType(mysql.TypeDatetime) flen, _ := mysql.GetDefaultFieldLengthAndDecimalForCast(mysql.TypeDatetime) @@ -16435,7 +16457,7 @@ yynewstate: tp.AddFlag(mysql.BinaryFlag) parser.yyVAL.item = tp } - case 1449: + case 1450: { fopt := yyS[yypt-0].item.(*ast.FloatOpt) tp := types.NewFieldType(mysql.TypeNewDecimal) @@ -16446,7 +16468,7 @@ yynewstate: tp.AddFlag(mysql.BinaryFlag) parser.yyVAL.item = tp } - case 1450: + case 1451: { tp := types.NewFieldType(mysql.TypeDuration) flen, _ := mysql.GetDefaultFieldLengthAndDecimalForCast(mysql.TypeDuration) @@ -16460,7 +16482,7 @@ yynewstate: tp.AddFlag(mysql.BinaryFlag) parser.yyVAL.item = tp } - case 1451: + case 1452: { tp := types.NewFieldType(mysql.TypeLonglong) tp.SetCharset(charset.CharsetBin) @@ -16468,7 +16490,7 @@ yynewstate: tp.AddFlag(mysql.BinaryFlag) parser.yyVAL.item = tp } - case 1452: + case 1453: { tp := types.NewFieldType(mysql.TypeLonglong) tp.AddFlag(mysql.UnsignedFlag | mysql.BinaryFlag) @@ -16476,7 +16498,7 @@ yynewstate: tp.SetCollate(charset.CollationBin) parser.yyVAL.item = tp } - case 1453: + case 1454: { tp := types.NewFieldType(mysql.TypeJSON) tp.AddFlag(mysql.BinaryFlag | mysql.ParseToJSONFlag) @@ -16484,7 +16506,7 @@ yynewstate: tp.SetCollate(mysql.DefaultCollationName) parser.yyVAL.item = tp } - case 1454: + case 1455: { tp := types.NewFieldType(mysql.TypeDouble) flen, decimal := mysql.GetDefaultFieldLengthAndDecimalForCast(mysql.TypeDouble) @@ -16495,7 +16517,7 @@ yynewstate: tp.SetCollate(charset.CollationBin) parser.yyVAL.item = tp } - case 1455: + case 1456: { tp := types.NewFieldType(mysql.TypeFloat) fopt := yyS[yypt-0].item.(*ast.FloatOpt) @@ -16512,7 +16534,7 @@ yynewstate: tp.SetCollate(charset.CollationBin) parser.yyVAL.item = tp } - case 1456: + case 1457: { var tp *types.FieldType if parser.lexer.GetSQLMode().HasRealAsFloatMode() { @@ -16528,65 +16550,65 @@ yynewstate: tp.SetCollate(charset.CollationBin) parser.yyVAL.item = tp } - case 1457: + case 1458: { parser.yyVAL.item = mysql.LowPriority } - case 1458: + case 1459: { parser.yyVAL.item = mysql.HighPriority } - case 1459: + case 1460: { parser.yyVAL.item = mysql.DelayedPriority } - case 1460: + case 1461: { parser.yyVAL.item = mysql.NoPriority } - case 1462: + case 1463: { parser.yyVAL.item = &ast.TableName{Name: model.NewCIStr(yyS[yypt-0].ident)} } - case 1463: + case 1464: { parser.yyVAL.item = &ast.TableName{Schema: model.NewCIStr(yyS[yypt-2].ident), Name: model.NewCIStr(yyS[yypt-0].ident)} } - case 1464: + case 1465: { tbl := []*ast.TableName{yyS[yypt-0].item.(*ast.TableName)} parser.yyVAL.item = tbl } - case 1465: + case 1466: { parser.yyVAL.item = append(yyS[yypt-2].item.([]*ast.TableName), yyS[yypt-0].item.(*ast.TableName)) } - case 1466: + case 1467: { parser.yyVAL.item = &ast.TableName{Name: model.NewCIStr(yyS[yypt-1].ident)} } - case 1467: + case 1468: { parser.yyVAL.item = &ast.TableName{Schema: model.NewCIStr(yyS[yypt-3].ident), Name: model.NewCIStr(yyS[yypt-1].ident)} } - case 1468: + case 1469: { tbl := []*ast.TableName{yyS[yypt-0].item.(*ast.TableName)} parser.yyVAL.item = tbl } - case 1469: + case 1470: { parser.yyVAL.item = append(yyS[yypt-2].item.([]*ast.TableName), yyS[yypt-0].item.(*ast.TableName)) } - case 1472: + case 1473: { parser.yyVAL.item = false } - case 1473: + case 1474: { parser.yyVAL.item = true } - case 1474: + case 1475: { var sqlText string var sqlVar *ast.VariableExpr @@ -16602,94 +16624,94 @@ yynewstate: SQLVar: sqlVar, } } - case 1475: + case 1476: { parser.yyVAL.item = yyS[yypt-0].ident } - case 1476: + case 1477: { parser.yyVAL.item = yyS[yypt-0].expr } - case 1477: + case 1478: { parser.yyVAL.statement = &ast.ExecuteStmt{Name: yyS[yypt-0].ident} } - case 1478: + case 1479: { parser.yyVAL.statement = &ast.ExecuteStmt{ Name: yyS[yypt-2].ident, UsingVars: yyS[yypt-0].item.([]ast.ExprNode), } } - case 1479: + case 1480: { parser.yyVAL.item = []ast.ExprNode{yyS[yypt-0].expr} } - case 1480: + case 1481: { parser.yyVAL.item = append(yyS[yypt-2].item.([]ast.ExprNode), yyS[yypt-0].expr) } - case 1481: + case 1482: { parser.yyVAL.statement = &ast.DeallocateStmt{Name: yyS[yypt-0].ident} } - case 1484: + case 1485: { parser.yyVAL.statement = &ast.RollbackStmt{} } - case 1485: + case 1486: { parser.yyVAL.statement = &ast.RollbackStmt{CompletionType: yyS[yypt-0].item.(ast.CompletionType)} } - case 1486: + case 1487: { parser.yyVAL.statement = &ast.RollbackStmt{SavepointName: yyS[yypt-0].ident} } - case 1487: + case 1488: { parser.yyVAL.statement = &ast.RollbackStmt{SavepointName: yyS[yypt-0].ident} } - case 1488: + case 1489: { parser.yyVAL.item = ast.CompletionTypeChain } - case 1489: + case 1490: { parser.yyVAL.item = ast.CompletionTypeRelease } - case 1490: + case 1491: { parser.yyVAL.item = ast.CompletionTypeDefault } - case 1491: + case 1492: { parser.yyVAL.item = ast.CompletionTypeChain } - case 1492: + case 1493: { parser.yyVAL.item = ast.CompletionTypeDefault } - case 1493: + case 1494: { parser.yyVAL.item = ast.CompletionTypeRelease } - case 1494: + case 1495: { parser.yyVAL.item = ast.CompletionTypeDefault } - case 1495: + case 1496: { parser.yyVAL.statement = &ast.ShutdownStmt{} } - case 1496: + case 1497: { parser.yyVAL.statement = &ast.RestartStmt{} } - case 1497: + case 1498: { parser.yyVAL.statement = &ast.HelpStmt{Topic: yyS[yypt-0].ident} } - case 1498: + case 1499: { st := &ast.SelectStmt{ SelectStmtOpts: yyS[yypt-2].item.(*ast.SelectStmtOpts), @@ -16705,7 +16727,7 @@ yynewstate: } parser.yyVAL.item = st } - case 1499: + case 1500: { st := yyS[yypt-2].item.(*ast.SelectStmt) lastField := st.Fields.Fields[len(st.Fields.Fields)-1] @@ -16717,7 +16739,7 @@ yynewstate: st.Where = yyS[yypt-0].item.(ast.ExprNode) } } - case 1500: + case 1501: { st := yyS[yypt-6].item.(*ast.SelectStmt) st.From = yyS[yypt-4].item.(*ast.TableRefsClause) @@ -16740,11 +16762,11 @@ yynewstate: } parser.yyVAL.item = st } - case 1501: + case 1502: { parser.yyVAL.item = nil } - case 1502: + case 1503: { var repSeed ast.ExprNode if yyS[yypt-0].expr != nil { @@ -16757,7 +16779,7 @@ yynewstate: RepeatableSeed: repSeed, } } - case 1503: + case 1504: { var repSeed ast.ExprNode if yyS[yypt-0].expr != nil { @@ -16768,43 +16790,43 @@ yynewstate: RepeatableSeed: repSeed, } } - case 1504: + case 1505: { parser.yyVAL.item = ast.SampleMethodTypeNone } - case 1505: + case 1506: { parser.yyVAL.item = ast.SampleMethodTypeSystem } - case 1506: + case 1507: { parser.yyVAL.item = ast.SampleMethodTypeBernoulli } - case 1507: + case 1508: { parser.yyVAL.item = ast.SampleMethodTypeTiDBRegion } - case 1508: + case 1509: { parser.yyVAL.item = ast.SampleClauseUnitTypeDefault } - case 1509: + case 1510: { parser.yyVAL.item = ast.SampleClauseUnitTypeRow } - case 1510: + case 1511: { parser.yyVAL.item = ast.SampleClauseUnitTypePercent } - case 1511: + case 1512: { parser.yyVAL.expr = nil } - case 1512: + case 1513: { parser.yyVAL.expr = yyS[yypt-1].expr } - case 1513: + case 1514: { st := yyS[yypt-6].item.(*ast.SelectStmt) if yyS[yypt-1].item != nil { @@ -16851,7 +16873,7 @@ yynewstate: } parser.yyVAL.statement = st } - case 1514: + case 1515: { st := yyS[yypt-5].item.(*ast.SelectStmt) if yyS[yypt-4].item != nil { @@ -16871,7 +16893,7 @@ yynewstate: } parser.yyVAL.statement = st } - case 1515: + case 1516: { st := yyS[yypt-4].item.(*ast.SelectStmt) if yyS[yypt-1].item != nil { @@ -16888,7 +16910,7 @@ yynewstate: } parser.yyVAL.statement = st } - case 1516: + case 1517: { st := &ast.SelectStmt{ Kind: ast.SelectStmtKindTable, @@ -16910,7 +16932,7 @@ yynewstate: } parser.yyVAL.statement = st } - case 1517: + case 1518: { st := &ast.SelectStmt{ Kind: ast.SelectStmtKindValues, @@ -16931,13 +16953,13 @@ yynewstate: } parser.yyVAL.statement = st } - case 1518: + case 1519: { sel := yyS[yypt-0].statement.(*ast.SelectStmt) sel.With = yyS[yypt-1].item.(*ast.WithClause) parser.yyVAL.statement = sel } - case 1519: + case 1520: { var sel ast.StmtNode switch x := yyS[yypt-0].expr.(*ast.SubqueryExpr).Query.(type) { @@ -16953,11 +16975,11 @@ yynewstate: } parser.yyVAL.statement = sel } - case 1520: + case 1521: { parser.yyVAL.item = yyS[yypt-0].item } - case 1521: + case 1522: { ws := yyS[yypt-0].item.(*ast.WithClause) ws.IsRecursive = true @@ -16966,20 +16988,20 @@ yynewstate: } parser.yyVAL.item = ws } - case 1522: + case 1523: { ws := yyS[yypt-2].item.(*ast.WithClause) ws.CTEs = append(ws.CTEs, yyS[yypt-0].item.(*ast.CommonTableExpression)) parser.yyVAL.item = ws } - case 1523: + case 1524: { ws := &ast.WithClause{} ws.CTEs = make([]*ast.CommonTableExpression, 0, 4) ws.CTEs = append(ws.CTEs, yyS[yypt-0].item.(*ast.CommonTableExpression)) parser.yyVAL.item = ws } - case 1524: + case 1525: { cte := &ast.CommonTableExpression{} cte.Name = model.NewCIStr(yyS[yypt-3].ident) @@ -16987,37 +17009,37 @@ yynewstate: cte.Query = yyS[yypt-0].expr.(*ast.SubqueryExpr) parser.yyVAL.item = cte } - case 1526: + case 1527: { parser.yyVAL.item = nil } - case 1527: + case 1528: { parser.yyVAL.item = yyS[yypt-0].item.([]ast.WindowSpec) } - case 1528: + case 1529: { parser.yyVAL.item = []ast.WindowSpec{yyS[yypt-0].item.(ast.WindowSpec)} } - case 1529: + case 1530: { parser.yyVAL.item = append(yyS[yypt-2].item.([]ast.WindowSpec), yyS[yypt-0].item.(ast.WindowSpec)) } - case 1530: + case 1531: { var spec = yyS[yypt-0].item.(ast.WindowSpec) spec.Name = yyS[yypt-2].item.(model.CIStr) parser.yyVAL.item = spec } - case 1531: + case 1532: { parser.yyVAL.item = model.NewCIStr(yyS[yypt-0].ident) } - case 1532: + case 1533: { parser.yyVAL.item = yyS[yypt-1].item.(ast.WindowSpec) } - case 1533: + case 1534: { spec := ast.WindowSpec{Ref: yyS[yypt-3].item.(model.CIStr)} if yyS[yypt-2].item != nil { @@ -17031,117 +17053,113 @@ yynewstate: } parser.yyVAL.item = spec } - case 1534: + case 1535: { parser.yyVAL.item = model.CIStr{} } - case 1536: + case 1537: { parser.yyVAL.item = nil } - case 1537: + case 1538: { parser.yyVAL.item = &ast.PartitionByClause{Items: yyS[yypt-0].item.([]*ast.ByItem)} } - case 1538: + case 1539: { parser.yyVAL.item = nil } - case 1539: + case 1540: { parser.yyVAL.item = &ast.OrderByClause{Items: yyS[yypt-0].item.([]*ast.ByItem)} } - case 1540: + case 1541: { parser.yyVAL.item = nil } - case 1541: + case 1542: { parser.yyVAL.item = &ast.FrameClause{ Type: yyS[yypt-1].item.(ast.FrameType), Extent: yyS[yypt-0].item.(ast.FrameExtent), } } - case 1542: + case 1543: { parser.yyVAL.item = ast.FrameType(ast.Rows) } - case 1543: + case 1544: { parser.yyVAL.item = ast.FrameType(ast.Ranges) } - case 1544: + case 1545: { parser.yyVAL.item = ast.FrameType(ast.Groups) } - case 1545: + case 1546: { parser.yyVAL.item = ast.FrameExtent{ Start: yyS[yypt-0].item.(ast.FrameBound), End: ast.FrameBound{Type: ast.CurrentRow}, } } - case 1547: + case 1548: { parser.yyVAL.item = ast.FrameBound{Type: ast.Preceding, UnBounded: true} } - case 1548: + case 1549: { parser.yyVAL.item = ast.FrameBound{Type: ast.Preceding, Expr: ast.NewValueExpr(yyS[yypt-1].item, parser.charset, parser.collation)} } - case 1549: + case 1550: { parser.yyVAL.item = ast.FrameBound{Type: ast.Preceding, Expr: ast.NewParamMarkerExpr(yyS[yypt].offset)} } - case 1550: + case 1551: { parser.yyVAL.item = ast.FrameBound{Type: ast.Preceding, Expr: yyS[yypt-2].expr, Unit: yyS[yypt-1].item.(ast.TimeUnitType)} } - case 1551: + case 1552: { parser.yyVAL.item = ast.FrameBound{Type: ast.CurrentRow} } - case 1552: + case 1553: { parser.yyVAL.item = ast.FrameExtent{Start: yyS[yypt-2].item.(ast.FrameBound), End: yyS[yypt-0].item.(ast.FrameBound)} } - case 1554: + case 1555: { parser.yyVAL.item = ast.FrameBound{Type: ast.Following, UnBounded: true} } - case 1555: + case 1556: { parser.yyVAL.item = ast.FrameBound{Type: ast.Following, Expr: ast.NewValueExpr(yyS[yypt-1].item, parser.charset, parser.collation)} } - case 1556: + case 1557: { parser.yyVAL.item = ast.FrameBound{Type: ast.Following, Expr: ast.NewParamMarkerExpr(yyS[yypt].offset)} } - case 1557: + case 1558: { parser.yyVAL.item = ast.FrameBound{Type: ast.Following, Expr: yyS[yypt-2].expr, Unit: yyS[yypt-1].item.(ast.TimeUnitType)} } - case 1558: + case 1559: { parser.yyVAL.item = nil } - case 1559: + case 1560: { spec := yyS[yypt-0].item.(ast.WindowSpec) parser.yyVAL.item = &spec } - case 1560: + case 1561: { parser.yyVAL.item = yyS[yypt-0].item.(ast.WindowSpec) } - case 1561: + case 1562: { parser.yyVAL.item = ast.WindowSpec{Name: yyS[yypt-0].item.(model.CIStr), OnlyAlias: true} } - case 1563: - { - parser.yyVAL.expr = &ast.WindowFuncExpr{F: yyS[yypt-3].ident, Spec: yyS[yypt-0].item.(ast.WindowSpec)} - } case 1564: { parser.yyVAL.expr = &ast.WindowFuncExpr{F: yyS[yypt-3].ident, Spec: yyS[yypt-0].item.(ast.WindowSpec)} @@ -17160,9 +17178,13 @@ yynewstate: } case 1568: { - parser.yyVAL.expr = &ast.WindowFuncExpr{F: yyS[yypt-4].ident, Args: []ast.ExprNode{yyS[yypt-2].expr}, Spec: yyS[yypt-0].item.(ast.WindowSpec)} + parser.yyVAL.expr = &ast.WindowFuncExpr{F: yyS[yypt-3].ident, Spec: yyS[yypt-0].item.(ast.WindowSpec)} } case 1569: + { + parser.yyVAL.expr = &ast.WindowFuncExpr{F: yyS[yypt-4].ident, Args: []ast.ExprNode{yyS[yypt-2].expr}, Spec: yyS[yypt-0].item.(ast.WindowSpec)} + } + case 1570: { args := []ast.ExprNode{yyS[yypt-4].expr} if yyS[yypt-3].item != nil { @@ -17170,7 +17192,7 @@ yynewstate: } parser.yyVAL.expr = &ast.WindowFuncExpr{F: yyS[yypt-6].ident, Args: args, IgnoreNull: yyS[yypt-1].item.(bool), Spec: yyS[yypt-0].item.(ast.WindowSpec)} } - case 1570: + case 1571: { args := []ast.ExprNode{yyS[yypt-4].expr} if yyS[yypt-3].item != nil { @@ -17178,23 +17200,23 @@ yynewstate: } parser.yyVAL.expr = &ast.WindowFuncExpr{F: yyS[yypt-6].ident, Args: args, IgnoreNull: yyS[yypt-1].item.(bool), Spec: yyS[yypt-0].item.(ast.WindowSpec)} } - case 1571: + case 1572: { parser.yyVAL.expr = &ast.WindowFuncExpr{F: yyS[yypt-5].ident, Args: []ast.ExprNode{yyS[yypt-3].expr}, IgnoreNull: yyS[yypt-1].item.(bool), Spec: yyS[yypt-0].item.(ast.WindowSpec)} } - case 1572: + case 1573: { parser.yyVAL.expr = &ast.WindowFuncExpr{F: yyS[yypt-5].ident, Args: []ast.ExprNode{yyS[yypt-3].expr}, IgnoreNull: yyS[yypt-1].item.(bool), Spec: yyS[yypt-0].item.(ast.WindowSpec)} } - case 1573: + case 1574: { parser.yyVAL.expr = &ast.WindowFuncExpr{F: yyS[yypt-8].ident, Args: []ast.ExprNode{yyS[yypt-6].expr, yyS[yypt-4].expr}, FromLast: yyS[yypt-2].item.(bool), IgnoreNull: yyS[yypt-1].item.(bool), Spec: yyS[yypt-0].item.(ast.WindowSpec)} } - case 1574: + case 1575: { parser.yyVAL.item = nil } - case 1575: + case 1576: { args := []ast.ExprNode{ast.NewValueExpr(yyS[yypt-1].item, parser.charset, parser.collation)} if yyS[yypt-0].item != nil { @@ -17202,7 +17224,7 @@ yynewstate: } parser.yyVAL.item = args } - case 1576: + case 1577: { args := []ast.ExprNode{ast.NewParamMarkerExpr(yyS[yypt-1].offset)} if yyS[yypt-0].item != nil { @@ -17210,17 +17232,13 @@ yynewstate: } parser.yyVAL.item = args } - case 1577: - { - parser.yyVAL.item = nil - } case 1578: { - parser.yyVAL.item = yyS[yypt-0].expr + parser.yyVAL.item = nil } case 1579: { - parser.yyVAL.item = false + parser.yyVAL.item = yyS[yypt-0].expr } case 1580: { @@ -17228,11 +17246,11 @@ yynewstate: } case 1581: { - parser.yyVAL.item = true + parser.yyVAL.item = false } case 1582: { - parser.yyVAL.item = false + parser.yyVAL.item = true } case 1583: { @@ -17240,13 +17258,17 @@ yynewstate: } case 1584: { - parser.yyVAL.item = true + parser.yyVAL.item = false } case 1585: { - parser.yyVAL.item = &ast.TableRefsClause{TableRefs: yyS[yypt-0].item.(*ast.Join)} + parser.yyVAL.item = true } case 1586: + { + parser.yyVAL.item = &ast.TableRefsClause{TableRefs: yyS[yypt-0].item.(*ast.Join)} + } + case 1587: { if j, ok := yyS[yypt-0].item.(*ast.Join); ok { // if $1 is Join, use it directly @@ -17255,12 +17277,12 @@ yynewstate: parser.yyVAL.item = &ast.Join{Left: yyS[yypt-0].item.(ast.ResultSetNode), Right: nil} } } - case 1587: + case 1588: { /* from a, b is default cross join */ parser.yyVAL.item = &ast.Join{Left: yyS[yypt-2].item.(ast.ResultSetNode), Right: yyS[yypt-0].item.(ast.ResultSetNode), Tp: ast.CrossJoin} } - case 1589: + case 1590: { /* * ODBC escape syntax for outer join is { OJ join_table } @@ -17268,7 +17290,7 @@ yynewstate: */ parser.yyVAL.item = yyS[yypt-1].item } - case 1592: + case 1593: { tn := yyS[yypt-5].item.(*ast.TableName) tn.PartitionNames = yyS[yypt-4].item.([]model.CIStr) @@ -17281,66 +17303,66 @@ yynewstate: } parser.yyVAL.item = &ast.TableSource{Source: tn, AsName: yyS[yypt-3].item.(model.CIStr)} } - case 1593: + case 1594: { resultNode := yyS[yypt-1].expr.(*ast.SubqueryExpr).Query parser.yyVAL.item = &ast.TableSource{Source: resultNode, AsName: yyS[yypt-0].item.(model.CIStr)} } - case 1594: + case 1595: { j := yyS[yypt-1].item.(*ast.Join) j.ExplicitParens = true parser.yyVAL.item = yyS[yypt-1].item } - case 1595: + case 1596: { parser.yyVAL.item = []model.CIStr{} } - case 1596: + case 1597: { parser.yyVAL.item = yyS[yypt-1].item } - case 1597: + case 1598: { parser.yyVAL.item = model.CIStr{} } - case 1599: + case 1600: { parser.yyVAL.item = model.NewCIStr(yyS[yypt-0].ident) } - case 1600: + case 1601: { parser.yyVAL.item = model.NewCIStr(yyS[yypt-0].ident) } - case 1601: + case 1602: { parser.yyVAL.item = ast.HintUse } - case 1602: + case 1603: { parser.yyVAL.item = ast.HintIgnore } - case 1603: + case 1604: { parser.yyVAL.item = ast.HintForce } - case 1604: + case 1605: { parser.yyVAL.item = ast.HintForScan } - case 1605: + case 1606: { parser.yyVAL.item = ast.HintForJoin } - case 1606: + case 1607: { parser.yyVAL.item = ast.HintForOrderBy } - case 1607: + case 1608: { parser.yyVAL.item = ast.HintForGroupBy } - case 1608: + case 1609: { parser.yyVAL.item = &ast.IndexHint{ IndexNames: yyS[yypt-1].item.([]model.CIStr), @@ -17348,134 +17370,134 @@ yynewstate: HintScope: yyS[yypt-3].item.(ast.IndexHintScope), } } - case 1609: + case 1610: { var nameList []model.CIStr parser.yyVAL.item = nameList } - case 1610: + case 1611: { parser.yyVAL.item = []model.CIStr{model.NewCIStr(yyS[yypt-0].ident)} } - case 1611: + case 1612: { parser.yyVAL.item = append(yyS[yypt-2].item.([]model.CIStr), model.NewCIStr(yyS[yypt-0].ident)) } - case 1612: + case 1613: { parser.yyVAL.item = []model.CIStr{model.NewCIStr(yyS[yypt-0].ident)} } - case 1613: + case 1614: { parser.yyVAL.item = append(yyS[yypt-2].item.([]model.CIStr), model.NewCIStr(yyS[yypt-0].ident)) } - case 1614: + case 1615: { parser.yyVAL.item = []*ast.IndexHint{yyS[yypt-0].item.(*ast.IndexHint)} } - case 1615: + case 1616: { parser.yyVAL.item = append(yyS[yypt-1].item.([]*ast.IndexHint), yyS[yypt-0].item.(*ast.IndexHint)) } - case 1616: + case 1617: { parser.yyVAL.item = []*ast.IndexHint{} } - case 1618: + case 1619: { parser.yyVAL.item = ast.NewCrossJoin(yyS[yypt-2].item.(ast.ResultSetNode), yyS[yypt-0].item.(ast.ResultSetNode)) } - case 1619: + case 1620: { on := &ast.OnCondition{Expr: yyS[yypt-0].expr} parser.yyVAL.item = &ast.Join{Left: yyS[yypt-4].item.(ast.ResultSetNode), Right: yyS[yypt-2].item.(ast.ResultSetNode), Tp: ast.CrossJoin, On: on} } - case 1620: + case 1621: { parser.yyVAL.item = &ast.Join{Left: yyS[yypt-6].item.(ast.ResultSetNode), Right: yyS[yypt-4].item.(ast.ResultSetNode), Tp: ast.CrossJoin, Using: yyS[yypt-1].item.([]*ast.ColumnName)} } - case 1621: + case 1622: { on := &ast.OnCondition{Expr: yyS[yypt-0].expr} parser.yyVAL.item = &ast.Join{Left: yyS[yypt-6].item.(ast.ResultSetNode), Right: yyS[yypt-2].item.(ast.ResultSetNode), Tp: yyS[yypt-5].item.(ast.JoinType), On: on} } - case 1622: + case 1623: { parser.yyVAL.item = &ast.Join{Left: yyS[yypt-8].item.(ast.ResultSetNode), Right: yyS[yypt-4].item.(ast.ResultSetNode), Tp: yyS[yypt-7].item.(ast.JoinType), Using: yyS[yypt-1].item.([]*ast.ColumnName)} } - case 1623: + case 1624: { parser.yyVAL.item = &ast.Join{Left: yyS[yypt-3].item.(ast.ResultSetNode), Right: yyS[yypt-0].item.(ast.ResultSetNode), NaturalJoin: true} } - case 1624: + case 1625: { parser.yyVAL.item = &ast.Join{Left: yyS[yypt-5].item.(ast.ResultSetNode), Right: yyS[yypt-0].item.(ast.ResultSetNode), Tp: yyS[yypt-3].item.(ast.JoinType), NaturalJoin: true} } - case 1625: + case 1626: { parser.yyVAL.item = &ast.Join{Left: yyS[yypt-2].item.(ast.ResultSetNode), Right: yyS[yypt-0].item.(ast.ResultSetNode), StraightJoin: true} } - case 1626: + case 1627: { on := &ast.OnCondition{Expr: yyS[yypt-0].expr} parser.yyVAL.item = &ast.Join{Left: yyS[yypt-4].item.(ast.ResultSetNode), Right: yyS[yypt-2].item.(ast.ResultSetNode), StraightJoin: true, On: on} } - case 1627: + case 1628: { parser.yyVAL.item = ast.LeftJoin } - case 1628: + case 1629: { parser.yyVAL.item = ast.RightJoin } - case 1634: + case 1635: { parser.yyVAL.item = nil } - case 1635: + case 1636: { parser.yyVAL.item = &ast.Limit{Count: yyS[yypt-0].item.(ast.ValueExpr)} } - case 1636: + case 1637: { parser.yyVAL.item = ast.NewValueExpr(yyS[yypt-0].item, parser.charset, parser.collation) } - case 1637: + case 1638: { parser.yyVAL.item = ast.NewParamMarkerExpr(yyS[yypt].offset) } - case 1642: + case 1643: { parser.yyVAL.item = ast.NewValueExpr(uint64(1), parser.charset, parser.collation) } - case 1644: + case 1645: { parser.yyVAL.item = &ast.Limit{Count: yyS[yypt-0].item.(ast.ExprNode)} } - case 1645: + case 1646: { parser.yyVAL.item = &ast.Limit{Offset: yyS[yypt-2].item.(ast.ExprNode), Count: yyS[yypt-0].item.(ast.ExprNode)} } - case 1646: + case 1647: { parser.yyVAL.item = &ast.Limit{Offset: yyS[yypt-0].item.(ast.ExprNode), Count: yyS[yypt-2].item.(ast.ExprNode)} } - case 1647: + case 1648: { parser.yyVAL.item = &ast.Limit{Count: yyS[yypt-2].item.(ast.ExprNode)} } - case 1648: + case 1649: { parser.yyVAL.item = nil } - case 1650: + case 1651: { opt := &ast.SelectStmtOpts{} opt.SQLCache = true opt.TableHints = yyS[yypt-0].item.([]*ast.TableOptimizerHint) parser.yyVAL.item = opt } - case 1651: + case 1652: { opt := &ast.SelectStmtOpts{} opt.SQLCache = true @@ -17487,61 +17509,61 @@ yynewstate: } parser.yyVAL.item = opt } - case 1652: + case 1653: { opt := &ast.SelectStmtOpts{} opt.SQLCache = true opt.Priority = yyS[yypt-0].item.(mysql.PriorityEnum) parser.yyVAL.item = opt } - case 1653: + case 1654: { opt := &ast.SelectStmtOpts{} opt.SQLCache = true opt.SQLSmallResult = true parser.yyVAL.item = opt } - case 1654: + case 1655: { opt := &ast.SelectStmtOpts{} opt.SQLCache = true opt.SQLBigResult = true parser.yyVAL.item = opt } - case 1655: + case 1656: { opt := &ast.SelectStmtOpts{} opt.SQLCache = true opt.SQLBufferResult = true parser.yyVAL.item = opt } - case 1656: + case 1657: { opt := &ast.SelectStmtOpts{} opt.SQLCache = yyS[yypt-0].item.(bool) parser.yyVAL.item = opt } - case 1657: + case 1658: { opt := &ast.SelectStmtOpts{} opt.SQLCache = true opt.CalcFoundRows = true parser.yyVAL.item = opt } - case 1658: + case 1659: { opt := &ast.SelectStmtOpts{} opt.SQLCache = true opt.StraightJoin = true parser.yyVAL.item = opt } - case 1659: + case 1660: { opt := &ast.SelectStmtOpts{} opt.SQLCache = true parser.yyVAL.item = opt } - case 1661: + case 1662: { opts := yyS[yypt-1].item.(*ast.SelectStmtOpts) opt := yyS[yypt-0].item.(*ast.SelectStmtOpts) @@ -17586,7 +17608,7 @@ yynewstate: parser.yyVAL.item = opts } - case 1663: + case 1664: { hints, warns := parser.parseHint(yyS[yypt-0].ident) for _, w := range warns { @@ -17595,31 +17617,31 @@ yynewstate: } parser.yyVAL.item = hints } - case 1664: + case 1665: { parser.yyVAL.item = nil } - case 1666: + case 1667: { parser.yyVAL.item = true } - case 1667: + case 1668: { parser.yyVAL.item = false } - case 1668: + case 1669: { parser.yyVAL.item = &ast.FieldList{Fields: yyS[yypt-0].item.([]*ast.SelectField)} } - case 1669: + case 1670: { parser.yyVAL.item = nil } - case 1671: + case 1672: { parser.yyVAL.item = nil } - case 1672: + case 1673: { x := &ast.SelectIntoOption{ Tp: ast.SelectIntoOutfile, @@ -17634,7 +17656,7 @@ yynewstate: parser.yyVAL.item = x } - case 1673: + case 1674: { rs := yyS[yypt-1].statement.(*ast.SelectStmt) endOffset := parser.endOffset(&yyS[yypt]) @@ -17644,14 +17666,14 @@ yynewstate: rs.SetText(parser.lexer.client, src[yyS[yypt-1].offset:yyS[yypt].offset]) parser.yyVAL.expr = &ast.SubqueryExpr{Query: rs} } - case 1674: + case 1675: { rs := yyS[yypt-1].statement.(*ast.SetOprStmt) src := parser.src rs.SetText(parser.lexer.client, src[yyS[yypt-1].offset:yyS[yypt].offset]) parser.yyVAL.expr = &ast.SubqueryExpr{Query: rs} } - case 1675: + case 1676: { rs := yyS[yypt-1].statement.(*ast.SelectStmt) endOffset := parser.endOffset(&yyS[yypt]) @@ -17661,7 +17683,7 @@ yynewstate: rs.SetText(parser.lexer.client, src[yyS[yypt-1].offset:yyS[yypt].offset]) parser.yyVAL.expr = &ast.SubqueryExpr{Query: rs} } - case 1676: + case 1677: { subQuery := yyS[yypt-1].expr.(*ast.SubqueryExpr).Query isRecursive := true @@ -17684,32 +17706,32 @@ yynewstate: parser.yyVAL.expr = &ast.SubqueryExpr{Query: rs} } } - case 1677: + case 1678: { parser.yyVAL.item = nil } - case 1678: + case 1679: { parser.yyVAL.item = &ast.SelectLockInfo{ LockType: ast.SelectLockForUpdate, Tables: yyS[yypt-0].item.([]*ast.TableName), } } - case 1679: + case 1680: { parser.yyVAL.item = &ast.SelectLockInfo{ LockType: ast.SelectLockForShare, Tables: yyS[yypt-0].item.([]*ast.TableName), } } - case 1680: + case 1681: { parser.yyVAL.item = &ast.SelectLockInfo{ LockType: ast.SelectLockForUpdateNoWait, Tables: yyS[yypt-1].item.([]*ast.TableName), } } - case 1681: + case 1682: { parser.yyVAL.item = &ast.SelectLockInfo{ LockType: ast.SelectLockForUpdateWaitN, @@ -17717,55 +17739,55 @@ yynewstate: Tables: yyS[yypt-2].item.([]*ast.TableName), } } - case 1682: + case 1683: { parser.yyVAL.item = &ast.SelectLockInfo{ LockType: ast.SelectLockForShareNoWait, Tables: yyS[yypt-1].item.([]*ast.TableName), } } - case 1683: + case 1684: { parser.yyVAL.item = &ast.SelectLockInfo{ LockType: ast.SelectLockForUpdateSkipLocked, Tables: yyS[yypt-2].item.([]*ast.TableName), } } - case 1684: + case 1685: { parser.yyVAL.item = &ast.SelectLockInfo{ LockType: ast.SelectLockForShareSkipLocked, Tables: yyS[yypt-2].item.([]*ast.TableName), } } - case 1685: + case 1686: { parser.yyVAL.item = &ast.SelectLockInfo{ LockType: ast.SelectLockForShare, Tables: []*ast.TableName{}, } } - case 1686: + case 1687: { parser.yyVAL.item = []*ast.TableName{} } - case 1687: + case 1688: { parser.yyVAL.item = yyS[yypt-0].item.([]*ast.TableName) } - case 1690: + case 1691: { setOpr := yyS[yypt-0].statement.(*ast.SetOprStmt) setOpr.With = yyS[yypt-1].item.(*ast.WithClause) parser.yyVAL.statement = setOpr } - case 1691: + case 1692: { setOpr := yyS[yypt-0].statement.(*ast.SetOprStmt) setOpr.With = yyS[yypt-1].item.(*ast.WithClause) parser.yyVAL.statement = setOpr } - case 1692: + case 1693: { setOprList1 := yyS[yypt-2].item.([]ast.Node) if sel, isSelect := setOprList1[len(setOprList1)-1].(*ast.SelectStmt); isSelect && !sel.IsInBraces { @@ -17782,7 +17804,7 @@ yynewstate: setOpr.SelectList.Selects = append(setOpr.SelectList.Selects, st) parser.yyVAL.statement = setOpr } - case 1693: + case 1694: { setOprList1 := yyS[yypt-2].item.([]ast.Node) if sel, isSelect := setOprList1[len(setOprList1)-1].(*ast.SelectStmt); isSelect && !sel.IsInBraces { @@ -17805,7 +17827,7 @@ yynewstate: setOpr := &ast.SetOprStmt{SelectList: &ast.SetOprSelectList{Selects: setOprList}} parser.yyVAL.statement = setOpr } - case 1694: + case 1695: { setOprList1 := yyS[yypt-3].item.([]ast.Node) if sel, isSelect := setOprList1[len(setOprList1)-1].(*ast.SelectStmt); isSelect && !sel.IsInBraces { @@ -17829,7 +17851,7 @@ yynewstate: setOpr.OrderBy = yyS[yypt-0].item.(*ast.OrderByClause) parser.yyVAL.statement = setOpr } - case 1695: + case 1696: { setOprList1 := yyS[yypt-3].item.([]ast.Node) if sel, isSelect := setOprList1[len(setOprList1)-1].(*ast.SelectStmt); isSelect && !sel.IsInBraces { @@ -17853,7 +17875,7 @@ yynewstate: setOpr.Limit = yyS[yypt-0].item.(*ast.Limit) parser.yyVAL.statement = setOpr } - case 1696: + case 1697: { setOprList1 := yyS[yypt-4].item.([]ast.Node) if sel, isSelect := setOprList1[len(setOprList1)-1].(*ast.SelectStmt); isSelect && !sel.IsInBraces { @@ -17878,7 +17900,7 @@ yynewstate: setOpr.Limit = yyS[yypt-0].item.(*ast.Limit) parser.yyVAL.statement = setOpr } - case 1697: + case 1698: { var setOprList []ast.Node var with *ast.WithClause @@ -17894,7 +17916,7 @@ yynewstate: setOpr.OrderBy = yyS[yypt-0].item.(*ast.OrderByClause) parser.yyVAL.statement = setOpr } - case 1698: + case 1699: { var setOprList []ast.Node var with *ast.WithClause @@ -17910,7 +17932,7 @@ yynewstate: setOpr.Limit = yyS[yypt-0].item.(*ast.Limit) parser.yyVAL.statement = setOpr } - case 1699: + case 1700: { var setOprList []ast.Node var with *ast.WithClause @@ -17927,7 +17949,7 @@ yynewstate: setOpr.Limit = yyS[yypt-0].item.(*ast.Limit) parser.yyVAL.statement = setOpr } - case 1701: + case 1702: { setOprList1 := yyS[yypt-2].item.([]ast.Node) setOprList2 := yyS[yypt-0].item.([]ast.Node) @@ -17943,11 +17965,11 @@ yynewstate: } parser.yyVAL.item = append(setOprList1, setOprList2...) } - case 1702: + case 1703: { parser.yyVAL.item = []ast.Node{yyS[yypt-0].statement.(*ast.SelectStmt)} } - case 1703: + case 1704: { var setOprList []ast.Node switch x := yyS[yypt-0].expr.(*ast.SubqueryExpr).Query.(type) { @@ -17958,7 +17980,7 @@ yynewstate: } parser.yyVAL.item = setOprList } - case 1704: + case 1705: { var tp ast.SetOprType tp = ast.Union @@ -17967,7 +17989,7 @@ yynewstate: } parser.yyVAL.item = &tp } - case 1705: + case 1706: { var tp ast.SetOprType tp = ast.Except @@ -17976,7 +17998,7 @@ yynewstate: } parser.yyVAL.item = &tp } - case 1706: + case 1707: { var tp ast.SetOprType tp = ast.Intersect @@ -17985,7 +18007,7 @@ yynewstate: } parser.yyVAL.item = &tp } - case 1708: + case 1709: { parser.yyVAL.statement = &ast.ChangeStmt{ NodeType: ast.PumpType, @@ -17993,7 +18015,7 @@ yynewstate: NodeID: yyS[yypt-0].ident, } } - case 1709: + case 1710: { parser.yyVAL.statement = &ast.ChangeStmt{ NodeType: ast.DrainerType, @@ -18001,19 +18023,19 @@ yynewstate: NodeID: yyS[yypt-0].ident, } } - case 1710: + case 1711: { parser.yyVAL.statement = &ast.SetStmt{Variables: yyS[yypt-0].item.([]*ast.VariableAssignment)} } - case 1711: + case 1712: { parser.yyVAL.statement = &ast.SetPwdStmt{Password: yyS[yypt-0].ident} } - case 1712: + case 1713: { parser.yyVAL.statement = &ast.SetPwdStmt{User: yyS[yypt-2].item.(*auth.UserIdentity), Password: yyS[yypt-0].ident} } - case 1713: + case 1714: { vars := yyS[yypt-0].item.([]*ast.VariableAssignment) for _, v := range vars { @@ -18021,11 +18043,11 @@ yynewstate: } parser.yyVAL.statement = &ast.SetStmt{Variables: vars} } - case 1714: + case 1715: { parser.yyVAL.statement = &ast.SetStmt{Variables: yyS[yypt-0].item.([]*ast.VariableAssignment)} } - case 1715: + case 1716: { assigns := yyS[yypt-0].item.([]*ast.VariableAssignment) for i := 0; i < len(assigns); i++ { @@ -18036,23 +18058,23 @@ yynewstate: } parser.yyVAL.statement = &ast.SetStmt{Variables: assigns} } - case 1716: + case 1717: { parser.yyVAL.statement = &ast.SetConfigStmt{Type: strings.ToLower(yyS[yypt-3].ident), Name: yyS[yypt-2].ident, Value: yyS[yypt-0].expr} } - case 1717: + case 1718: { parser.yyVAL.statement = &ast.SetConfigStmt{Instance: yyS[yypt-3].ident, Name: yyS[yypt-2].ident, Value: yyS[yypt-0].expr} } - case 1718: + case 1719: { parser.yyVAL.statement = &ast.SetSessionStatesStmt{SessionStates: yyS[yypt-0].ident} } - case 1719: + case 1720: { parser.yyVAL.statement = yyS[yypt-0].item.(*ast.SetRoleStmt) } - case 1720: + case 1721: { tmp := yyS[yypt-2].item.(*ast.SetRoleStmt) parser.yyVAL.statement = &ast.SetDefaultRoleStmt{ @@ -18061,27 +18083,27 @@ yynewstate: UserList: yyS[yypt-0].item.([]*auth.UserIdentity), } } - case 1721: + case 1722: { parser.yyVAL.item = &ast.SetRoleStmt{SetRoleOpt: ast.SetRoleNone, RoleList: nil} } - case 1722: + case 1723: { parser.yyVAL.item = &ast.SetRoleStmt{SetRoleOpt: ast.SetRoleAll, RoleList: nil} } - case 1723: + case 1724: { parser.yyVAL.item = &ast.SetRoleStmt{SetRoleOpt: ast.SetRoleRegular, RoleList: yyS[yypt-0].item.([]*auth.RoleIdentity)} } - case 1724: + case 1725: { parser.yyVAL.item = &ast.SetRoleStmt{SetRoleOpt: ast.SetRoleAllExcept, RoleList: yyS[yypt-0].item.([]*auth.RoleIdentity)} } - case 1726: + case 1727: { parser.yyVAL.item = &ast.SetRoleStmt{SetRoleOpt: ast.SetRoleDefault, RoleList: nil} } - case 1727: + case 1728: { if yyS[yypt-0].item != nil { parser.yyVAL.item = yyS[yypt-0].item @@ -18089,7 +18111,7 @@ yynewstate: parser.yyVAL.item = []*ast.VariableAssignment{} } } - case 1728: + case 1729: { if yyS[yypt-0].item != nil { varAssigns := yyS[yypt-0].item.([]*ast.VariableAssignment) @@ -18098,28 +18120,28 @@ yynewstate: parser.yyVAL.item = yyS[yypt-2].item } } - case 1729: + case 1730: { varAssigns := []*ast.VariableAssignment{} expr := ast.NewValueExpr(yyS[yypt-0].ident, parser.charset, parser.collation) varAssigns = append(varAssigns, &ast.VariableAssignment{Name: "tx_isolation", Value: expr, IsSystem: true}) parser.yyVAL.item = varAssigns } - case 1730: + case 1731: { varAssigns := []*ast.VariableAssignment{} expr := ast.NewValueExpr("0", parser.charset, parser.collation) varAssigns = append(varAssigns, &ast.VariableAssignment{Name: "tx_read_only", Value: expr, IsSystem: true}) parser.yyVAL.item = varAssigns } - case 1731: + case 1732: { varAssigns := []*ast.VariableAssignment{} expr := ast.NewValueExpr("1", parser.charset, parser.collation) varAssigns = append(varAssigns, &ast.VariableAssignment{Name: "tx_read_only", Value: expr, IsSystem: true}) parser.yyVAL.item = varAssigns } - case 1732: + case 1733: { varAssigns := []*ast.VariableAssignment{} asof := yyS[yypt-0].item.(*ast.AsOfClause) @@ -18128,59 +18150,59 @@ yynewstate: } parser.yyVAL.item = varAssigns } - case 1733: + case 1734: { parser.yyVAL.ident = ast.RepeatableRead } - case 1734: + case 1735: { parser.yyVAL.ident = ast.ReadCommitted } - case 1735: + case 1736: { parser.yyVAL.ident = ast.ReadUncommitted } - case 1736: + case 1737: { parser.yyVAL.ident = ast.Serializable } - case 1737: + case 1738: { parser.yyVAL.expr = ast.NewValueExpr("ON", parser.charset, parser.collation) } - case 1738: + case 1739: { parser.yyVAL.expr = ast.NewValueExpr("BINARY", parser.charset, parser.collation) } - case 1743: - { - parser.yyVAL.ident = yyS[yypt-2].ident + "." + yyS[yypt-0].ident - } - case 1745: + case 1744: { parser.yyVAL.ident = yyS[yypt-2].ident + "." + yyS[yypt-0].ident } case 1746: { - parser.yyVAL.ident = yyS[yypt-2].ident + "-" + yyS[yypt-0].ident + parser.yyVAL.ident = yyS[yypt-2].ident + "." + yyS[yypt-0].ident } case 1747: { - parser.yyVAL.item = &ast.VariableAssignment{Name: yyS[yypt-2].ident, Value: yyS[yypt-0].expr, IsSystem: true} + parser.yyVAL.ident = yyS[yypt-2].ident + "-" + yyS[yypt-0].ident } case 1748: { - parser.yyVAL.item = &ast.VariableAssignment{Name: yyS[yypt-2].ident, Value: yyS[yypt-0].expr, IsGlobal: true, IsSystem: true} + parser.yyVAL.item = &ast.VariableAssignment{Name: yyS[yypt-2].ident, Value: yyS[yypt-0].expr, IsSystem: true} } case 1749: { - parser.yyVAL.item = &ast.VariableAssignment{Name: yyS[yypt-2].ident, Value: yyS[yypt-0].expr, IsSystem: true} + parser.yyVAL.item = &ast.VariableAssignment{Name: yyS[yypt-2].ident, Value: yyS[yypt-0].expr, IsGlobal: true, IsSystem: true} } case 1750: { parser.yyVAL.item = &ast.VariableAssignment{Name: yyS[yypt-2].ident, Value: yyS[yypt-0].expr, IsSystem: true} } case 1751: + { + parser.yyVAL.item = &ast.VariableAssignment{Name: yyS[yypt-2].ident, Value: yyS[yypt-0].expr, IsSystem: true} + } + case 1752: { v := strings.ToLower(yyS[yypt-2].ident) var isGlobal bool @@ -18196,27 +18218,27 @@ yynewstate: } parser.yyVAL.item = &ast.VariableAssignment{Name: v, Value: yyS[yypt-0].expr, IsGlobal: isGlobal, IsSystem: true} } - case 1752: + case 1753: { v := yyS[yypt-2].ident v = strings.TrimPrefix(v, "@") parser.yyVAL.item = &ast.VariableAssignment{Name: v, Value: yyS[yypt-0].expr} } - case 1753: + case 1754: { parser.yyVAL.item = &ast.VariableAssignment{ Name: ast.SetNames, Value: ast.NewValueExpr(yyS[yypt-0].ident, "", ""), } } - case 1754: + case 1755: { parser.yyVAL.item = &ast.VariableAssignment{ Name: ast.SetNames, Value: ast.NewValueExpr(yyS[yypt-2].ident, "", ""), } } - case 1755: + case 1756: { parser.yyVAL.item = &ast.VariableAssignment{ Name: ast.SetNames, @@ -18224,24 +18246,24 @@ yynewstate: ExtendValue: ast.NewValueExpr(yyS[yypt-0].ident, "", ""), } } - case 1756: + case 1757: { v := &ast.DefaultExpr{} parser.yyVAL.item = &ast.VariableAssignment{Name: ast.SetNames, Value: v} } - case 1757: + case 1758: { parser.yyVAL.item = &ast.VariableAssignment{Name: ast.SetCharset, Value: yyS[yypt-0].expr} } - case 1758: + case 1759: { parser.yyVAL.expr = ast.NewValueExpr(yyS[yypt-0].ident, "", "") } - case 1759: + case 1760: { parser.yyVAL.expr = &ast.DefaultExpr{} } - case 1760: + case 1761: { // Validate input charset name to keep the same behavior as parser of MySQL. cs, err := charset.GetCharsetInfo(yyS[yypt-0].ident) @@ -18253,11 +18275,11 @@ yynewstate: // to keep lower case of input for generated column restore. parser.yyVAL.ident = cs.Name } - case 1761: + case 1762: { parser.yyVAL.ident = charset.CharsetBin } - case 1762: + case 1763: { info, err := charset.GetCollationByName(yyS[yypt-0].ident) if err != nil { @@ -18266,19 +18288,19 @@ yynewstate: } parser.yyVAL.ident = info.Name } - case 1763: + case 1764: { parser.yyVAL.ident = charset.CollationBin } - case 1764: + case 1765: { parser.yyVAL.item = []*ast.VariableAssignment{yyS[yypt-0].item.(*ast.VariableAssignment)} } - case 1765: + case 1766: { parser.yyVAL.item = append(yyS[yypt-2].item.([]*ast.VariableAssignment), yyS[yypt-0].item.(*ast.VariableAssignment)) } - case 1768: + case 1769: { v := strings.ToLower(yyS[yypt-0].ident) var isGlobal bool @@ -18295,77 +18317,89 @@ yynewstate: } parser.yyVAL.expr = &ast.VariableExpr{Name: v, IsGlobal: isGlobal, IsSystem: true, ExplicitScope: explicitScope} } - case 1769: + case 1770: { v := yyS[yypt-0].ident v = strings.TrimPrefix(v, "@") parser.yyVAL.expr = &ast.VariableExpr{Name: v, IsGlobal: false, IsSystem: false} } - case 1770: + case 1771: { parser.yyVAL.item = &auth.UserIdentity{Username: yyS[yypt-0].ident, Hostname: "%"} } - case 1771: + case 1772: { parser.yyVAL.item = &auth.UserIdentity{Username: yyS[yypt-2].ident, Hostname: strings.ToLower(yyS[yypt-0].ident)} } - case 1772: + case 1773: { parser.yyVAL.item = &auth.UserIdentity{Username: yyS[yypt-1].ident, Hostname: strings.ToLower(strings.TrimPrefix(yyS[yypt-0].ident, "@"))} } - case 1773: + case 1774: { parser.yyVAL.item = &auth.UserIdentity{CurrentUser: true} } - case 1774: + case 1775: { parser.yyVAL.item = []*auth.UserIdentity{yyS[yypt-0].item.(*auth.UserIdentity)} } - case 1775: + case 1776: { parser.yyVAL.item = append(yyS[yypt-2].item.([]*auth.UserIdentity), yyS[yypt-0].item.(*auth.UserIdentity)) } - case 1777: + case 1778: { parser.yyVAL.ident = yyS[yypt-1].ident } - case 1781: + case 1782: { parser.yyVAL.item = &auth.RoleIdentity{Username: yyS[yypt-2].ident, Hostname: strings.ToLower(yyS[yypt-0].ident)} } - case 1782: + case 1783: { parser.yyVAL.item = &auth.RoleIdentity{Username: yyS[yypt-1].ident, Hostname: strings.ToLower(strings.TrimPrefix(yyS[yypt-0].ident, "@"))} } - case 1783: + case 1784: { parser.yyVAL.item = &auth.RoleIdentity{Username: yyS[yypt-0].ident, Hostname: "%"} } - case 1784: + case 1785: { parser.yyVAL.item = yyS[yypt-0].item } - case 1785: + case 1786: { parser.yyVAL.item = &auth.RoleIdentity{Username: yyS[yypt-0].ident, Hostname: "%"} } - case 1786: + case 1787: { parser.yyVAL.item = yyS[yypt-0].item } - case 1787: + case 1788: { parser.yyVAL.item = []*auth.RoleIdentity{yyS[yypt-0].item.(*auth.RoleIdentity)} } - case 1788: + case 1789: { parser.yyVAL.item = append(yyS[yypt-2].item.([]*auth.RoleIdentity), yyS[yypt-0].item.(*auth.RoleIdentity)) } - case 1789: + case 1790: + { + parser.yyVAL.item = &ast.LimitSimple{Offset: 0, Count: yyS[yypt-0].item.(uint64)} + } + case 1791: + { + parser.yyVAL.item = &ast.LimitSimple{Offset: yyS[yypt-2].item.(uint64), Count: yyS[yypt-0].item.(uint64)} + } + case 1792: + { + parser.yyVAL.item = &ast.LimitSimple{Offset: yyS[yypt-0].item.(uint64), Count: yyS[yypt-2].item.(uint64)} + } + case 1793: { parser.yyVAL.statement = &ast.AdminStmt{Tp: ast.AdminShowDDL} } - case 1790: + case 1794: { stmt := &ast.AdminStmt{Tp: ast.AdminShowDDLJobs} if yyS[yypt-0].item != nil { @@ -18373,7 +18407,7 @@ yynewstate: } parser.yyVAL.statement = stmt } - case 1791: + case 1795: { stmt := &ast.AdminStmt{ Tp: ast.AdminShowDDLJobs, @@ -18384,21 +18418,21 @@ yynewstate: } parser.yyVAL.statement = stmt } - case 1792: + case 1796: { parser.yyVAL.statement = &ast.AdminStmt{ Tp: ast.AdminShowNextRowID, Tables: []*ast.TableName{yyS[yypt-1].item.(*ast.TableName)}, } } - case 1793: + case 1797: { parser.yyVAL.statement = &ast.AdminStmt{ Tp: ast.AdminCheckTable, Tables: yyS[yypt-0].item.([]*ast.TableName), } } - case 1794: + case 1798: { parser.yyVAL.statement = &ast.AdminStmt{ Tp: ast.AdminCheckIndex, @@ -18406,7 +18440,7 @@ yynewstate: Index: string(yyS[yypt-0].ident), } } - case 1795: + case 1799: { parser.yyVAL.statement = &ast.AdminStmt{ Tp: ast.AdminRecoverIndex, @@ -18414,7 +18448,7 @@ yynewstate: Index: string(yyS[yypt-0].ident), } } - case 1796: + case 1800: { parser.yyVAL.statement = &ast.AdminStmt{ Tp: ast.AdminCleanupIndex, @@ -18422,7 +18456,7 @@ yynewstate: Index: string(yyS[yypt-0].ident), } } - case 1797: + case 1801: { parser.yyVAL.statement = &ast.AdminStmt{ Tp: ast.AdminCheckIndexRange, @@ -18431,136 +18465,145 @@ yynewstate: HandleRanges: yyS[yypt-0].item.([]ast.HandleRange), } } - case 1798: + case 1802: { parser.yyVAL.statement = &ast.AdminStmt{ Tp: ast.AdminChecksumTable, Tables: yyS[yypt-0].item.([]*ast.TableName), } } - case 1799: + case 1803: { parser.yyVAL.statement = &ast.AdminStmt{ Tp: ast.AdminCancelDDLJobs, JobIDs: yyS[yypt-0].item.([]int64), } } - case 1800: + case 1804: { parser.yyVAL.statement = &ast.AdminStmt{ Tp: ast.AdminShowDDLJobQueries, JobIDs: yyS[yypt-0].item.([]int64), } } - case 1801: + case 1805: + { + ret := &ast.AdminStmt{ + Tp: ast.AdminShowDDLJobQueriesWithRange, + } + ret.LimitSimple.Count = yyS[yypt-0].item.(*ast.LimitSimple).Count + ret.LimitSimple.Offset = yyS[yypt-0].item.(*ast.LimitSimple).Offset + parser.yyVAL.statement = ret + } + case 1806: { parser.yyVAL.statement = &ast.AdminStmt{ Tp: ast.AdminShowSlow, ShowSlow: yyS[yypt-0].item.(*ast.ShowSlow), } } - case 1802: + case 1807: { parser.yyVAL.statement = &ast.AdminStmt{ Tp: ast.AdminReloadExprPushdownBlacklist, } } - case 1803: + case 1808: { parser.yyVAL.statement = &ast.AdminStmt{ Tp: ast.AdminReloadOptRuleBlacklist, } } - case 1804: + case 1809: { parser.yyVAL.statement = &ast.AdminStmt{ Tp: ast.AdminPluginEnable, Plugins: yyS[yypt-0].item.([]string), } } - case 1805: + case 1810: { parser.yyVAL.statement = &ast.AdminStmt{ Tp: ast.AdminPluginDisable, Plugins: yyS[yypt-0].item.([]string), } } - case 1806: + case 1811: { parser.yyVAL.statement = &ast.CleanupTableLockStmt{ Tables: yyS[yypt-0].item.([]*ast.TableName), } } - case 1807: + case 1812: { parser.yyVAL.statement = &ast.RepairTableStmt{ Table: yyS[yypt-1].item.(*ast.TableName), CreateStmt: yyS[yypt-0].statement.(*ast.CreateTableStmt), } } - case 1808: + case 1813: { parser.yyVAL.statement = &ast.AdminStmt{ Tp: ast.AdminFlushBindings, } } - case 1809: + case 1814: { parser.yyVAL.statement = &ast.AdminStmt{ Tp: ast.AdminCaptureBindings, } } - case 1810: + case 1815: { parser.yyVAL.statement = &ast.AdminStmt{ Tp: ast.AdminEvolveBindings, } } - case 1811: + case 1816: { parser.yyVAL.statement = &ast.AdminStmt{ Tp: ast.AdminReloadBindings, } } - case 1812: + case 1817: { parser.yyVAL.statement = &ast.AdminStmt{ Tp: ast.AdminReloadStatistics, } } - case 1813: + case 1818: { parser.yyVAL.statement = &ast.AdminStmt{ Tp: ast.AdminReloadStatistics, } } - case 1814: + case 1819: { parser.yyVAL.statement = &ast.AdminStmt{ Tp: ast.AdminShowTelemetry, } } - case 1815: + case 1820: { parser.yyVAL.statement = &ast.AdminStmt{ Tp: ast.AdminResetTelemetryID, } } - case 1816: + case 1821: { parser.yyVAL.statement = &ast.AdminStmt{ Tp: ast.AdminFlushPlanCache, StatementScope: yyS[yypt-1].item.(ast.StatementScope), } } - case 1817: + case 1822: { parser.yyVAL.item = &ast.ShowSlow{ Tp: ast.ShowSlowRecent, Count: getUint64FromNUM(yyS[yypt-0].item), } } - case 1818: + case 1823: { parser.yyVAL.item = &ast.ShowSlow{ Tp: ast.ShowSlowTop, @@ -18568,7 +18611,7 @@ yynewstate: Count: getUint64FromNUM(yyS[yypt-0].item), } } - case 1819: + case 1824: { parser.yyVAL.item = &ast.ShowSlow{ Tp: ast.ShowSlowTop, @@ -18576,7 +18619,7 @@ yynewstate: Count: getUint64FromNUM(yyS[yypt-0].item), } } - case 1820: + case 1825: { parser.yyVAL.item = &ast.ShowSlow{ Tp: ast.ShowSlowTop, @@ -18584,27 +18627,27 @@ yynewstate: Count: getUint64FromNUM(yyS[yypt-0].item), } } - case 1821: + case 1826: { parser.yyVAL.item = []ast.HandleRange{yyS[yypt-0].item.(ast.HandleRange)} } - case 1822: + case 1827: { parser.yyVAL.item = append(yyS[yypt-2].item.([]ast.HandleRange), yyS[yypt-0].item.(ast.HandleRange)) } - case 1823: + case 1828: { parser.yyVAL.item = ast.HandleRange{Begin: yyS[yypt-3].item.(int64), End: yyS[yypt-1].item.(int64)} } - case 1824: + case 1829: { parser.yyVAL.item = []int64{yyS[yypt-0].item.(int64)} } - case 1825: + case 1830: { parser.yyVAL.item = append(yyS[yypt-2].item.([]int64), yyS[yypt-0].item.(int64)) } - case 1826: + case 1831: { stmt := yyS[yypt-1].item.(*ast.ShowStmt) if yyS[yypt-0].item != nil { @@ -18616,21 +18659,21 @@ yynewstate: } parser.yyVAL.statement = stmt } - case 1827: + case 1832: { parser.yyVAL.statement = &ast.ShowStmt{ Tp: ast.ShowCreateTable, Table: yyS[yypt-0].item.(*ast.TableName), } } - case 1828: + case 1833: { parser.yyVAL.statement = &ast.ShowStmt{ Tp: ast.ShowCreateView, Table: yyS[yypt-0].item.(*ast.TableName), } } - case 1829: + case 1834: { parser.yyVAL.statement = &ast.ShowStmt{ Tp: ast.ShowCreateDatabase, @@ -18638,21 +18681,21 @@ yynewstate: DBName: yyS[yypt-0].ident, } } - case 1830: + case 1835: { parser.yyVAL.statement = &ast.ShowStmt{ Tp: ast.ShowCreateSequence, Table: yyS[yypt-0].item.(*ast.TableName), } } - case 1831: + case 1836: { parser.yyVAL.statement = &ast.ShowStmt{ Tp: ast.ShowCreatePlacementPolicy, DBName: yyS[yypt-0].ident, } } - case 1832: + case 1837: { // See https://dev.mysql.com/doc/refman/5.7/en/show-create-user.html parser.yyVAL.statement = &ast.ShowStmt{ @@ -18660,14 +18703,14 @@ yynewstate: User: yyS[yypt-0].item.(*auth.UserIdentity), } } - case 1833: + case 1838: { parser.yyVAL.statement = &ast.ShowStmt{ Tp: ast.ShowCreateImport, DBName: yyS[yypt-0].ident, // we reuse DBName of ShowStmt } } - case 1834: + case 1839: { stmt := &ast.ShowStmt{ Tp: ast.ShowRegions, @@ -18679,14 +18722,14 @@ yynewstate: } parser.yyVAL.statement = stmt } - case 1835: + case 1840: { parser.yyVAL.statement = &ast.ShowStmt{ Tp: ast.ShowTableNextRowId, Table: yyS[yypt-1].item.(*ast.TableName), } } - case 1836: + case 1841: { stmt := &ast.ShowStmt{ Tp: ast.ShowRegions, @@ -18699,12 +18742,12 @@ yynewstate: } parser.yyVAL.statement = stmt } - case 1837: + case 1842: { // See https://dev.mysql.com/doc/refman/5.7/en/show-grants.html parser.yyVAL.statement = &ast.ShowStmt{Tp: ast.ShowGrants} } - case 1838: + case 1843: { // See https://dev.mysql.com/doc/refman/5.7/en/show-grants.html if yyS[yypt-0].item != nil { @@ -18721,26 +18764,26 @@ yynewstate: } } } - case 1839: + case 1844: { parser.yyVAL.statement = &ast.ShowStmt{ Tp: ast.ShowMasterStatus, } } - case 1840: + case 1845: { parser.yyVAL.statement = &ast.ShowStmt{ Tp: ast.ShowProcessList, Full: yyS[yypt-1].item.(bool), } } - case 1841: + case 1846: { parser.yyVAL.statement = &ast.ShowStmt{ Tp: ast.ShowProfiles, } } - case 1842: + case 1847: { v := &ast.ShowStmt{ Tp: ast.ShowProfile, @@ -18756,37 +18799,37 @@ yynewstate: } parser.yyVAL.statement = v } - case 1843: + case 1848: { parser.yyVAL.statement = &ast.ShowStmt{ Tp: ast.ShowPrivileges, } } - case 1844: + case 1849: { parser.yyVAL.statement = &ast.ShowStmt{ Tp: ast.ShowBuiltins, } } - case 1845: + case 1850: { parser.yyVAL.statement = yyS[yypt-0].item.(*ast.ShowStmt) } - case 1846: + case 1851: { parser.yyVAL.item = &ast.ShowStmt{ Tp: ast.ShowPlacementForDatabase, DBName: yyS[yypt-0].ident, } } - case 1847: + case 1852: { parser.yyVAL.item = &ast.ShowStmt{ Tp: ast.ShowPlacementForTable, Table: yyS[yypt-0].item.(*ast.TableName), } } - case 1848: + case 1853: { parser.yyVAL.item = &ast.ShowStmt{ Tp: ast.ShowPlacementForPartition, @@ -18794,90 +18837,90 @@ yynewstate: Partition: model.NewCIStr(yyS[yypt-0].ident), } } - case 1849: + case 1854: { parser.yyVAL.item = nil } - case 1851: + case 1856: { parser.yyVAL.item = []int{yyS[yypt-0].item.(int)} } - case 1852: + case 1857: { l := yyS[yypt-2].item.([]int) l = append(l, yyS[yypt-0].item.(int)) parser.yyVAL.item = l } - case 1853: + case 1858: { parser.yyVAL.item = ast.ProfileTypeCPU } - case 1854: + case 1859: { parser.yyVAL.item = ast.ProfileTypeMemory } - case 1855: + case 1860: { parser.yyVAL.item = ast.ProfileTypeBlockIo } - case 1856: + case 1861: { parser.yyVAL.item = ast.ProfileTypeContextSwitch } - case 1857: + case 1862: { parser.yyVAL.item = ast.ProfileTypePageFaults } - case 1858: + case 1863: { parser.yyVAL.item = ast.ProfileTypeIpc } - case 1859: + case 1864: { parser.yyVAL.item = ast.ProfileTypeSwaps } - case 1860: + case 1865: { parser.yyVAL.item = ast.ProfileTypeSource } - case 1861: + case 1866: { parser.yyVAL.item = ast.ProfileTypeAll } - case 1862: + case 1867: { parser.yyVAL.item = nil } - case 1863: + case 1868: { v := yyS[yypt-0].item.(int64) parser.yyVAL.item = &v } - case 1864: + case 1869: { parser.yyVAL.item = nil } - case 1865: + case 1870: { parser.yyVAL.item = yyS[yypt-0].item.([]*auth.RoleIdentity) } - case 1871: + case 1876: { parser.yyVAL.item = &ast.ShowStmt{Tp: ast.ShowEngines} } - case 1872: + case 1877: { parser.yyVAL.item = &ast.ShowStmt{Tp: ast.ShowDatabases} } - case 1873: + case 1878: { parser.yyVAL.item = &ast.ShowStmt{Tp: ast.ShowConfig} } - case 1874: + case 1879: { parser.yyVAL.item = &ast.ShowStmt{Tp: ast.ShowCharset} } - case 1875: + case 1880: { parser.yyVAL.item = &ast.ShowStmt{ Tp: ast.ShowTables, @@ -18885,28 +18928,28 @@ yynewstate: Full: yyS[yypt-2].item.(bool), } } - case 1876: + case 1881: { parser.yyVAL.item = &ast.ShowStmt{ Tp: ast.ShowOpenTables, DBName: yyS[yypt-0].ident, } } - case 1877: + case 1882: { parser.yyVAL.item = &ast.ShowStmt{ Tp: ast.ShowTableStatus, DBName: yyS[yypt-0].ident, } } - case 1878: + case 1883: { parser.yyVAL.item = &ast.ShowStmt{ Tp: ast.ShowIndex, Table: yyS[yypt-0].item.(*ast.TableName), } } - case 1879: + case 1884: { show := &ast.ShowStmt{ Tp: ast.ShowIndex, @@ -18914,7 +18957,7 @@ yynewstate: } parser.yyVAL.item = show } - case 1880: + case 1885: { parser.yyVAL.item = &ast.ShowStmt{ Tp: ast.ShowColumns, @@ -18923,7 +18966,7 @@ yynewstate: Full: yyS[yypt-3].item.(bool), } } - case 1881: + case 1886: { parser.yyVAL.item = &ast.ShowStmt{ Tp: ast.ShowColumns, @@ -18933,81 +18976,81 @@ yynewstate: Extended: true, } } - case 1882: + case 1887: { parser.yyVAL.item = &ast.ShowStmt{Tp: ast.ShowWarnings, CountWarningsOrErrors: true} } - case 1883: + case 1888: { parser.yyVAL.item = &ast.ShowStmt{Tp: ast.ShowWarnings} } - case 1884: + case 1889: { parser.yyVAL.item = &ast.ShowStmt{Tp: ast.ShowErrors, CountWarningsOrErrors: true} } - case 1885: + case 1890: { parser.yyVAL.item = &ast.ShowStmt{Tp: ast.ShowErrors} } - case 1886: + case 1891: { parser.yyVAL.item = &ast.ShowStmt{ Tp: ast.ShowVariables, GlobalScope: yyS[yypt-1].item.(bool), } } - case 1887: + case 1892: { parser.yyVAL.item = &ast.ShowStmt{ Tp: ast.ShowStatus, GlobalScope: yyS[yypt-1].item.(bool), } } - case 1888: + case 1893: { parser.yyVAL.item = &ast.ShowStmt{ Tp: ast.ShowBindings, GlobalScope: yyS[yypt-1].item.(bool), } } - case 1889: + case 1894: { parser.yyVAL.item = &ast.ShowStmt{ Tp: ast.ShowCollation, } } - case 1890: + case 1895: { parser.yyVAL.item = &ast.ShowStmt{ Tp: ast.ShowTriggers, DBName: yyS[yypt-0].ident, } } - case 1891: + case 1896: { parser.yyVAL.item = &ast.ShowStmt{ Tp: ast.ShowBindingCacheStatus, } } - case 1892: + case 1897: { parser.yyVAL.item = &ast.ShowStmt{ Tp: ast.ShowProcedureStatus, } } - case 1893: + case 1898: { parser.yyVAL.item = &ast.ShowStmt{ Tp: ast.ShowPumpStatus, } } - case 1894: + case 1899: { parser.yyVAL.item = &ast.ShowStmt{ Tp: ast.ShowDrainerStatus, } } - case 1895: + case 1900: { // This statement is similar to SHOW PROCEDURE STATUS but for stored functions. // See http://dev.mysql.com/doc/refman/5.7/en/show-function-status.html @@ -19017,189 +19060,189 @@ yynewstate: Tp: ast.ShowProcedureStatus, } } - case 1896: + case 1901: { parser.yyVAL.item = &ast.ShowStmt{ Tp: ast.ShowEvents, DBName: yyS[yypt-0].ident, } } - case 1897: + case 1902: { parser.yyVAL.item = &ast.ShowStmt{ Tp: ast.ShowPlugins, } } - case 1898: + case 1903: { parser.yyVAL.item = &ast.ShowStmt{Tp: ast.ShowSessionStates} } - case 1899: + case 1904: { parser.yyVAL.item = &ast.ShowStmt{Tp: ast.ShowStatsExtended} } - case 1900: + case 1905: { parser.yyVAL.item = &ast.ShowStmt{Tp: ast.ShowStatsMeta, Table: &ast.TableName{Name: model.NewCIStr("STATS_META"), Schema: model.NewCIStr(mysql.SystemDB)}} } - case 1901: + case 1906: { parser.yyVAL.item = &ast.ShowStmt{Tp: ast.ShowStatsHistograms, Table: &ast.TableName{Name: model.NewCIStr("STATS_HISTOGRAMS"), Schema: model.NewCIStr(mysql.SystemDB)}} } - case 1902: + case 1907: { parser.yyVAL.item = &ast.ShowStmt{Tp: ast.ShowStatsTopN} } - case 1903: + case 1908: { parser.yyVAL.item = &ast.ShowStmt{Tp: ast.ShowStatsBuckets, Table: &ast.TableName{Name: model.NewCIStr("STATS_BUCKETS"), Schema: model.NewCIStr(mysql.SystemDB)}} } - case 1904: + case 1909: { parser.yyVAL.item = &ast.ShowStmt{Tp: ast.ShowStatsHealthy} } - case 1905: + case 1910: { parser.yyVAL.item = &ast.ShowStmt{Tp: ast.ShowHistogramsInFlight} } - case 1906: + case 1911: { parser.yyVAL.item = &ast.ShowStmt{Tp: ast.ShowColumnStatsUsage} } - case 1907: + case 1912: { parser.yyVAL.item = &ast.ShowStmt{Tp: ast.ShowAnalyzeStatus} } - case 1908: + case 1913: { parser.yyVAL.item = &ast.ShowStmt{Tp: ast.ShowBackups} } - case 1909: + case 1914: { parser.yyVAL.item = &ast.ShowStmt{Tp: ast.ShowRestores} } - case 1910: + case 1915: { parser.yyVAL.item = &ast.ShowStmt{Tp: ast.ShowImports} } - case 1911: + case 1916: { parser.yyVAL.item = &ast.ShowStmt{Tp: ast.ShowPlacement} } - case 1912: + case 1917: { parser.yyVAL.item = &ast.ShowStmt{Tp: ast.ShowPlacementLabels} } - case 1913: + case 1918: { parser.yyVAL.item = nil } - case 1914: + case 1919: { parser.yyVAL.item = &ast.PatternLikeExpr{ Pattern: yyS[yypt-0].expr, Escape: '\\', } } - case 1915: + case 1920: { parser.yyVAL.item = yyS[yypt-0].expr } - case 1916: + case 1921: { parser.yyVAL.item = false } - case 1917: + case 1922: { parser.yyVAL.item = true } - case 1918: + case 1923: { parser.yyVAL.item = false } - case 1919: + case 1924: { parser.yyVAL.item = ast.StatementScopeSession } - case 1920: + case 1925: { parser.yyVAL.item = ast.StatementScopeGlobal } - case 1921: + case 1926: { parser.yyVAL.item = ast.StatementScopeInstance } - case 1922: + case 1927: { parser.yyVAL.item = ast.StatementScopeSession } - case 1923: + case 1928: { parser.yyVAL.item = false } - case 1924: + case 1929: { parser.yyVAL.item = true } - case 1925: + case 1930: { parser.yyVAL.ident = "" } - case 1926: + case 1931: { parser.yyVAL.ident = yyS[yypt-0].ident } - case 1927: + case 1932: { parser.yyVAL.item = yyS[yypt-0].item.(*ast.TableName) } - case 1928: + case 1933: { tmp := yyS[yypt-0].item.(*ast.FlushStmt) tmp.NoWriteToBinLog = yyS[yypt-1].item.(bool) parser.yyVAL.statement = tmp } - case 1929: + case 1934: { parser.yyVAL.item = []string{yyS[yypt-0].ident} } - case 1930: + case 1935: { parser.yyVAL.item = append(yyS[yypt-2].item.([]string), yyS[yypt-0].ident) } - case 1931: + case 1936: { parser.yyVAL.item = &ast.FlushStmt{ Tp: ast.FlushPrivileges, } } - case 1932: + case 1937: { parser.yyVAL.item = &ast.FlushStmt{ Tp: ast.FlushStatus, } } - case 1933: + case 1938: { parser.yyVAL.item = &ast.FlushStmt{ Tp: ast.FlushTiDBPlugin, Plugins: yyS[yypt-0].item.([]string), } } - case 1934: + case 1939: { parser.yyVAL.item = &ast.FlushStmt{ Tp: ast.FlushHosts, } } - case 1935: + case 1940: { parser.yyVAL.item = &ast.FlushStmt{ Tp: ast.FlushLogs, LogType: yyS[yypt-1].item.(ast.LogType), } } - case 1936: + case 1941: { parser.yyVAL.item = &ast.FlushStmt{ Tp: ast.FlushTables, @@ -19207,69 +19250,69 @@ yynewstate: ReadLock: yyS[yypt-0].item.(bool), } } - case 1937: + case 1942: { parser.yyVAL.item = &ast.FlushStmt{ Tp: ast.FlushClientErrorsSummary, } } - case 1938: + case 1943: { parser.yyVAL.item = ast.LogTypeDefault } - case 1939: + case 1944: { parser.yyVAL.item = ast.LogTypeBinary } - case 1940: + case 1945: { parser.yyVAL.item = ast.LogTypeEngine } - case 1941: + case 1946: { parser.yyVAL.item = ast.LogTypeError } - case 1942: + case 1947: { parser.yyVAL.item = ast.LogTypeGeneral } - case 1943: + case 1948: { parser.yyVAL.item = ast.LogTypeSlow } - case 1944: + case 1949: { parser.yyVAL.item = false } - case 1945: + case 1950: { parser.yyVAL.item = true } - case 1946: + case 1951: { parser.yyVAL.item = true } - case 1947: + case 1952: { parser.yyVAL.item = []*ast.TableName{} } - case 1949: + case 1954: { parser.yyVAL.item = []*ast.TableName{} } - case 1950: + case 1955: { parser.yyVAL.item = yyS[yypt-0].item } - case 1951: + case 1956: { parser.yyVAL.item = false } - case 1952: + case 1957: { parser.yyVAL.item = true } - case 2023: + case 2028: { var sel ast.StmtNode switch x := yyS[yypt-0].expr.(*ast.SubqueryExpr).Query.(type) { @@ -19282,7 +19325,7 @@ yynewstate: } parser.yyVAL.statement = sel } - case 2049: + case 2054: { var sel ast.StmtNode switch x := yyS[yypt-0].expr.(*ast.SubqueryExpr).Query.(type) { @@ -19295,7 +19338,7 @@ yynewstate: } parser.yyVAL.statement = sel } - case 2064: + case 2069: { var sel ast.StmtNode switch x := yyS[yypt-0].expr.(*ast.SubqueryExpr).Query.(type) { @@ -19308,7 +19351,7 @@ yynewstate: } parser.yyVAL.statement = sel } - case 2066: + case 2071: { if yyS[yypt-0].statement != nil { s := yyS[yypt-0].statement @@ -19318,7 +19361,7 @@ yynewstate: parser.result = append(parser.result, s) } } - case 2067: + case 2072: { if yyS[yypt-0].statement != nil { s := yyS[yypt-0].statement @@ -19328,7 +19371,7 @@ yynewstate: parser.result = append(parser.result, s) } } - case 2068: + case 2073: { cst := yyS[yypt-0].item.(*ast.Constraint) if yyS[yypt-1].item != nil { @@ -19336,7 +19379,7 @@ yynewstate: } parser.yyVAL.item = cst } - case 2073: + case 2078: { if yyS[yypt-0].item != nil { parser.yyVAL.item = []interface{}{yyS[yypt-0].item.(interface{})} @@ -19344,7 +19387,7 @@ yynewstate: parser.yyVAL.item = []interface{}{} } } - case 2074: + case 2079: { if yyS[yypt-0].item != nil { parser.yyVAL.item = append(yyS[yypt-2].item.([]interface{}), yyS[yypt-0].item) @@ -19352,7 +19395,7 @@ yynewstate: parser.yyVAL.item = yyS[yypt-2].item } } - case 2075: + case 2080: { var columnDefs []*ast.ColumnDef var constraints []*ast.Constraint @@ -19361,7 +19404,7 @@ yynewstate: Constraints: constraints, } } - case 2076: + case 2081: { tes := yyS[yypt-1].item.([]interface{}) var columnDefs []*ast.ColumnDef @@ -19379,69 +19422,69 @@ yynewstate: Constraints: constraints, } } - case 2078: + case 2083: { parser.yyVAL.item = &ast.TableOption{Tp: ast.TableOptionCharset, StrValue: yyS[yypt-0].ident, UintValue: ast.TableOptionCharsetWithoutConvertTo} } - case 2079: + case 2084: { parser.yyVAL.item = &ast.TableOption{Tp: ast.TableOptionCollate, StrValue: yyS[yypt-0].ident, UintValue: ast.TableOptionCharsetWithoutConvertTo} } - case 2080: + case 2085: { parser.yyVAL.item = &ast.TableOption{Tp: ast.TableOptionAutoIncrement, UintValue: yyS[yypt-0].item.(uint64), BoolValue: yyS[yypt-3].item.(bool)} } - case 2081: + case 2086: { parser.yyVAL.item = &ast.TableOption{Tp: ast.TableOptionAutoIdCache, UintValue: yyS[yypt-0].item.(uint64)} } - case 2082: + case 2087: { parser.yyVAL.item = &ast.TableOption{Tp: ast.TableOptionAutoRandomBase, UintValue: yyS[yypt-0].item.(uint64), BoolValue: yyS[yypt-3].item.(bool)} } - case 2083: + case 2088: { parser.yyVAL.item = &ast.TableOption{Tp: ast.TableOptionAvgRowLength, UintValue: yyS[yypt-0].item.(uint64)} } - case 2084: + case 2089: { parser.yyVAL.item = &ast.TableOption{Tp: ast.TableOptionConnection, StrValue: yyS[yypt-0].ident} } - case 2085: + case 2090: { parser.yyVAL.item = &ast.TableOption{Tp: ast.TableOptionCheckSum, UintValue: yyS[yypt-0].item.(uint64)} } - case 2086: + case 2091: { parser.yyVAL.item = &ast.TableOption{Tp: ast.TableOptionTableCheckSum, UintValue: yyS[yypt-0].item.(uint64)} } - case 2087: + case 2092: { parser.yyVAL.item = &ast.TableOption{Tp: ast.TableOptionPassword, StrValue: yyS[yypt-0].ident} } - case 2088: + case 2093: { parser.yyVAL.item = &ast.TableOption{Tp: ast.TableOptionCompression, StrValue: yyS[yypt-0].ident} } - case 2089: + case 2094: { parser.yyVAL.item = &ast.TableOption{Tp: ast.TableOptionKeyBlockSize, UintValue: yyS[yypt-0].item.(uint64)} } - case 2090: + case 2095: { parser.yyVAL.item = &ast.TableOption{Tp: ast.TableOptionDelayKeyWrite, UintValue: yyS[yypt-0].item.(uint64)} } - case 2091: + case 2096: { parser.yyVAL.item = &ast.TableOption{Tp: ast.TableOptionRowFormat, UintValue: yyS[yypt-0].item.(uint64)} } - case 2092: + case 2097: { parser.yyVAL.item = &ast.TableOption{Tp: ast.TableOptionStatsPersistent} } - case 2093: + case 2098: { n := yyS[yypt-0].item.(uint64) if n != 0 && n != 1 { @@ -19452,13 +19495,13 @@ yynewstate: yylex.AppendError(yylex.Errorf("The STATS_AUTO_RECALC is parsed but ignored by all storage engines.")) parser.lastErrorAsWarn() } - case 2094: + case 2099: { parser.yyVAL.item = &ast.TableOption{Tp: ast.TableOptionStatsAutoRecalc, Default: true} yylex.AppendError(yylex.Errorf("The STATS_AUTO_RECALC is parsed but ignored by all storage engines.")) parser.lastErrorAsWarn() } - case 2095: + case 2100: { // Parse it but will ignore it. // In MySQL, STATS_SAMPLE_PAGES=N(Where 0 1 { @@ -21165,7 +21220,7 @@ yynewstate: OptEnclosed: true, } } - case 2416: + case 2421: { str := yyS[yypt-0].ident if str != "\\" && len(str) > 1 { @@ -21177,7 +21232,7 @@ yynewstate: Value: str, } } - case 2417: + case 2422: { str := yyS[yypt-0].ident if str != "\\" && len(str) > 1 { @@ -21189,104 +21244,104 @@ yynewstate: Value: str, } } - case 2419: + case 2424: { parser.yyVAL.ident = yyS[yypt-0].item.(ast.BinaryLiteral).ToString() } - case 2420: + case 2425: { parser.yyVAL.ident = yyS[yypt-0].item.(ast.BinaryLiteral).ToString() } - case 2421: + case 2426: { parser.yyVAL.item = &ast.LinesClause{Terminated: "\n"} } - case 2422: + case 2427: { parser.yyVAL.item = &ast.LinesClause{Starting: yyS[yypt-1].ident, Terminated: yyS[yypt-0].ident} } - case 2423: + case 2428: { parser.yyVAL.ident = "" } - case 2424: + case 2429: { parser.yyVAL.ident = yyS[yypt-0].ident } - case 2425: + case 2430: { parser.yyVAL.ident = "\n" } - case 2426: + case 2431: { parser.yyVAL.ident = yyS[yypt-0].ident } - case 2427: + case 2432: { parser.yyVAL.item = nil } - case 2428: + case 2433: { parser.yyVAL.item = yyS[yypt-0].item } - case 2429: + case 2434: { l := yyS[yypt-2].item.([]*ast.Assignment) parser.yyVAL.item = append(l, yyS[yypt-0].item.(*ast.Assignment)) } - case 2430: + case 2435: { parser.yyVAL.item = []*ast.Assignment{yyS[yypt-0].item.(*ast.Assignment)} } - case 2431: + case 2436: { parser.yyVAL.item = &ast.Assignment{ Column: yyS[yypt-2].expr.(*ast.ColumnNameExpr).Name, Expr: yyS[yypt-0].expr, } } - case 2432: + case 2437: { parser.yyVAL.statement = &ast.UnlockTablesStmt{} } - case 2433: + case 2438: { parser.yyVAL.statement = &ast.LockTablesStmt{ TableLocks: yyS[yypt-0].item.([]ast.TableLock), } } - case 2436: + case 2441: { parser.yyVAL.item = ast.TableLock{ Table: yyS[yypt-1].item.(*ast.TableName), Type: yyS[yypt-0].item.(model.TableLockType), } } - case 2437: + case 2442: { parser.yyVAL.item = model.TableLockRead } - case 2438: + case 2443: { parser.yyVAL.item = model.TableLockReadLocal } - case 2439: + case 2444: { parser.yyVAL.item = model.TableLockWrite } - case 2440: + case 2445: { parser.yyVAL.item = model.TableLockWriteLocal } - case 2441: + case 2446: { parser.yyVAL.item = []ast.TableLock{yyS[yypt-0].item.(ast.TableLock)} } - case 2442: + case 2447: { parser.yyVAL.item = append(yyS[yypt-2].item.([]ast.TableLock), yyS[yypt-0].item.(ast.TableLock)) } - case 2443: + case 2448: { parser.yyVAL.statement = &ast.NonTransactionalDeleteStmt{ DryRun: yyS[yypt-1].item.(int), @@ -21295,41 +21350,41 @@ yynewstate: DeleteStmt: yyS[yypt-0].statement.(*ast.DeleteStmt), } } - case 2444: + case 2449: { parser.yyVAL.item = ast.NoDryRun } - case 2445: + case 2450: { parser.yyVAL.item = ast.DryRunSplitDml } - case 2446: + case 2451: { parser.yyVAL.item = ast.DryRunQuery } - case 2447: + case 2452: { parser.yyVAL.item = (*ast.ColumnName)(nil) } - case 2448: + case 2453: { parser.yyVAL.item = yyS[yypt-0].item.(*ast.ColumnName) } - case 2449: + case 2454: { parser.yyVAL.statement = &ast.KillStmt{ ConnectionID: getUint64FromNUM(yyS[yypt-0].item), TiDBExtension: yyS[yypt-1].item.(bool), } } - case 2450: + case 2455: { parser.yyVAL.statement = &ast.KillStmt{ ConnectionID: getUint64FromNUM(yyS[yypt-0].item), TiDBExtension: yyS[yypt-2].item.(bool), } } - case 2451: + case 2456: { parser.yyVAL.statement = &ast.KillStmt{ ConnectionID: getUint64FromNUM(yyS[yypt-0].item), @@ -21337,28 +21392,28 @@ yynewstate: TiDBExtension: yyS[yypt-2].item.(bool), } } - case 2452: + case 2457: { parser.yyVAL.item = false } - case 2453: + case 2458: { parser.yyVAL.item = true } - case 2454: + case 2459: { parser.yyVAL.statement = &ast.LoadStatsStmt{ Path: yyS[yypt-0].ident, } } - case 2455: + case 2460: { parser.yyVAL.statement = &ast.DropPlacementPolicyStmt{ IfExists: yyS[yypt-1].item.(bool), PolicyName: model.NewCIStr(yyS[yypt-0].ident), } } - case 2456: + case 2461: { parser.yyVAL.statement = &ast.CreatePlacementPolicyStmt{ OrReplace: yyS[yypt-5].item.(bool), @@ -21367,7 +21422,7 @@ yynewstate: PlacementOptions: yyS[yypt-0].item.([]*ast.PlacementOption), } } - case 2457: + case 2462: { parser.yyVAL.statement = &ast.AlterPlacementPolicyStmt{ IfExists: yyS[yypt-2].item.(bool), @@ -21375,7 +21430,7 @@ yynewstate: PlacementOptions: yyS[yypt-0].item.([]*ast.PlacementOption), } } - case 2458: + case 2463: { parser.yyVAL.statement = &ast.CreateSequenceStmt{ IfNotExists: yyS[yypt-3].item.(bool), @@ -21384,87 +21439,87 @@ yynewstate: TblOptions: yyS[yypt-0].item.([]*ast.TableOption), } } - case 2459: + case 2464: { parser.yyVAL.item = []*ast.SequenceOption{} } - case 2461: + case 2466: { parser.yyVAL.item = []*ast.SequenceOption{yyS[yypt-0].item.(*ast.SequenceOption)} } - case 2462: + case 2467: { parser.yyVAL.item = append(yyS[yypt-1].item.([]*ast.SequenceOption), yyS[yypt-0].item.(*ast.SequenceOption)) } - case 2463: + case 2468: { parser.yyVAL.item = &ast.SequenceOption{Tp: ast.SequenceOptionIncrementBy, IntValue: yyS[yypt-0].item.(int64)} } - case 2464: + case 2469: { parser.yyVAL.item = &ast.SequenceOption{Tp: ast.SequenceOptionIncrementBy, IntValue: yyS[yypt-0].item.(int64)} } - case 2465: + case 2470: { parser.yyVAL.item = &ast.SequenceOption{Tp: ast.SequenceStartWith, IntValue: yyS[yypt-0].item.(int64)} } - case 2466: + case 2471: { parser.yyVAL.item = &ast.SequenceOption{Tp: ast.SequenceStartWith, IntValue: yyS[yypt-0].item.(int64)} } - case 2467: + case 2472: { parser.yyVAL.item = &ast.SequenceOption{Tp: ast.SequenceMinValue, IntValue: yyS[yypt-0].item.(int64)} } - case 2468: + case 2473: { parser.yyVAL.item = &ast.SequenceOption{Tp: ast.SequenceNoMinValue} } - case 2469: + case 2474: { parser.yyVAL.item = &ast.SequenceOption{Tp: ast.SequenceNoMinValue} } - case 2470: + case 2475: { parser.yyVAL.item = &ast.SequenceOption{Tp: ast.SequenceMaxValue, IntValue: yyS[yypt-0].item.(int64)} } - case 2471: + case 2476: { parser.yyVAL.item = &ast.SequenceOption{Tp: ast.SequenceNoMaxValue} } - case 2472: + case 2477: { parser.yyVAL.item = &ast.SequenceOption{Tp: ast.SequenceNoMaxValue} } - case 2473: + case 2478: { parser.yyVAL.item = &ast.SequenceOption{Tp: ast.SequenceCache, IntValue: yyS[yypt-0].item.(int64)} } - case 2474: + case 2479: { parser.yyVAL.item = &ast.SequenceOption{Tp: ast.SequenceNoCache} } - case 2475: + case 2480: { parser.yyVAL.item = &ast.SequenceOption{Tp: ast.SequenceNoCache} } - case 2476: + case 2481: { parser.yyVAL.item = &ast.SequenceOption{Tp: ast.SequenceCycle} } - case 2477: + case 2482: { parser.yyVAL.item = &ast.SequenceOption{Tp: ast.SequenceNoCycle} } - case 2478: + case 2483: { parser.yyVAL.item = &ast.SequenceOption{Tp: ast.SequenceNoCycle} } - case 2480: + case 2485: { parser.yyVAL.item = yyS[yypt-0].item } - case 2481: + case 2486: { unsigned_num := getUint64FromNUM(yyS[yypt-0].item) if unsigned_num > 9223372036854775808 { @@ -21477,14 +21532,14 @@ yynewstate: parser.yyVAL.item = -int64(unsigned_num) } } - case 2482: + case 2487: { parser.yyVAL.statement = &ast.DropSequenceStmt{ IfExists: yyS[yypt-1].item.(bool), Sequences: yyS[yypt-0].item.([]*ast.TableName), } } - case 2483: + case 2488: { parser.yyVAL.statement = &ast.AlterSequenceStmt{ IfExists: yyS[yypt-2].item.(bool), @@ -21492,27 +21547,27 @@ yynewstate: SeqOptions: yyS[yypt-0].item.([]*ast.SequenceOption), } } - case 2484: + case 2489: { parser.yyVAL.item = []*ast.SequenceOption{yyS[yypt-0].item.(*ast.SequenceOption)} } - case 2485: + case 2490: { parser.yyVAL.item = append(yyS[yypt-1].item.([]*ast.SequenceOption), yyS[yypt-0].item.(*ast.SequenceOption)) } - case 2487: + case 2492: { parser.yyVAL.item = &ast.SequenceOption{Tp: ast.SequenceRestart} } - case 2488: + case 2493: { parser.yyVAL.item = &ast.SequenceOption{Tp: ast.SequenceRestartWith, IntValue: yyS[yypt-0].item.(int64)} } - case 2489: + case 2494: { parser.yyVAL.item = &ast.SequenceOption{Tp: ast.SequenceRestartWith, IntValue: yyS[yypt-0].item.(int64)} } - case 2490: + case 2495: { x := &ast.IndexAdviseStmt{ Path: yyS[yypt-3].ident, @@ -21529,42 +21584,42 @@ yynewstate: } parser.yyVAL.statement = x } - case 2491: + case 2496: { parser.yyVAL.item = uint64(ast.UnspecifiedSize) } - case 2492: + case 2497: { parser.yyVAL.item = getUint64FromNUM(yyS[yypt-0].item) } - case 2493: + case 2498: { parser.yyVAL.item = nil } - case 2494: + case 2499: { parser.yyVAL.item = &ast.MaxIndexNumClause{ PerTable: yyS[yypt-1].item.(uint64), PerDB: yyS[yypt-0].item.(uint64), } } - case 2495: + case 2500: { parser.yyVAL.item = uint64(ast.UnspecifiedSize) } - case 2496: + case 2501: { parser.yyVAL.item = getUint64FromNUM(yyS[yypt-0].item) } - case 2497: + case 2502: { parser.yyVAL.item = uint64(ast.UnspecifiedSize) } - case 2498: + case 2503: { parser.yyVAL.item = getUint64FromNUM(yyS[yypt-0].item) } - case 2499: + case 2504: { // Parse it but will ignore it switch yyS[yypt-0].ident { @@ -21579,19 +21634,19 @@ yynewstate: } parser.yyVAL.ident = yyS[yypt-0].ident } - case 2500: + case 2505: { parser.yyVAL.item = append([]*ast.RowExpr{}, yyS[yypt-0].item.(*ast.RowExpr)) } - case 2501: + case 2506: { parser.yyVAL.item = append(yyS[yypt-2].item.([]*ast.RowExpr), yyS[yypt-0].item.(*ast.RowExpr)) } - case 2502: + case 2507: { parser.yyVAL.item = &ast.RowExpr{Values: yyS[yypt-0].item.([]ast.ExprNode)} } - case 2503: + case 2508: { x := &ast.PlanReplayerStmt{ Stmt: yyS[yypt-0].statement, @@ -21607,7 +21662,7 @@ yynewstate: parser.yyVAL.statement = x } - case 2504: + case 2509: { x := &ast.PlanReplayerStmt{ Stmt: yyS[yypt-0].statement, @@ -21623,7 +21678,7 @@ yynewstate: parser.yyVAL.statement = x } - case 2505: + case 2510: { x := &ast.PlanReplayerStmt{ Stmt: nil, @@ -21643,7 +21698,7 @@ yynewstate: parser.yyVAL.statement = x } - case 2506: + case 2511: { x := &ast.PlanReplayerStmt{ Stmt: nil, @@ -21663,7 +21718,7 @@ yynewstate: parser.yyVAL.statement = x } - case 2507: + case 2512: { x := &ast.PlanReplayerStmt{ Stmt: nil, diff --git a/parser/parser.y b/parser/parser.y index 52311bef662fa..aaba8cadd807e 100644 --- a/parser/parser.y +++ b/parser/parser.y @@ -953,6 +953,7 @@ import ( %type AdminShowSlow "Admin Show Slow statement" + AdminStmtLimitOpt "Admin show ddl jobs limit option" AllOrPartitionNameList "All or partition name list" AlgorithmClause "Alter table algorithm" AlterTablePartitionOpt "Alter table partition option" @@ -1517,6 +1518,13 @@ AlterTableStmt: AnalyzeOpts: $10.([]ast.AnalyzeOpt), } } +| "ALTER" IgnoreOptional "TABLE" TableName "COMPACT" + { + $$ = &ast.CompactTableStmt{ + Table: $4.(*ast.TableName), + ReplicaKind: ast.CompactReplicaKindAll, + } + } | "ALTER" IgnoreOptional "TABLE" TableName "COMPACT" "TIFLASH" "REPLICA" { $$ = &ast.CompactTableStmt{ @@ -10127,6 +10135,20 @@ RolenameList: } /****************************Admin Statement*******************************/ +AdminStmtLimitOpt: + "LIMIT" LengthNum + { + $$ = &ast.LimitSimple{Offset: 0, Count: $2.(uint64)} + } +| "LIMIT" LengthNum ',' LengthNum + { + $$ = &ast.LimitSimple{Offset: $2.(uint64), Count: $4.(uint64)} + } +| "LIMIT" LengthNum "OFFSET" LengthNum + { + $$ = &ast.LimitSimple{Offset: $4.(uint64), Count: $2.(uint64)} + } + AdminStmt: "ADMIN" "SHOW" "DDL" { @@ -10219,6 +10241,15 @@ AdminStmt: JobIDs: $6.([]int64), } } +| "ADMIN" "SHOW" "DDL" "JOB" "QUERIES" AdminStmtLimitOpt + { + ret := &ast.AdminStmt{ + Tp: ast.AdminShowDDLJobQueriesWithRange, + } + ret.LimitSimple.Count = $6.(*ast.LimitSimple).Count + ret.LimitSimple.Offset = $6.(*ast.LimitSimple).Offset + $$ = ret + } | "ADMIN" "SHOW" "SLOW" AdminShowSlow { $$ = &ast.AdminStmt{ @@ -11904,6 +11935,10 @@ StringType: { tp := $1.(*types.FieldType) tp.SetCharset($2.(*ast.OptBinary).Charset) + if $2.(*ast.OptBinary).Charset == charset.CharsetBin { + tp.AddFlag(mysql.BinaryFlag) + tp.SetCollate(charset.CollationBin) + } if $2.(*ast.OptBinary).IsBinary { tp.AddFlag(mysql.BinaryFlag) } @@ -11961,6 +11996,10 @@ StringType: { tp := types.NewFieldType(mysql.TypeMediumBlob) tp.SetCharset($3.(*ast.OptBinary).Charset) + if $3.(*ast.OptBinary).Charset == charset.CharsetBin { + tp.AddFlag(mysql.BinaryFlag) + tp.SetCollate(charset.CollationBin) + } if $3.(*ast.OptBinary).IsBinary { tp.AddFlag(mysql.BinaryFlag) } @@ -11970,6 +12009,10 @@ StringType: { tp := types.NewFieldType(mysql.TypeMediumBlob) tp.SetCharset($2.(*ast.OptBinary).Charset) + if $2.(*ast.OptBinary).Charset == charset.CharsetBin { + tp.AddFlag(mysql.BinaryFlag) + tp.SetCollate(charset.CollationBin) + } if $2.(*ast.OptBinary).IsBinary { tp.AddFlag(mysql.BinaryFlag) } @@ -12081,7 +12124,7 @@ OptCharsetWithOptBinary: { $$ = &ast.OptBinary{ IsBinary: false, - Charset: "", + Charset: charset.CharsetBin, } } diff --git a/parser/parser_test.go b/parser/parser_test.go index ee5c9fc7e384c..57550a440a8cf 100644 --- a/parser/parser_test.go +++ b/parser/parser_test.go @@ -795,6 +795,10 @@ func TestDMLStmt(t *testing.T) { {"admin show ddl jobs -1;", false, ""}, {"admin show ddl job queries 1", true, "ADMIN SHOW DDL JOB QUERIES 1"}, {"admin show ddl job queries 1, 2, 3, 4", true, "ADMIN SHOW DDL JOB QUERIES 1, 2, 3, 4"}, + {"admin show ddl job queries limit 5", true, "ADMIN SHOW DDL JOB QUERIES LIMIT 0, 5"}, + {"admin show ddl job queries limit 5, 10", true, "ADMIN SHOW DDL JOB QUERIES LIMIT 5, 10"}, + {"admin show ddl job queries limit 3 offset 2", true, "ADMIN SHOW DDL JOB QUERIES LIMIT 2, 3"}, + {"admin show ddl job queries limit 22 offset 0", true, "ADMIN SHOW DDL JOB QUERIES LIMIT 0, 22"}, {"admin show t1 next_row_id", true, "ADMIN SHOW `t1` NEXT_ROW_ID"}, {"admin check table t1, t2;", true, "ADMIN CHECK TABLE `t1`, `t2`"}, {"admin check index tableName idxName;", true, "ADMIN CHECK INDEX `tableName` idxName"}, @@ -3397,8 +3401,8 @@ func TestDDL(t *testing.T) { {"create table t (a longtext ascii)", true, "CREATE TABLE `t` (`a` LONGTEXT CHARACTER SET LATIN1)"}, {"create table t (a mediumtext ascii)", true, "CREATE TABLE `t` (`a` MEDIUMTEXT CHARACTER SET LATIN1)"}, {"create table t (a tinytext ascii)", true, "CREATE TABLE `t` (`a` TINYTEXT CHARACTER SET LATIN1)"}, - {"create table t (a text byte)", true, "CREATE TABLE `t` (`a` TEXT)"}, - {"create table t (a long byte, b text ascii)", true, "CREATE TABLE `t` (`a` MEDIUMTEXT,`b` TEXT CHARACTER SET LATIN1)"}, + {"create table t (a text byte)", true, "CREATE TABLE `t` (`a` BLOB)"}, + {"create table t (a long byte, b text ascii)", true, "CREATE TABLE `t` (`a` MEDIUMBLOB,`b` TEXT CHARACTER SET LATIN1)"}, {"create table t (a text ascii, b mediumtext ascii, c int)", true, "CREATE TABLE `t` (`a` TEXT CHARACTER SET LATIN1,`b` MEDIUMTEXT CHARACTER SET LATIN1,`c` INT)"}, {"create table t (a int, b text ascii, c mediumtext ascii)", true, "CREATE TABLE `t` (`a` INT,`b` TEXT CHARACTER SET LATIN1,`c` MEDIUMTEXT CHARACTER SET LATIN1)"}, {"create table t (a long ascii, b long ascii)", true, "CREATE TABLE `t` (`a` MEDIUMTEXT CHARACTER SET LATIN1,`b` MEDIUMTEXT CHARACTER SET LATIN1)"}, @@ -4229,6 +4233,16 @@ func TestOptimizerHints(t *testing.T) { require.Equal(t, "limit_to_cop", hints[0].HintName.L) require.Equal(t, "limit_to_cop", hints[1].HintName.L) + // Test CTE MERGE + stmt, _, err = p.Parse("with cte(x) as (select * from t1) select /*+ MERGE(), merge() */ * from cte;", "", "") + require.NoError(t, err) + selectStmt = stmt[0].(*ast.SelectStmt) + + hints = selectStmt.TableHints + require.Len(t, hints, 2) + require.Equal(t, "merge", hints[0].HintName.L) + require.Equal(t, "merge", hints[1].HintName.L) + // Test STRAIGHT_JOIN stmt, _, err = p.Parse("select /*+ STRAIGHT_JOIN(), straight_join() */ c1, c2 from t1, t2 where t1.c1 = t2.c1", "", "") require.NoError(t, err) @@ -4892,6 +4906,8 @@ func TestExplain(t *testing.T) { {"EXPLAIN FORMAT = JSON FOR CONNECTION 1", true, "EXPLAIN FORMAT = 'JSON' FOR CONNECTION 1"}, {"EXPLAIN FORMAT = JSON SELECT 1", true, "EXPLAIN FORMAT = 'JSON' SELECT 1"}, {"EXPLAIN FORMAT = 'hint' SELECT 1", true, "EXPLAIN FORMAT = 'hint' SELECT 1"}, + {"EXPLAIN ANALYZE FORMAT = 'verbose' SELECT 1", true, "EXPLAIN ANALYZE FORMAT = 'verbose' SELECT 1"}, + {"EXPLAIN ANALYZE FORMAT = 'binary' SELECT 1", true, "EXPLAIN ANALYZE FORMAT = 'binary' SELECT 1"}, {"EXPLAIN ALTER TABLE t1 ADD INDEX (a)", true, "EXPLAIN FORMAT = 'row' ALTER TABLE `t1` ADD INDEX(`a`)"}, {"EXPLAIN ALTER TABLE t1 ADD a varchar(255)", true, "EXPLAIN FORMAT = 'row' ALTER TABLE `t1` ADD COLUMN `a` VARCHAR(255)"}, } @@ -6473,6 +6489,30 @@ func TestCTE(t *testing.T) { RunTest(t, table, false) } +// For CTE Merge +func TestCTEMerge(t *testing.T) { + table := []testCase{ + {"WITH `cte` AS (SELECT 1,2) SELECT `col1`,`col2` FROM `cte`", true, "WITH `cte` AS (SELECT 1,2) SELECT `col1`,`col2` FROM `cte`"}, + {"WITH `cte` (col1, col2) AS (SELECT 1,2 UNION ALL SELECT 3,4) SELECT col1, col2 FROM cte;", true, "WITH `cte` (`col1`, `col2`) AS (SELECT 1,2 UNION ALL SELECT 3,4) SELECT `col1`,`col2` FROM `cte`"}, + {"WITH `cte` AS (SELECT 1,2), cte2 as (select 3) SELECT `col1`,`col2` FROM `cte`", true, "WITH `cte` AS (SELECT 1,2), `cte2` AS (SELECT 3) SELECT `col1`,`col2` FROM `cte`"}, + {"with cte(a) as (select 1) update t, cte set t.a=1 where t.a=cte.a;", true, "WITH `cte` (`a`) AS (SELECT 1) UPDATE (`t`) JOIN `cte` SET `t`.`a`=1 WHERE `t`.`a`=`cte`.`a`"}, + {"with cte(a) as (select 1) delete t from t, cte where t.a=cte.a;", true, "WITH `cte` (`a`) AS (SELECT 1) DELETE `t` FROM (`t`) JOIN `cte` WHERE `t`.`a`=`cte`.`a`"}, + {"WITH cte1 AS (SELECT 1) SELECT * FROM (WITH cte2 AS (SELECT 2) SELECT * FROM cte2 JOIN cte1) AS dt;", true, "WITH `cte1` AS (SELECT 1) SELECT * FROM (WITH `cte2` AS (SELECT 2) SELECT * FROM `cte2` JOIN `cte1`) AS `dt`"}, + {"WITH cte AS (SELECT 1) SELECT /*+ MAX_EXECUTION_TIME(1000) */ * FROM cte;", true, "WITH `cte` AS (SELECT 1) SELECT /*+ MAX_EXECUTION_TIME(1000)*/ * FROM `cte`"}, + {"with cte as (table t) table cte;", true, "WITH `cte` AS (TABLE `t`) TABLE `cte`"}, + {"with cte as (select 1) select 1 union with cte as (select 1) select * from cte;", false, ""}, + {"with cte as (select 1) (select 1);", true, "WITH `cte` AS (SELECT 1) (SELECT 1)"}, + {"with cte as (select 1) (select 1 union select 1)", true, "WITH `cte` AS (SELECT 1) (SELECT 1 UNION SELECT 1)"}, + {"select * from (with cte as (select 1) select 1 union select 2) qn", true, "SELECT * FROM (WITH `cte` AS (SELECT 1) SELECT 1 UNION SELECT 2) AS `qn`"}, + {"select * from t where 1 > (with cte as (select 2) select * from cte)", true, "SELECT * FROM `t` WHERE 1>(WITH `cte` AS (SELECT 2) SELECT * FROM `cte`)"}, + {"( with cte(n) as ( select 1 ) select n+1 from cte union select n+2 from cte) union select 1", true, "(WITH `cte` (`n`) AS (SELECT 1) SELECT `n`+1 FROM `cte` UNION SELECT `n`+2 FROM `cte`) UNION SELECT 1"}, + {"( with cte(n) as ( select 1 ) select n+1 from cte) union select 1", true, "(WITH `cte` (`n`) AS (SELECT 1) SELECT `n`+1 FROM `cte`) UNION SELECT 1"}, + {"( with cte(n) as ( select 1 ) (select n+1 from cte)) union select 1", true, "(WITH `cte` (`n`) AS (SELECT 1) (SELECT `n`+1 FROM `cte`)) UNION SELECT 1"}, + } + + RunTest(t, table, false) +} + func TestAsOfClause(t *testing.T) { table := []testCase{ {"SELECT * FROM `t` AS /* comment */ a;", true, "SELECT * FROM `t` AS `a`"}, diff --git a/parser/terror/BUILD.bazel b/parser/terror/BUILD.bazel index 2979755682264..8397260a22a13 100644 --- a/parser/terror/BUILD.bazel +++ b/parser/terror/BUILD.bazel @@ -17,6 +17,7 @@ go_test( name = "terror_test", srcs = ["terror_test.go"], embed = [":terror"], + flaky = True, deps = [ "@com_github_pingcap_errors//:errors", "@com_github_stretchr_testify//require", diff --git a/parser/terror/terror.go b/parser/terror/terror.go index b37319a6ff776..92619f433715f 100644 --- a/parser/terror/terror.go +++ b/parser/terror/terror.go @@ -52,6 +52,7 @@ const ( // ErrClass represents a class of errors. type ErrClass int +// Error implements error interface. type Error = errors.Error // Error classes. @@ -228,12 +229,12 @@ func getMySQLErrorCode(e *Error) uint16 { rfcCode := e.RFCCode() var class ErrClass if index := strings.Index(string(rfcCode), ":"); index > 0 { - if ec, has := rfcCode2errClass.Get(string(rfcCode)[:index]); has { - class = ec - } else { + ec, has := rfcCode2errClass.Get(string(rfcCode)[:index]) + if !has { log.Warn("Unknown error class", zap.String("class", string(rfcCode)[:index])) return defaultMySQLErrorCode } + class = ec } codeMap, ok := ErrClassToMySQLCodes[class] if !ok { @@ -250,8 +251,10 @@ func getMySQLErrorCode(e *Error) uint16 { var ( // ErrClassToMySQLCodes is the map of ErrClass to code-set. - ErrClassToMySQLCodes = make(map[ErrClass]map[ErrCode]struct{}) - ErrCritical = ClassGlobal.NewStdErr(CodeExecResultIsEmpty, mysql.Message("critical error %v", nil)) + ErrClassToMySQLCodes = make(map[ErrClass]map[ErrCode]struct{}) + // ErrCritical is the critical error class. + ErrCritical = ClassGlobal.NewStdErr(CodeExecResultIsEmpty, mysql.Message("critical error %v", nil)) + // ErrResultUndetermined is the error when execution result is unknown. ErrResultUndetermined = ClassGlobal.NewStdErr(CodeResultUndetermined, mysql.Message("execution result undetermined", nil)) ) @@ -311,6 +314,7 @@ func Log(err error) { } } +// GetErrClass returns the error class of the error. func GetErrClass(e *Error) ErrClass { rfcCode := e.RFCCode() if index := strings.Index(string(rfcCode), ":"); index > 0 { diff --git a/parser/tidb/features.go b/parser/tidb/features.go index 5c79a50807dbf..296a3d6b37d9b 100644 --- a/parser/tidb/features.go +++ b/parser/tidb/features.go @@ -39,6 +39,7 @@ var featureIDs = map[string]struct{}{ FeatureIDPlacement: {}, } +// CanParseFeature is used to check if a feature can be parsed. func CanParseFeature(fs ...string) bool { for _, f := range fs { if _, ok := featureIDs[f]; !ok { diff --git a/parser/types/BUILD.bazel b/parser/types/BUILD.bazel index a771b96fced49..c3eca2badbc36 100644 --- a/parser/types/BUILD.bazel +++ b/parser/types/BUILD.bazel @@ -25,6 +25,7 @@ go_test( "field_type_test.go", ], embed = [":types"], + flaky = True, deps = [ "//parser", "//parser/ast", diff --git a/parser/types/field_type.go b/parser/types/field_type.go index 429896d6d790e..62daa2ae68355 100644 --- a/parser/types/field_type.go +++ b/parser/types/field_type.go @@ -67,68 +67,86 @@ func NewFieldType(tp byte) *FieldType { decimal: UnspecifiedLength, } } + +// IsDecimalValid checks whether the decimal is valid. func (ft *FieldType) IsDecimalValid() bool { if ft.tp == mysql.TypeNewDecimal && (ft.decimal < 0 || ft.decimal > mysql.MaxDecimalScale || ft.flen <= 0 || ft.flen > mysql.MaxDecimalWidth || ft.flen < ft.decimal) { return false } return true } + +// GetType returns the type of the FieldType. func (ft *FieldType) GetType() byte { return ft.tp } +// GetFlag returns the flag of the FieldType. func (ft *FieldType) GetFlag() uint { return ft.flag } +// GetFlen returns the length of the field. func (ft *FieldType) GetFlen() int { return ft.flen } +// GetDecimal returns the decimal of the FieldType. func (ft *FieldType) GetDecimal() int { return ft.decimal } +// GetCharset returns the field's charset func (ft *FieldType) GetCharset() string { return ft.charset } +// GetCollate returns the collation of the field. func (ft *FieldType) GetCollate() string { return ft.collate } +// GetElems returns the elements of the FieldType. func (ft *FieldType) GetElems() []string { return ft.elems } +// SetType sets the type of the FieldType. func (ft *FieldType) SetType(tp byte) { ft.tp = tp } +// SetFlag sets the flag of the FieldType. func (ft *FieldType) SetFlag(flag uint) { ft.flag = flag } +// AddFlag adds a flag to the FieldType. func (ft *FieldType) AddFlag(flag uint) { ft.flag |= flag } +// AndFlag and the flag of the FieldType. func (ft *FieldType) AndFlag(flag uint) { ft.flag &= flag } +// ToggleFlag toggle the flag of the FieldType. func (ft *FieldType) ToggleFlag(flag uint) { ft.flag ^= flag } +// DelFlag delete the flag of the FieldType. func (ft *FieldType) DelFlag(flag uint) { ft.flag &= ^flag } +// SetFlen sets the length of the field. func (ft *FieldType) SetFlen(flen int) { ft.flen = flen } +// SetFlenUnderLimit sets the length of the field to the value of the argument func (ft *FieldType) SetFlenUnderLimit(flen int) { if ft.tp == mysql.TypeNewDecimal { ft.flen = mathutil.Min(flen, mysql.MaxDecimalWidth) @@ -137,10 +155,12 @@ func (ft *FieldType) SetFlenUnderLimit(flen int) { } } +// SetDecimal sets the decimal of the FieldType. func (ft *FieldType) SetDecimal(decimal int) { ft.decimal = decimal } +// SetDecimalUnderLimit sets the decimal of the field to the value of the argument func (ft *FieldType) SetDecimalUnderLimit(decimal int) { if ft.tp == mysql.TypeNewDecimal { ft.decimal = mathutil.Min(decimal, mysql.MaxDecimalScale) @@ -149,6 +169,7 @@ func (ft *FieldType) SetDecimalUnderLimit(decimal int) { } } +// UpdateFlenAndDecimalUnderLimit updates the length and decimal to the value of the argument func (ft *FieldType) UpdateFlenAndDecimalUnderLimit(old *FieldType, deltaDecimal int, deltaFlen int) { if ft.tp != mysql.TypeNewDecimal { return @@ -166,22 +187,27 @@ func (ft *FieldType) UpdateFlenAndDecimalUnderLimit(old *FieldType, deltaDecimal } } +// SetCharset sets the charset of the FieldType. func (ft *FieldType) SetCharset(charset string) { ft.charset = charset } +// SetCollate sets the collation of the FieldType. func (ft *FieldType) SetCollate(collate string) { ft.collate = collate } +// SetElems sets the elements of the FieldType. func (ft *FieldType) SetElems(elems []string) { ft.elems = elems } +// SetElem sets the element of the FieldType. func (ft *FieldType) SetElem(idx int, element string) { ft.elems[idx] = element } +// SetElemWithIsBinaryLit sets the element of the FieldType. func (ft *FieldType) SetElemWithIsBinaryLit(idx int, element string, isBinaryLit bool) { ft.elems[idx] = element if isBinaryLit { @@ -193,10 +219,12 @@ func (ft *FieldType) SetElemWithIsBinaryLit(idx int, element string, isBinaryLit } } +// GetElem returns the element of the FieldType. func (ft *FieldType) GetElem(idx int) string { return ft.elems[idx] } +// GetElemIsBinaryLit returns the binary literal flag of the element at index idx. func (ft *FieldType) GetElemIsBinaryLit(idx int) bool { if len(ft.elemsIsBinaryLit) == 0 { return false @@ -204,6 +232,7 @@ func (ft *FieldType) GetElemIsBinaryLit(idx int) bool { return ft.elemsIsBinaryLit[idx] } +// CleanElemIsBinaryLit cleans the binary literal flag of the element at index idx. func (ft *FieldType) CleanElemIsBinaryLit() { if ft != nil && ft.elemsIsBinaryLit != nil { ft.elemsIsBinaryLit = nil @@ -542,6 +571,7 @@ type jsonFieldType struct { ElemsIsBinaryLit []bool } +// UnmarshalJSON implements the json.Unmarshaler interface. func (ft *FieldType) UnmarshalJSON(data []byte) error { var r jsonFieldType err := json.Unmarshal(data, &r) @@ -558,6 +588,7 @@ func (ft *FieldType) UnmarshalJSON(data []byte) error { return err } +// MarshalJSON marshals the FieldType to JSON. func (ft *FieldType) MarshalJSON() ([]byte, error) { var r jsonFieldType r.Tp = ft.tp diff --git a/parser/yy_parser.go b/parser/yy_parser.go index 221dd7a26e790..7ab66a19937d1 100644 --- a/parser/yy_parser.go +++ b/parser/yy_parser.go @@ -70,12 +70,17 @@ func TrimComment(txt string) string { return specCodeEnd.ReplaceAllString(txt, "") } +//revive:disable:exported + +// ParserConfig is the parser config. type ParserConfig struct { EnableWindowFunction bool EnableStrictDoubleTypeCheck bool SkipPositionRecording bool } +//revive:enable:exported + // Parser represents a parser instance. Some temporary objects are stored in it to reduce object allocation during Parse function. type Parser struct { charset string @@ -126,10 +131,12 @@ func New() *Parser { return p } +// SetStrictDoubleTypeCheck enables/disables strict double type check. func (parser *Parser) SetStrictDoubleTypeCheck(val bool) { parser.strictDoubleFieldType = val } +// SetParserConfig sets the parser config. func (parser *Parser) SetParserConfig(config ParserConfig) { parser.EnableWindowFunc(config.EnableWindowFunction) parser.SetStrictDoubleTypeCheck(config.EnableStrictDoubleTypeCheck) @@ -221,7 +228,7 @@ func (parser *Parser) setLastSelectFieldText(st *ast.SelectStmt, lastEnd int) { } } -func (parser *Parser) startOffset(v *yySymType) int { +func (*Parser) startOffset(v *yySymType) int { return v.offset } @@ -334,8 +341,9 @@ func getInt64FromNUM(num interface{}) (val int64, errMsg string) { switch v := num.(type) { case int64: return v, "" + default: + return -1, fmt.Sprintf("%d is out of range [–9223372036854775808,9223372036854775807]", num) } - return -1, fmt.Sprintf("%d is out of range [–9223372036854775808,9223372036854775807]", num) } func isRevokeAllGrant(roleOrPrivList []*ast.RoleOrPriv) bool { diff --git a/planner/cascades/BUILD.bazel b/planner/cascades/BUILD.bazel index 1ce0a7eb7ac23..c82b64a288a21 100644 --- a/planner/cascades/BUILD.bazel +++ b/planner/cascades/BUILD.bazel @@ -41,6 +41,7 @@ go_test( ], data = glob(["testdata/**"]), embed = [":cascades"], + flaky = True, deps = [ "//domain", "//expression", diff --git a/planner/core/BUILD.bazel b/planner/core/BUILD.bazel index e2ebf20dea339..b3c4c4eed88cf 100644 --- a/planner/core/BUILD.bazel +++ b/planner/core/BUILD.bazel @@ -39,6 +39,7 @@ go_library( "resolve_indices.go", "rule_aggregation_elimination.go", "rule_aggregation_push_down.go", + "rule_aggregation_skew_rewrite.go", "rule_build_key_info.go", "rule_column_pruning.go", "rule_decorrelate.go", @@ -53,6 +54,7 @@ go_library( "rule_partition_processor.go", "rule_predicate_push_down.go", "rule_result_reorder.go", + "rule_semi_join_rewrite.go", "rule_topn_push_down.go", "show_predicate_extractor.go", "stats.go", @@ -147,6 +149,7 @@ go_test( name = "core_test", timeout = "short", srcs = [ + "binary_plan_test.go", "cache_test.go", "cacheable_checker_test.go", "cbo_test.go", @@ -236,11 +239,14 @@ go_test( "//util/dbterror", "//util/hint", "//util/kvcache", + "//util/logutil", "//util/mock", "//util/plancodec", "//util/ranger", "//util/set", + "//util/stmtsummary", "//util/tracing", + "@com_github_golang_snappy//:snappy", "@com_github_pingcap_errors//:errors", "@com_github_pingcap_failpoint//:failpoint", "@com_github_pingcap_tipb//go-tipb", diff --git a/planner/core/access_object.go b/planner/core/access_object.go index b5aa4af1fd692..81296c39c9223 100644 --- a/planner/core/access_object.go +++ b/planner/core/access_object.go @@ -109,7 +109,7 @@ func (d DynamicPartitionAccessObjects) SetIntoPB(pb *tipb.ExplainOperator) { if len(obj.err) > 0 { continue } - pbObj := pbObjSlice[i] + pbObj := &pbObjSlice[i] pbObj.Database = obj.Database pbObj.Table = obj.Table pbObj.AllPartitions = obj.AllPartitions @@ -119,7 +119,11 @@ func (d DynamicPartitionAccessObjects) SetIntoPB(pb *tipb.ExplainOperator) { for i := range pbObjSlice { pbObjs.Objects = append(pbObjs.Objects, &pbObjSlice[i]) } - pb.AccessObject = &tipb.ExplainOperator_DynamicPartitionObjects{DynamicPartitionObjects: &pbObjs} + pb.AccessObjects = []*tipb.AccessObject{ + { + AccessObject: &tipb.AccessObject_DynamicPartitionObjects{DynamicPartitionObjects: &pbObjs}, + }, + } } // IndexAccess represents the index accessed by an operator. @@ -202,7 +206,11 @@ func (s *ScanAccessObject) SetIntoPB(pb *tipb.ExplainOperator) { for i := range s.Indexes { pbObj.Indexes = append(pbObj.Indexes, s.Indexes[i].ToPB()) } - pb.AccessObject = &tipb.ExplainOperator_ScanObject{ScanObject: &pbObj} + pb.AccessObjects = []*tipb.AccessObject{ + { + AccessObject: &tipb.AccessObject_ScanObject{ScanObject: &pbObj}, + }, + } } // OtherAccessObject represents other kinds of access. @@ -222,7 +230,11 @@ func (o OtherAccessObject) SetIntoPB(pb *tipb.ExplainOperator) { if pb == nil { return } - pb.AccessObject = &tipb.ExplainOperator_OtherObject{OtherObject: string(o)} + pb.AccessObjects = []*tipb.AccessObject{ + { + AccessObject: &tipb.AccessObject_OtherObject{OtherObject: string(o)}, + }, + } } // AccessObject implements dataAccesser interface. diff --git a/planner/core/binary_plan_test.go b/planner/core/binary_plan_test.go new file mode 100644 index 0000000000000..be8aadd6e7f4c --- /dev/null +++ b/planner/core/binary_plan_test.go @@ -0,0 +1,504 @@ +// Copyright 2022 PingCAP, Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package core_test + +import ( + "encoding/base64" + "fmt" + "os" + "regexp" + "strings" + "testing" + + "github.com/golang/snappy" + "github.com/pingcap/tidb/config" + "github.com/pingcap/tidb/parser/auth" + "github.com/pingcap/tidb/planner/core" + "github.com/pingcap/tidb/sessionctx/variable" + "github.com/pingcap/tidb/testkit" + "github.com/pingcap/tidb/testkit/testdata" + "github.com/pingcap/tidb/util/logutil" + "github.com/pingcap/tidb/util/stmtsummary" + "github.com/pingcap/tipb/go-tipb" + "github.com/stretchr/testify/require" +) + +func simplifyAndCheckBinaryPlan(t *testing.T, pb *tipb.ExplainData) { + if pb.Main != nil { + simplifyAndCheckBinaryOperator(t, pb.Main, pb.WithRuntimeStats) + } + for _, cte := range pb.Ctes { + if cte != nil { + simplifyAndCheckBinaryOperator(t, cte, pb.WithRuntimeStats) + } + } +} + +func simplifyAndCheckBinaryOperator(t *testing.T, pb *tipb.ExplainOperator, withRuntimeStats bool) { + if withRuntimeStats { + if pb.TaskType == tipb.TaskType_root { + require.NotEmpty(t, pb.RootBasicExecInfo) + } else if pb.TaskType != tipb.TaskType_unknown { + require.NotEmpty(t, pb.CopExecInfo) + } + } + pb.RootBasicExecInfo = "" + pb.RootGroupExecInfo = nil + pb.CopExecInfo = "" + match, err := regexp.MatchString("((Table|Index).*Scan)|CTEFullScan|Point_Get", pb.Name) + if err == nil && match { + require.NotNil(t, pb.AccessObjects) + } + // AccessObject field is an interface and json.Unmarshall can't handle it, so we don't check it against the json output. + pb.AccessObjects = nil + // MemoryBytes and DiskBytes are not stable sometimes. + pb.MemoryBytes = 0 + pb.DiskBytes = 0 + if len(pb.Children) > 0 { + for _, op := range pb.Children { + if op != nil { + simplifyAndCheckBinaryOperator(t, op, withRuntimeStats) + } + } + } +} + +func TestBinaryPlanInExplainAndSlowLog(t *testing.T) { + store, clean := testkit.CreateMockStore(t) + defer clean() + tk := testkit.NewTestKit(t, store) + tk.MustExec("use test") + // If we don't set this, it will be false sometimes and the cost in the result will be different. + tk.MustExec("set @@tidb_enable_chunk_rpc=true") + + // Prepare the slow log + originCfg := config.GetGlobalConfig() + newCfg := *originCfg + f, err := os.CreateTemp("", "tidb-slow-*.log") + require.NoError(t, err) + newCfg.Log.SlowQueryFile = f.Name() + config.StoreGlobalConfig(&newCfg) + defer func() { + config.StoreGlobalConfig(originCfg) + require.NoError(t, f.Close()) + require.NoError(t, os.Remove(newCfg.Log.SlowQueryFile)) + }() + require.NoError(t, logutil.InitLogger(newCfg.Log.ToLogConfig())) + tk.MustExec(fmt.Sprintf("set @@tidb_slow_query_file='%v'", f.Name())) + tk.MustExec("set tidb_slow_log_threshold=0;") + defer func() { + tk.MustExec("set tidb_slow_log_threshold=300;") + }() + + var input []string + var output []struct { + SQL string + BinaryPlan *tipb.ExplainData + } + planSuiteData := core.GetBinaryPlanSuiteData() + planSuiteData.GetTestCases(t, &input, &output) + + for i, test := range input { + comment := fmt.Sprintf("case:%v sql:%s", i, test) + if len(test) < 7 || test[:7] != "explain" { + tk.MustExec(test) + testdata.OnRecord(func() { + output[i].SQL = test + output[i].BinaryPlan = nil + }) + continue + } + result := testdata.ConvertRowsToStrings(tk.MustQuery(test).Rows()) + require.Equal(t, len(result), 1, comment) + s := result[0] + + // assert that the binary plan in the slow log is the same as the result in the EXPLAIN statement + slowLogResult := testdata.ConvertRowsToStrings(tk.MustQuery("select binary_plan from information_schema.slow_query " + + `where query = "` + test + `;" ` + + "order by time desc limit 1").Rows()) + require.Lenf(t, slowLogResult, 1, comment) + require.Equal(t, s, slowLogResult[0], comment) + + b, err := base64.StdEncoding.DecodeString(s) + require.NoError(t, err) + b, err = snappy.Decode(nil, b) + require.NoError(t, err) + binary := &tipb.ExplainData{} + err = binary.Unmarshal(b) + require.NoError(t, err) + testdata.OnRecord(func() { + output[i].SQL = test + output[i].BinaryPlan = binary + }) + simplifyAndCheckBinaryPlan(t, binary) + require.Equal(t, output[i].BinaryPlan, binary) + } +} + +func TestBinaryPlanSwitch(t *testing.T) { + store, clean := testkit.CreateMockStore(t) + defer clean() + tk := testkit.NewTestKit(t, store) + require.True(t, tk.Session().Auth(&auth.UserIdentity{Username: "root", Hostname: "%"}, nil, nil)) + + originCfg := config.GetGlobalConfig() + newCfg := *originCfg + f, err := os.CreateTemp("", "tidb-slow-*.log") + require.NoError(t, err) + newCfg.Log.SlowQueryFile = f.Name() + config.StoreGlobalConfig(&newCfg) + defer func() { + config.StoreGlobalConfig(originCfg) + require.NoError(t, f.Close()) + require.NoError(t, os.Remove(newCfg.Log.SlowQueryFile)) + }() + require.NoError(t, logutil.InitLogger(newCfg.Log.ToLogConfig())) + tk.MustExec(fmt.Sprintf("set @@tidb_slow_query_file='%v'", f.Name())) + + tk.MustExec("use test") + // 1. assert binary plan is generated if the variable is turned on + tk.MustExec("set global tidb_generate_binary_plan = 1") + tk.MustQuery("select sleep(1)") + + result := testdata.ConvertRowsToStrings(tk.MustQuery("select binary_plan from information_schema.slow_query " + + `where query like "%select sleep(1)%" and query not like "%like%" ` + + "limit 1;").Rows()) + require.Len(t, result, 1) + s := result[0] + b, err := base64.StdEncoding.DecodeString(s) + require.NoError(t, err) + b, err = snappy.Decode(nil, b) + require.NoError(t, err) + binary := &tipb.ExplainData{} + err = binary.Unmarshal(b) + require.NoError(t, err) + + result = testdata.ConvertRowsToStrings(tk.MustQuery("select binary_plan from information_schema.statements_summary " + + `where QUERY_SAMPLE_TEXT like "%select sleep(1)%" and QUERY_SAMPLE_TEXT not like "%like%" ` + + "limit 1;").Rows()) + require.Len(t, result, 1) + s = result[0] + b, err = base64.StdEncoding.DecodeString(s) + require.NoError(t, err) + b, err = snappy.Decode(nil, b) + require.NoError(t, err) + binary = &tipb.ExplainData{} + err = binary.Unmarshal(b) + require.NoError(t, err) + + // 2. assert binary plan is not generated if the variable is turned off + tk.MustExec("set global tidb_generate_binary_plan = 0") + tk.MustQuery("select 1 > sleep(1)") + + result = testdata.ConvertRowsToStrings(tk.MustQuery("select binary_plan from information_schema.slow_query " + + `where query like "%select 1 > sleep(1)%" and query not like "%like%" ` + + "limit 1;").Rows()) + require.Len(t, result, 1) + s = result[0] + require.Empty(t, s) + + result = testdata.ConvertRowsToStrings(tk.MustQuery("select binary_plan from information_schema.statements_summary " + + `where QUERY_SAMPLE_TEXT like "%select 1 > sleep(1)%" and QUERY_SAMPLE_TEXT not like "%like%" ` + + "limit 1;").Rows()) + require.Len(t, result, 1) + s = result[0] + require.Empty(t, s) +} + +// TestTooLongBinaryPlan asserts that if the binary plan is larger than 1024*1024 bytes, it should be output to slow query but not to stmt summary. +func TestTooLongBinaryPlan(t *testing.T) { + store, clean := testkit.CreateMockStore(t) + defer clean() + tk := testkit.NewTestKit(t, store) + require.True(t, tk.Session().Auth(&auth.UserIdentity{Username: "root", Hostname: "%"}, nil, nil)) + + originCfg := config.GetGlobalConfig() + newCfg := *originCfg + f, err := os.CreateTemp("", "tidb-slow-*.log") + require.NoError(t, err) + newCfg.Log.SlowQueryFile = f.Name() + config.StoreGlobalConfig(&newCfg) + defer func() { + config.StoreGlobalConfig(originCfg) + require.NoError(t, f.Close()) + require.NoError(t, os.Remove(newCfg.Log.SlowQueryFile)) + }() + require.NoError(t, logutil.InitLogger(newCfg.Log.ToLogConfig())) + tk.MustExec(fmt.Sprintf("set @@tidb_slow_query_file='%v'", f.Name())) + + tk.MustExec("use test") + tk.MustExec("drop table if exists th") + tk.MustExec("set @@session.tidb_enable_table_partition = 1") + tk.MustExec(`set @@tidb_partition_prune_mode='` + string(variable.Static) + `'`) + tk.MustExec("create table th (i int, a int,b int, c int, index (a)) partition by hash (a) partitions 8192;") + tk.MustQuery("select count(*) from th t1 join th t2 join th t3 join th t4 join th t5 join th t6 where t1.i=t2.a and t1.i=t3.i and t3.i=t4.i and t4.i=t5.i and t5.i=t6.i") + + result := testdata.ConvertRowsToStrings(tk.MustQuery("select binary_plan from information_schema.slow_query " + + `where query like "%th t1 join th t2 join th t3%" and query not like "%like%" ` + + "limit 1;").Rows()) + require.Len(t, result, 1) + s := result[0] + require.Greater(t, len(s), stmtsummary.MaxEncodedPlanSizeInBytes) + b, err := base64.StdEncoding.DecodeString(s) + require.NoError(t, err) + b, err = snappy.Decode(nil, b) + require.NoError(t, err) + binary := &tipb.ExplainData{} + err = binary.Unmarshal(b) + require.NoError(t, err) + require.False(t, binary.DiscardedDueToTooLong) + require.True(t, binary.WithRuntimeStats) + require.NotNil(t, binary.Main) + + result = testdata.ConvertRowsToStrings(tk.MustQuery("select binary_plan from information_schema.statements_summary " + + `where QUERY_SAMPLE_TEXT like "%th t1 join th t2 join th t3%" and QUERY_SAMPLE_TEXT not like "%like%" ` + + "limit 1;").Rows()) + require.Len(t, result, 1) + s = result[0] + b, err = base64.StdEncoding.DecodeString(s) + require.NoError(t, err) + b, err = snappy.Decode(nil, b) + require.NoError(t, err) + binary = &tipb.ExplainData{} + err = binary.Unmarshal(b) + require.NoError(t, err) + require.True(t, binary.DiscardedDueToTooLong) + require.Nil(t, binary.Main) + require.Nil(t, binary.Ctes) +} + +// TestLongBinaryPlan asserts that if the binary plan is smaller than 1024*1024 bytes, it should be output to both slow query and stmt summary. +// The size of the binary plan in this test case is designed to be larger than 1024*1024*0.85 bytes but smaller than 1024*1024 bytes. +func TestLongBinaryPlan(t *testing.T) { + store, clean := testkit.CreateMockStore(t) + defer clean() + tk := testkit.NewTestKit(t, store) + require.True(t, tk.Session().Auth(&auth.UserIdentity{Username: "root", Hostname: "%"}, nil, nil)) + + originCfg := config.GetGlobalConfig() + newCfg := *originCfg + f, err := os.CreateTemp("", "tidb-slow-*.log") + require.NoError(t, err) + newCfg.Log.SlowQueryFile = f.Name() + config.StoreGlobalConfig(&newCfg) + defer func() { + config.StoreGlobalConfig(originCfg) + require.NoError(t, f.Close()) + require.NoError(t, os.Remove(newCfg.Log.SlowQueryFile)) + }() + require.NoError(t, logutil.InitLogger(newCfg.Log.ToLogConfig())) + tk.MustExec(fmt.Sprintf("set @@tidb_slow_query_file='%v'", f.Name())) + + tk.MustExec("use test") + + tk.MustExec("drop table if exists th") + tk.MustExec("set @@session.tidb_enable_table_partition = 1") + tk.MustExec(`set @@tidb_partition_prune_mode='` + string(variable.Static) + `'`) + tk.MustExec("create table th (i int, a int,b int, c int, index (a)) partition by hash (a) partitions 1700;") + tk.MustQuery("select count(*) from th t1 join th t2 join th t3 join th t4 join th t5 join th t6 where t1.i=t2.a and t1.i=t3.i and t3.i=t4.i and t4.i=t5.i and t5.i=t6.i") + + result := testdata.ConvertRowsToStrings(tk.MustQuery("select binary_plan from information_schema.slow_query " + + `where query like "%th t1 join th t2 join th t3%" and query not like "%like%" ` + + "limit 1;").Rows()) + require.Len(t, result, 1) + s1 := result[0] + // The binary plan in this test case is expected to be slightly smaller than MaxEncodedPlanSizeInBytes. + // If the size of the binary plan changed and this case failed in the future, you can adjust the partition numbers in the CREATE TABLE statement above. + require.Less(t, len(s1), stmtsummary.MaxEncodedPlanSizeInBytes) + require.Greater(t, len(s1), int(float64(stmtsummary.MaxEncodedPlanSizeInBytes)*0.85)) + b, err := base64.StdEncoding.DecodeString(s1) + require.NoError(t, err) + b, err = snappy.Decode(nil, b) + require.NoError(t, err) + binary := &tipb.ExplainData{} + err = binary.Unmarshal(b) + require.NoError(t, err) + require.False(t, binary.DiscardedDueToTooLong) + require.True(t, binary.WithRuntimeStats) + require.NotNil(t, binary.Main) + + result = testdata.ConvertRowsToStrings(tk.MustQuery("select binary_plan from information_schema.statements_summary " + + `where QUERY_SAMPLE_TEXT like "%th t1 join th t2 join th t3%" and QUERY_SAMPLE_TEXT not like "%like%" ` + + "limit 1;").Rows()) + require.Len(t, result, 1) + s2 := result[0] + require.Equal(t, s1, s2) +} + +func TestBinaryPlanOfPreparedStmt(t *testing.T) { + store, clean := testkit.CreateMockStore(t) + defer clean() + tk := testkit.NewTestKit(t, store) + require.True(t, tk.Session().Auth(&auth.UserIdentity{Username: "root", Hostname: "%"}, nil, nil)) + + originCfg := config.GetGlobalConfig() + newCfg := *originCfg + f, err := os.CreateTemp("", "tidb-slow-*.log") + require.NoError(t, err) + newCfg.Log.SlowQueryFile = f.Name() + config.StoreGlobalConfig(&newCfg) + defer func() { + config.StoreGlobalConfig(originCfg) + require.NoError(t, f.Close()) + require.NoError(t, os.Remove(newCfg.Log.SlowQueryFile)) + }() + require.NoError(t, logutil.InitLogger(newCfg.Log.ToLogConfig())) + tk.MustExec(fmt.Sprintf("set @@tidb_slow_query_file='%v'", f.Name())) + + tk.MustExec("use test") + + tk.MustExec("drop table if exists t") + tk.MustExec("create table t (a int, b int);") + tk.MustExec("insert into t value(30,30);") + tk.MustExec(`prepare stmt from "select sleep(1), b from t where a > ?"`) + tk.MustExec("set @a = 20") + tk.MustQuery("execute stmt using @a") + + result := testdata.ConvertRowsToStrings(tk.MustQuery("select binary_plan from information_schema.slow_query " + + `where query like "%select sleep%" and query not like "%like%" ` + + "limit 1;").Rows()) + require.Len(t, result, 1) + s1 := result[0] + b, err := base64.StdEncoding.DecodeString(s1) + require.NoError(t, err) + b, err = snappy.Decode(nil, b) + require.NoError(t, err) + binary := &tipb.ExplainData{} + err = binary.Unmarshal(b) + require.NoError(t, err) + require.False(t, binary.DiscardedDueToTooLong) + require.True(t, binary.WithRuntimeStats) + require.NotNil(t, binary.Main) + + result = testdata.ConvertRowsToStrings(tk.MustQuery("select binary_plan from information_schema.statements_summary " + + `where QUERY_SAMPLE_TEXT like "%select sleep%" and QUERY_SAMPLE_TEXT not like "%like%" ` + + "limit 1;").Rows()) + require.Len(t, result, 1) + s2 := result[0] + require.Equal(t, s1, s2) +} + +// TestDecodeBinaryPlan asserts that the result of EXPLAIN ANALYZE FORMAT = 'verbose' is the same as tidb_decode_binary_plan(). +func TestDecodeBinaryPlan(t *testing.T) { + store, clean := testkit.CreateMockStore(t) + defer clean() + tk := testkit.NewTestKit(t, store) + tk.MustExec("use test") + + // Prepare the slow log + originCfg := config.GetGlobalConfig() + newCfg := *originCfg + f, err := os.CreateTemp("", "tidb-slow-*.log") + require.NoError(t, err) + newCfg.Log.SlowQueryFile = f.Name() + config.StoreGlobalConfig(&newCfg) + defer func() { + config.StoreGlobalConfig(originCfg) + require.NoError(t, f.Close()) + require.NoError(t, os.Remove(newCfg.Log.SlowQueryFile)) + }() + require.NoError(t, logutil.InitLogger(newCfg.Log.ToLogConfig())) + tk.MustExec(fmt.Sprintf("set @@tidb_slow_query_file='%v'", f.Name())) + tk.MustExec("set tidb_slow_log_threshold=0;") + defer func() { + tk.MustExec("set tidb_slow_log_threshold=300;") + }() + tk.MustExec(`create table tp (a int, b int) partition by range(a) ( + partition p0 values less than (100), + partition p1 values less than (200), + partition p2 values less than (300), + partition p3 values less than maxvalue + )`) + tk.MustExec("insert into tp value(1,1), (10,10), (123,234), (213, 234);") + tk.MustExec("create table t(a int, b int, c int, index ia(a));") + tk.MustExec("insert into t value(1,1,1), (10,10,10), (123,234,345), (-213, -234, -234);") + cases := []string{ + "explain analyze format = 'verbose' select * from t", + "explain analyze format = 'verbose' select * from t where a > 10", + "explain analyze format = 'verbose' select /*+ inl_join(t1) */ * from t t1 join t t2 where t1.a = t2.a", + "explain analyze format = 'verbose' WITH RECURSIVE cte(n) AS (SELECT 1 UNION ALL SELECT n + 1 FROM cte WHERE n < 5) SELECT * FROM cte", + "set @@tidb_partition_prune_mode='static'", + "explain analyze format = 'verbose' select * from tp", + "explain analyze format = 'verbose' select * from tp t1 join tp t2 on t1.b > t2.b", + "explain analyze format = 'verbose' select * from tp where a > 400", + "explain analyze format = 'verbose' select * from tp where a < 30", + "explain analyze format = 'verbose' select * from tp where a > 0", + "set @@tidb_partition_prune_mode='dynamic'", + "explain analyze format = 'verbose' select * from tp", + "explain analyze format = 'verbose' select * from tp t1 join tp t2 on t1.b > t2.b", + "explain analyze format = 'verbose' select * from tp where a > 400", + "explain analyze format = 'verbose' select * from tp where a < 30", + "explain analyze format = 'verbose' select * from tp where a > 0", + } + + for _, c := range cases { + if len(c) < 7 || c[:7] != "explain" { + tk.MustExec(c) + continue + } + comment := fmt.Sprintf("sql:%s", c) + + var res1, res2 []string + + explainResult := tk.MustQuery(c).Rows() + for _, row := range explainResult { + for _, val := range row { + str := val.(string) + str = strings.TrimSpace(str) + if len(str) > 0 { + res1 = append(res1, str) + } + } + } + + slowLogResult := testdata.ConvertRowsToStrings(tk.MustQuery("select binary_plan from information_schema.slow_query " + + `where query = "` + c + `;" ` + + "order by time desc limit 1").Rows()) + require.Lenf(t, slowLogResult, 1, comment) + decoded := testdata.ConvertRowsToStrings(tk.MustQuery(`select tidb_decode_binary_plan('` + slowLogResult[0] + `')`).Rows())[0] + decodedRows := strings.Split(decoded, "\n") + // remove the first newline and the title row + decodedRows = decodedRows[2:] + for _, decodedRow := range decodedRows { + vals := strings.Split(decodedRow, "|") + for _, val := range vals { + val = strings.TrimSpace(val) + if len(val) > 0 { + res2 = append(res2, val) + } + } + } + + require.Equalf(t, res1, res2, comment) + } +} + +func TestInvalidDecodeBinaryPlan(t *testing.T) { + store, clean := testkit.CreateMockStore(t) + defer clean() + tk := testkit.NewTestKit(t, store) + tk.MustExec("use test") + + str1 := "some random bytes" + str2 := base64.StdEncoding.EncodeToString([]byte(str1)) + str3 := base64.StdEncoding.EncodeToString(snappy.Encode(nil, []byte(str1))) + + tk.MustQuery(`select tidb_decode_binary_plan('` + str1 + `')`).Check(testkit.Rows("")) + tk.MustQuery("show warnings").Check(testkit.Rows("Warning 1105 illegal base64 data at input byte 4")) + tk.MustQuery(`select tidb_decode_binary_plan('` + str2 + `')`).Check(testkit.Rows("")) + tk.MustQuery("show warnings").Check(testkit.Rows("Warning 1105 snappy: corrupt input")) + tk.MustQuery(`select tidb_decode_binary_plan('` + str3 + `')`).Check(testkit.Rows("")) + tk.MustQuery("show warnings").Check(testkit.Rows("Warning 1105 proto: illegal wireType 7")) +} diff --git a/planner/core/common_plans.go b/planner/core/common_plans.go index e5c04aa6f538b..9568096deb589 100644 --- a/planner/core/common_plans.go +++ b/planner/core/common_plans.go @@ -47,8 +47,10 @@ import ( "github.com/pingcap/tidb/util/kvcache" "github.com/pingcap/tidb/util/logutil" "github.com/pingcap/tidb/util/memory" + "github.com/pingcap/tidb/util/plancodec" "github.com/pingcap/tidb/util/ranger" "github.com/pingcap/tidb/util/texttree" + "github.com/pingcap/tipb/go-tipb" "go.uber.org/zap" ) @@ -500,6 +502,7 @@ REBUILD: } cached := NewPlanCacheValue(p, names, stmtCtx.TblInfo2UnionScan, isBinProtocol, binVarTypes, txtVarTypes, sessVars.StmtCtx.BindSQL) preparedStmt.NormalizedPlan, preparedStmt.PlanDigest = NormalizePlan(p) + stmtCtx.SetPlan(p) stmtCtx.SetPlanDigest(preparedStmt.NormalizedPlan, preparedStmt.PlanDigest) if cacheVals, exists := sctx.PreparedPlanCache().Get(cacheKey); exists { hitVal := false @@ -564,6 +567,7 @@ func (e *Execute) tryCachePointPlan(ctx context.Context, sctx sessionctx.Context prepared.CachedPlan = p prepared.CachedNames = names preparedStmt.NormalizedPlan, preparedStmt.PlanDigest = NormalizePlan(p) + sctx.GetSessionVars().StmtCtx.SetPlan(p) sctx.GetSessionVars().StmtCtx.SetPlanDigest(preparedStmt.NormalizedPlan, preparedStmt.PlanDigest) } return err @@ -1199,6 +1203,8 @@ func (e *Explain) prepareSchema() error { fieldNames = []string{"dot contents"} case format == types.ExplainFormatHint: fieldNames = []string{"hint"} + case format == types.ExplainFormatBinary: + fieldNames = []string{"binary plan"} default: return errors.Errorf("explain format '%s' is not supported now", e.Format) } @@ -1251,9 +1257,14 @@ func (e *Explain) RenderResult() error { e.prepareDotInfo(physicalPlan) } case types.ExplainFormatHint: - hints := GenHintsFromPhysicalPlan(e.TargetPlan) + flat := FlattenPhysicalPlan(e.TargetPlan, false) + hints := GenHintsFromFlatPlan(flat) hints = append(hints, hint.ExtractTableHintsFromStmtNode(e.ExecStmt, nil)...) e.Rows = append(e.Rows, []string{hint.RestoreOptimizerHints(hints)}) + case types.ExplainFormatBinary: + flat := FlattenPhysicalPlan(e.TargetPlan, false) + str := BinaryPlanStrFromFlatPlan(e.ctx, flat) + e.Rows = append(e.Rows, []string{str}) default: return errors.Errorf("explain format '%s' is not supported now", e.Format) } @@ -1409,6 +1420,150 @@ func (e *Explain) getOperatorInfo(p Plan, id string) (string, string, string, st return estRows, estCost, accessObject, operatorInfo } +// BinaryPlanStrFromFlatPlan generates the compressed and encoded binary plan from a FlatPhysicalPlan. +func BinaryPlanStrFromFlatPlan(explainCtx sessionctx.Context, flat *FlatPhysicalPlan) string { + binary := binaryDataFromFlatPlan(explainCtx, flat) + if binary == nil { + return "" + } + proto, err := binary.Marshal() + if err != nil { + return "" + } + str := plancodec.Compress(proto) + return str +} + +func binaryDataFromFlatPlan(explainCtx sessionctx.Context, flat *FlatPhysicalPlan) *tipb.ExplainData { + if len(flat.Main) == 0 { + return nil + } + // Please see comments in EncodeFlatPlan() for this case. + // We keep consistency with EncodeFlatPlan() here. + if flat.InExecute { + return nil + } + res := &tipb.ExplainData{} + for _, op := range flat.Main { + // We assume that runtime stats are available to this plan tree if any operator in the "Main" has runtime stats. + rootStats, copStats, _, _ := getRuntimeInfo(explainCtx, op.Origin, nil) + if rootStats != nil || copStats != nil { + res.WithRuntimeStats = true + break + } + } + res.Main = binaryOpTreeFromFlatOps(explainCtx, flat.Main) + for _, explainedCTE := range flat.CTEs { + res.Ctes = append(res.Ctes, binaryOpTreeFromFlatOps(explainCtx, explainedCTE)) + } + return res +} + +func binaryOpTreeFromFlatOps(explainCtx sessionctx.Context, ops FlatPlanTree) *tipb.ExplainOperator { + s := make([]tipb.ExplainOperator, len(ops)) + for i, op := range ops { + binaryOpFromFlatOp(explainCtx, op, &s[i]) + for _, idx := range op.ChildrenIdx { + s[i].Children = append(s[i].Children, &s[idx]) + } + } + return &s[0] +} + +func binaryOpFromFlatOp(explainCtx sessionctx.Context, op *FlatOperator, out *tipb.ExplainOperator) { + out.Name = op.Origin.ExplainID().String() + switch op.Label { + case BuildSide: + out.Labels = []tipb.OperatorLabel{tipb.OperatorLabel_buildSide} + case ProbeSide: + out.Labels = []tipb.OperatorLabel{tipb.OperatorLabel_probeSide} + case SeedPart: + out.Labels = []tipb.OperatorLabel{tipb.OperatorLabel_seedPart} + case RecursivePart: + out.Labels = []tipb.OperatorLabel{tipb.OperatorLabel_recursivePart} + } + switch op.StoreType { + case kv.TiDB: + out.StoreType = tipb.StoreType_tidb + case kv.TiKV: + out.StoreType = tipb.StoreType_tikv + case kv.TiFlash: + out.StoreType = tipb.StoreType_tiflash + } + if op.IsRoot { + out.TaskType = tipb.TaskType_root + } else { + switch op.ReqType { + case Cop: + out.TaskType = tipb.TaskType_cop + case BatchCop: + out.TaskType = tipb.TaskType_batchCop + case MPP: + out.TaskType = tipb.TaskType_mpp + } + } + + // Runtime info + rootStats, copStats, memTracker, diskTracker := getRuntimeInfo(explainCtx, op.Origin, nil) + if statsInfo := op.Origin.statsInfo(); statsInfo != nil { + out.EstRows = statsInfo.RowCount + } + if op.IsPhysicalPlan { + p := op.Origin.(PhysicalPlan) + if p.SCtx().GetSessionVars().EnableNewCostInterface { + out.Cost, _ = p.GetPlanCost(property.RootTaskType, 0) + } else { + out.Cost = p.Cost() + } + } + if rootStats != nil { + basic, groups := rootStats.MergeStats() + out.RootBasicExecInfo = basic.String() + for _, group := range groups { + str := group.String() + if len(str) > 0 { + out.RootGroupExecInfo = append(out.RootGroupExecInfo, str) + } + } + out.ActRows = uint64(rootStats.GetActRows()) + } + if copStats != nil { + out.CopExecInfo = copStats.String() + out.ActRows = uint64(copStats.GetActRows()) + } + if memTracker != nil { + out.MemoryBytes = memTracker.MaxConsumed() + } else { + out.MemoryBytes = -1 + } + if diskTracker != nil { + out.DiskBytes = diskTracker.MaxConsumed() + } else { + out.DiskBytes = -1 + } + + // Operator info + if plan, ok := op.Origin.(dataAccesser); ok { + out.OperatorInfo = plan.OperatorInfo(false) + } else { + out.OperatorInfo = op.Origin.ExplainInfo() + } + + // Access object + switch p := op.Origin.(type) { + case dataAccesser: + ao := p.AccessObject() + if ao != nil { + ao.SetIntoPB(out) + } + case partitionAccesser: + ao := p.accessObject(explainCtx) + if ao != nil { + ao.SetIntoPB(out) + } + } +} + func (e *Explain) prepareDotInfo(p PhysicalPlan) { buffer := bytes.NewBufferString("") fmt.Fprintf(buffer, "\ndigraph %s {\n", p.ExplainID()) diff --git a/planner/core/encode.go b/planner/core/encode.go index 6df510e7449ed..cc7b3955ecd9c 100644 --- a/planner/core/encode.go +++ b/planner/core/encode.go @@ -18,6 +18,7 @@ import ( "bytes" "crypto/sha256" "hash" + "strconv" "sync" "github.com/pingcap/failpoint" @@ -26,6 +27,106 @@ import ( "github.com/pingcap/tidb/util/plancodec" ) +// EncodeFlatPlan encodes a FlatPhysicalPlan with compression. +func EncodeFlatPlan(flat *FlatPhysicalPlan) string { + if len(flat.Main) == 0 { + return "" + } + // We won't collect the plan when we're in "EXPLAIN FOR" statement and the plan is from EXECUTE statement (please + // read comments of InExecute for details about the meaning of InExecute) because we are unable to get some + // necessary information when the execution of the plan is finished and some states in the session such as + // PreparedParams are cleaned. + // The behavior in BinaryPlanStrFromFlatPlan() is also the same. + if flat.InExecute { + return "" + } + failpoint.Inject("mockPlanRowCount", func(val failpoint.Value) { + selectPlan := flat.Main.GetSelectPlan() + for _, op := range selectPlan { + op.Origin.statsInfo().RowCount = float64(val.(int)) + } + }) + pn := encoderPool.Get().(*planEncoder) + defer func() { + pn.buf.Reset() + encoderPool.Put(pn) + }() + buf := pn.buf + buf.Reset() + opCount := len(flat.Main) + for _, cte := range flat.CTEs { + opCount += len(cte) + } + // assume an operator costs around 80 bytes, preallocate space for them + buf.Grow(80 * opCount) + encodeFlatPlanTree(flat.Main, 0, &buf) + for _, cte := range flat.CTEs { + op := cte[0] + cteDef := cte[0].Origin.(*CTEDefinition) + id := cteDef.CTE.IDForStorage + tp := plancodec.TypeCTEDefinition + taskTypeInfo := plancodec.EncodeTaskType(op.IsRoot, op.StoreType) + p := op.Origin + actRows, analyzeInfo, memoryInfo, diskInfo := getRuntimeInfoStr(p.SCtx(), p, nil) + var estRows float64 + if statsInfo := p.statsInfo(); statsInfo != nil { + estRows = statsInfo.RowCount + } + plancodec.EncodePlanNode( + int(op.Depth), + strconv.Itoa(id)+op.Label.String(), + tp, + estRows, + taskTypeInfo, + op.Origin.ExplainInfo(), + actRows, + analyzeInfo, + memoryInfo, + diskInfo, + &buf, + ) + if len(cte) > 1 { + encodeFlatPlanTree(cte[1:], 1, &buf) + } + } + return plancodec.Compress(buf.Bytes()) +} + +func encodeFlatPlanTree(flatTree FlatPlanTree, offset int, buf *bytes.Buffer) { + for _, op := range flatTree { + taskTypeInfo := plancodec.EncodeTaskType(op.IsRoot, op.StoreType) + p := op.Origin + actRows, analyzeInfo, memoryInfo, diskInfo := getRuntimeInfoStr(p.SCtx(), p, nil) + var estRows float64 + if statsInfo := p.statsInfo(); statsInfo != nil { + estRows = statsInfo.RowCount + } + plancodec.EncodePlanNode( + int(op.Depth), + strconv.Itoa(op.Origin.ID())+op.Label.String(), + op.Origin.TP(), + estRows, + taskTypeInfo, + op.Origin.ExplainInfo(), + actRows, + analyzeInfo, + memoryInfo, + diskInfo, + buf, + ) + + // If NeedReverseDriverSide is true, we stop using the order of the slice and switch to recursively + // call encodeFlatPlanTree to keep build side before probe side. + if op.NeedReverseDriverSide { + buildSide := flatTree[op.ChildrenIdx[1]-offset:] + probeSide := flatTree[op.ChildrenIdx[0]-offset : op.ChildrenIdx[1]-offset] + encodeFlatPlanTree(buildSide, op.ChildrenIdx[1], buf) + encodeFlatPlanTree(probeSide, op.ChildrenIdx[0], buf) + break + } + } +} + var encoderPool = sync.Pool{ New: func() interface{} { return &planEncoder{} @@ -40,6 +141,7 @@ type planEncoder struct { } // EncodePlan is used to encodePlan the plan to the plan tree with compressing. +// Deprecated: FlattenPhysicalPlan() + EncodeFlatPlan() is preferred. func EncodePlan(p Plan) string { if explain, ok := p.(*Explain); ok { p = explain.TargetPlan @@ -84,7 +186,7 @@ func (pn *planEncoder) encodeCTEPlan() { if statsInfo := x.statsInfo(); statsInfo != nil { rowCount = x.statsInfo().RowCount } - plancodec.EncodePlanNode(0, x.CTE.IDForStorage, plancodec.TypeCTEDefinition, rowCount, taskTypeInfo, x.ExplainInfo(), actRows, analyzeInfo, memoryInfo, diskInfo, &pn.buf) + plancodec.EncodePlanNode(0, strconv.Itoa(x.CTE.IDForStorage), plancodec.TypeCTEDefinition, rowCount, taskTypeInfo, x.ExplainInfo(), actRows, analyzeInfo, memoryInfo, diskInfo, &pn.buf) pn.encodePlan(x.SeedPlan, true, kv.TiKV, 1) if x.RecurPlan != nil { pn.encodePlan(x.RecurPlan, true, kv.TiKV, 1) @@ -100,7 +202,7 @@ func (pn *planEncoder) encodePlan(p Plan, isRoot bool, store kv.StoreType, depth if statsInfo := p.statsInfo(); statsInfo != nil { rowCount = p.statsInfo().RowCount } - plancodec.EncodePlanNode(depth, p.ID(), p.TP(), rowCount, taskTypeInfo, p.ExplainInfo(), actRows, analyzeInfo, memoryInfo, diskInfo, &pn.buf) + plancodec.EncodePlanNode(depth, strconv.Itoa(p.ID()), p.TP(), rowCount, taskTypeInfo, p.ExplainInfo(), actRows, analyzeInfo, memoryInfo, diskInfo, &pn.buf) pn.encodedPlans[p.ID()] = true depth++ @@ -152,23 +254,61 @@ type planDigester struct { hasher hash.Hash } +// NormalizeFlatPlan normalizes a FlatPhysicalPlan and generates plan digest. +func NormalizeFlatPlan(flat *FlatPhysicalPlan) (normalized string, digest *parser.Digest) { + selectPlan := flat.Main.GetSelectPlan() + if len(selectPlan) == 0 || !selectPlan[0].IsPhysicalPlan { + return "", parser.NewDigest(nil) + } + d := digesterPool.Get().(*planDigester) + defer func() { + d.buf.Reset() + d.hasher.Reset() + digesterPool.Put(d) + }() + // assume an operator costs around 30 bytes, preallocate space for them + d.buf.Grow(30 * len(selectPlan)) + depthOffset := len(flat.Main) - len(selectPlan) + for _, op := range selectPlan { + taskTypeInfo := plancodec.EncodeTaskTypeForNormalize(op.IsRoot, op.StoreType) + p := op.Origin.(PhysicalPlan) + plancodec.NormalizePlanNode( + int(op.Depth-uint32(depthOffset)), + op.Origin.TP(), + taskTypeInfo, + p.ExplainNormalizedInfo(), + &d.buf, + ) + } + normalized = d.buf.String() + _, err := d.hasher.Write(d.buf.Bytes()) + if err != nil { + panic(err) + } + digest = parser.NewDigest(d.hasher.Sum(nil)) + return +} + // NormalizePlan is used to normalize the plan and generate plan digest. +// Deprecated: FlattenPhysicalPlan() + NormalizeFlatPlan() is preferred. func NormalizePlan(p Plan) (normalized string, digest *parser.Digest) { selectPlan := getSelectPlan(p) if selectPlan == nil { return "", parser.NewDigest(nil) } d := digesterPool.Get().(*planDigester) - defer digesterPool.Put(d) + defer func() { + d.buf.Reset() + d.hasher.Reset() + digesterPool.Put(d) + }() d.normalizePlanTree(selectPlan) normalized = d.buf.String() _, err := d.hasher.Write(d.buf.Bytes()) if err != nil { panic(err) } - d.buf.Reset() digest = parser.NewDigest(d.hasher.Sum(nil)) - d.hasher.Reset() return } diff --git a/planner/core/enforce_mpp_test.go b/planner/core/enforce_mpp_test.go index dab97226f436e..5b39a08bdd8cb 100644 --- a/planner/core/enforce_mpp_test.go +++ b/planner/core/enforce_mpp_test.go @@ -441,3 +441,55 @@ func TestMPP2PhaseAggPushDown(t *testing.T) { require.Equal(t, output[i].Warn, testdata.ConvertSQLWarnToStrings(tk.Session().GetSessionVars().StmtCtx.GetWarnings())) } } + +// Test skewed group distinct aggregate rewrite for MPP mode +func TestMPPSkewedGroupDistinctRewrite(t *testing.T) { + store, clean := testkit.CreateMockStore(t) + defer clean() + tk := testkit.NewTestKit(t, store) + + // test table + tk.MustExec("use test") + tk.MustExec("drop table if exists t") + tk.MustExec("create table t(a int, b bigint not null, c bigint, d date, e varchar(20))") + + // Create virtual tiflash replica info. + dom := domain.GetDomain(tk.Session()) + is := dom.InfoSchema() + db, exists := is.SchemaByName(model.NewCIStr("test")) + require.True(t, exists) + for _, tblInfo := range db.Tables { + if tblInfo.Name.L == "t" { + tblInfo.TiFlashReplica = &model.TiFlashReplicaInfo{ + Count: 1, + Available: true, + } + } + } + + var input []string + var output []struct { + SQL string + Plan []string + Warn []string + } + enforceMPPSuiteData := plannercore.GetEnforceMPPSuiteData() + enforceMPPSuiteData.GetTestCases(t, &input, &output) + for i, tt := range input { + testdata.OnRecord(func() { + output[i].SQL = tt + }) + if strings.HasPrefix(tt, "set") || strings.HasPrefix(tt, "UPDATE") { + tk.MustExec(tt) + continue + } + testdata.OnRecord(func() { + output[i].SQL = tt + output[i].Plan = testdata.ConvertRowsToStrings(tk.MustQuery(tt).Rows()) + output[i].Warn = testdata.ConvertSQLWarnToStrings(tk.Session().GetSessionVars().StmtCtx.GetWarnings()) + }) + res := tk.MustQuery(tt) + res.Check(testkit.Rows(output[i].Plan...)) + require.Equal(t, output[i].Warn, testdata.ConvertSQLWarnToStrings(tk.Session().GetSessionVars().StmtCtx.GetWarnings())) + } +} diff --git a/planner/core/exhaust_physical_plans.go b/planner/core/exhaust_physical_plans.go index 77ea6f73d847a..ff5265e2f8da7 100644 --- a/planner/core/exhaust_physical_plans.go +++ b/planner/core/exhaust_physical_plans.go @@ -822,7 +822,7 @@ func (p *LogicalJoin) buildIndexJoinInner2TableScan( } joins = make([]PhysicalPlan, 0, 3) failpoint.Inject("MockOnlyEnableIndexHashJoin", func(val failpoint.Value) { - if val.(bool) { + if val.(bool) && !p.ctx.GetSessionVars().InRestrictedSQL { failpoint.Return(p.constructIndexHashJoin(prop, outerIdx, innerTask, nil, keyOff2IdxOff, path, lastColMng)) } }) @@ -857,7 +857,7 @@ func (p *LogicalJoin) buildIndexJoinInner2IndexScan( } innerTask := p.constructInnerIndexScanTask(ds, helper.chosenPath, helper.chosenRanges.Range(), helper.chosenRemained, outerJoinKeys, us, rangeInfo, false, false, avgInnerRowCnt, maxOneRow) failpoint.Inject("MockOnlyEnableIndexHashJoin", func(val failpoint.Value) { - if val.(bool) { + if val.(bool) && !p.ctx.GetSessionVars().InRestrictedSQL { failpoint.Return(p.constructIndexHashJoin(prop, outerIdx, innerTask, helper.chosenRanges, keyOff2IdxOff, helper.chosenPath, helper.lastColManager)) } }) @@ -1071,6 +1071,7 @@ func (p *LogicalJoin) constructInnerIndexScanTask( Columns: ds.Columns, Table: is.Table, TableAsName: ds.TableAsName, + DBName: ds.DBName, isPartition: ds.isPartition, physicalTableID: ds.physicalTableID, tblCols: ds.TblCols, @@ -1784,7 +1785,7 @@ func (p *LogicalJoin) shouldUseMPPBCJ() bool { // If the hint is not figured, we will pick all candidates. func (p *LogicalJoin) exhaustPhysicalPlans(prop *property.PhysicalProperty) ([]PhysicalPlan, bool, error) { failpoint.Inject("MockOnlyEnableIndexHashJoin", func(val failpoint.Value) { - if val.(bool) { + if val.(bool) && !p.ctx.GetSessionVars().InRestrictedSQL { indexJoins, _ := p.tryToGetIndexJoin(prop) failpoint.Return(indexJoins, true, nil) } @@ -2613,7 +2614,8 @@ func (la *LogicalAggregation) tryToGetMppHashAggs(prop *property.PhysicalPropert // 1-phase agg // If there are no available partition cols, but still have group by items, that means group by items are all expressions or constants. // To avoid mess, we don't do any one-phase aggregation in this case. - if len(partitionCols) != 0 { + // If this is a skew distinct group agg, skip generating 1-phase agg, because skew data will cause performance issue + if len(partitionCols) != 0 && !la.ctx.GetSessionVars().EnableSkewDistinctAgg { childProp := &property.PhysicalProperty{TaskTp: property.MppTaskType, ExpectedCnt: math.MaxFloat64, MPPPartitionTp: property.HashType, MPPPartitionCols: partitionCols, CanAddEnforcer: true, RejectSort: true} agg := NewPhysicalHashAgg(la, la.stats.ScaleByExpectCnt(prop.ExpectedCnt), childProp) agg.SetSchema(la.schema.Clone()) @@ -2750,11 +2752,37 @@ func (la *LogicalAggregation) exhaustPhysicalPlans(prop *property.PhysicalProper } func (p *LogicalSelection) exhaustPhysicalPlans(prop *property.PhysicalProperty) ([]PhysicalPlan, bool, error) { + newProps := make([]*property.PhysicalProperty, 0, 2) childProp := prop.CloneEssentialFields() - sel := PhysicalSelection{ - Conditions: p.Conditions, - }.Init(p.ctx, p.stats.ScaleByExpectCnt(prop.ExpectedCnt), p.blockOffset, childProp) - return []PhysicalPlan{sel}, true, nil + newProps = append(newProps, childProp) + + if prop.TaskTp != property.MppTaskType && + p.SCtx().GetSessionVars().IsMPPAllowed() && + p.canPushDown(kv.TiFlash) { + childPropMpp := prop.CloneEssentialFields() + childPropMpp.TaskTp = property.MppTaskType + newProps = append(newProps, childPropMpp) + } + + ret := make([]PhysicalPlan, 0, len(newProps)) + for _, newProp := range newProps { + sel := PhysicalSelection{ + Conditions: p.Conditions, + }.Init(p.ctx, p.stats.ScaleByExpectCnt(prop.ExpectedCnt), p.blockOffset, newProp) + ret = append(ret, sel) + } + return ret, true, nil +} + +// utility function to check whether we can push down Selection to TiKV or TiFlash +func (p *LogicalSelection) canPushDown(storeTp kv.StoreType) bool { + return !expression.ContainVirtualColumn(p.Conditions) && + p.canPushToCop(storeTp) && + expression.CanExprsPushDown( + p.SCtx().GetSessionVars().StmtCtx, + p.Conditions, + p.SCtx().GetClient(), + storeTp) } func (p *LogicalLimit) exhaustPhysicalPlans(prop *property.PhysicalProperty) ([]PhysicalPlan, bool, error) { diff --git a/planner/core/expression_rewriter.go b/planner/core/expression_rewriter.go index 67f97245075bb..9b27b112f0bda 100644 --- a/planner/core/expression_rewriter.go +++ b/planner/core/expression_rewriter.go @@ -315,7 +315,9 @@ func (er *expressionRewriter) constructBinaryOpFunction(l expression.Expression, } } -func (er *expressionRewriter) buildSubquery(ctx context.Context, subq *ast.SubqueryExpr) (LogicalPlan, error) { +// buildSubquery translates the subquery ast to plan. +// Currently, only the EXIST can apply the rewrite hint(rewrite the semi join to inner join with aggregation). +func (er *expressionRewriter) buildSubquery(ctx context.Context, subq *ast.SubqueryExpr, rewriteHintCanTakeEffect bool) (np LogicalPlan, hasSemiJoinRewriteHint bool, err error) { if er.schema != nil { outerSchema := er.schema.Clone() er.b.outerSchemas = append(er.b.outerSchemas, outerSchema) @@ -325,18 +327,25 @@ func (er *expressionRewriter) buildSubquery(ctx context.Context, subq *ast.Subqu er.b.outerNames = er.b.outerNames[0 : len(er.b.outerNames)-1] }() } + // Store the old value before we enter the subquery and reset they to default value. + oldRewriteHintCanTakeEffect := er.b.checkSemiJoinHint + er.b.checkSemiJoinHint = rewriteHintCanTakeEffect + oldHasHint := er.b.hasValidSemiJoinHint + er.b.hasValidSemiJoinHint = false outerWindowSpecs := er.b.windowSpecs defer func() { er.b.windowSpecs = outerWindowSpecs + er.b.checkSemiJoinHint = oldRewriteHintCanTakeEffect + er.b.hasValidSemiJoinHint = oldHasHint }() - np, err := er.b.buildResultSetNode(ctx, subq.Query) + np, err = er.b.buildResultSetNode(ctx, subq.Query) if err != nil { - return nil, err + return nil, false, err } // Pop the handle map generated by the subquery. er.b.handleHelper.popMap() - return np, nil + return np, er.b.hasValidSemiJoinHint, nil } // Enter implements Visitor interface. @@ -500,7 +509,7 @@ func (er *expressionRewriter) buildSemiApplyFromEqualSubq(np LogicalPlan, l, r e if er.err != nil { return } - er.p, er.err = er.b.buildSemiApply(er.p, np, []expression.Expression{condition}, er.asScalar, not) + er.p, er.err = er.b.buildSemiApply(er.p, np, []expression.Expression{condition}, er.asScalar, not, false) } func (er *expressionRewriter) handleCompareSubquery(ctx context.Context, v *ast.CompareSubqueryExpr) (ast.Node, bool) { @@ -516,7 +525,7 @@ func (er *expressionRewriter) handleCompareSubquery(ctx context.Context, v *ast. er.err = errors.Errorf("Unknown compare type %T", v.R) return v, true } - np, err := er.buildSubquery(ctx, subq) + np, _, err := er.buildSubquery(ctx, subq, false) if err != nil { er.err = err return v, true @@ -690,7 +699,7 @@ func (er *expressionRewriter) buildQuantifierPlan(plan4Agg *LogicalAggregation, // plan4Agg.buildProjectionIfNecessary() if !er.asScalar { // For Semi LogicalApply without aux column, the result is no matter false or null. So we can add it to join predicate. - er.p, er.err = er.b.buildSemiApply(er.p, plan4Agg, []expression.Expression{cond}, false, false) + er.p, er.err = er.b.buildSemiApply(er.p, plan4Agg, []expression.Expression{cond}, false, false, false) return } // If we treat the result as a scalar value, we will add a projection with a extra column to output true, false or null. @@ -810,14 +819,14 @@ func (er *expressionRewriter) handleExistSubquery(ctx context.Context, v *ast.Ex er.err = errors.Errorf("Unknown exists type %T", v.Sel) return v, true } - np, err := er.buildSubquery(ctx, subq) + np, hasRewriteHint, err := er.buildSubquery(ctx, subq, true) if err != nil { er.err = err return v, true } np = er.popExistsSubPlan(np) if len(ExtractCorrelatedCols4LogicalPlan(np)) > 0 { - er.p, er.err = er.b.buildSemiApply(er.p, np, nil, er.asScalar, v.Not) + er.p, er.err = er.b.buildSemiApply(er.p, np, nil, er.asScalar, v.Not, hasRewriteHint) if er.err != nil || !er.asScalar { return v, true } @@ -884,7 +893,7 @@ func (er *expressionRewriter) handleInSubquery(ctx context.Context, v *ast.Patte er.err = errors.Errorf("Unknown compare type %T", v.Sel) return v, true } - np, err := er.buildSubquery(ctx, subq) + np, _, err := er.buildSubquery(ctx, subq, false) if err != nil { er.err = err return v, true @@ -968,7 +977,7 @@ func (er *expressionRewriter) handleInSubquery(ctx context.Context, v *ast.Patte } er.p = join } else { - er.p, er.err = er.b.buildSemiApply(er.p, np, expression.SplitCNFItems(checkCondition), asScalar, v.Not) + er.p, er.err = er.b.buildSemiApply(er.p, np, expression.SplitCNFItems(checkCondition), asScalar, v.Not, false) if er.err != nil { return v, true } @@ -985,7 +994,7 @@ func (er *expressionRewriter) handleInSubquery(ctx context.Context, v *ast.Patte func (er *expressionRewriter) handleScalarSubquery(ctx context.Context, v *ast.SubqueryExpr) (ast.Node, bool) { ci := er.b.prepareCTECheckForSubQuery() defer resetCTECheckForSubQuery(ci) - np, err := er.buildSubquery(ctx, v) + np, _, err := er.buildSubquery(ctx, v, false) if err != nil { er.err = err return v, true diff --git a/planner/core/expression_rewriter_test.go b/planner/core/expression_rewriter_test.go index 93d94a3750410..e3d8e0be2bf65 100644 --- a/planner/core/expression_rewriter_test.go +++ b/planner/core/expression_rewriter_test.go @@ -425,3 +425,24 @@ func TestMultiColInExpression(t *testing.T) { tk.MustQuery(tt).Sort().Check(testkit.Rows(output[i].Res...)) } } + +func TestBitFuncsReturnType(t *testing.T) { + store, clean := testkit.CreateMockStore(t) + defer clean() + tk := testkit.NewTestKit(t, store) + tk.MustExec("use test") + tk.MustExec("drop table if exists t") + tk.MustExec("create table t (a timestamp, b varbinary(32))") + tk.MustExec("insert into t values ('2006-08-27 21:57:57', 0x373037343631313230)") + tk.MustExec("analyze table t") + var input []string + var output []struct { + Plan []string + } + + expressionRewriterSuiteData := plannercore.GetExpressionRewriterSuiteData() + expressionRewriterSuiteData.GetTestCases(t, &input, &output) + for i, tt := range input { + tk.MustQuery("explain format = 'brief' " + tt).Check(testkit.Rows(output[i].Plan...)) + } +} diff --git a/planner/core/find_best_task.go b/planner/core/find_best_task.go index 13c559d9c66c5..1d97e73cf8541 100644 --- a/planner/core/find_best_task.go +++ b/planner/core/find_best_task.go @@ -289,30 +289,35 @@ func (p *baseLogicalPlan) enumeratePhysicalPlans4Task(physicalPlans []PhysicalPl // compareTaskCost compares cost of curTask and bestTask and returns whether curTask's cost is smaller than bestTask's. func compareTaskCost(ctx sessionctx.Context, curTask, bestTask task) (curIsBetter bool, err error) { - if curTask.invalid() { + curCost, curInvalid, err := getTaskPlanCost(curTask) + if err != nil { + return false, err + } + bestCost, bestInvalid, err := getTaskPlanCost(bestTask) + if err != nil { + return false, err + } + if curInvalid { return false, nil } - if bestTask.invalid() { + if bestInvalid { return true, nil } - if ctx.GetSessionVars().EnableNewCostInterface { // use the new cost interface - curCost, err := getTaskPlanCost(curTask) - if err != nil { - return false, err - } - bestCost, err := getTaskPlanCost(bestTask) - if err != nil { - return false, err - } - return curCost < bestCost, nil - } - return curTask.cost() < bestTask.cost(), nil + return curCost < bestCost, nil } -func getTaskPlanCost(t task) (float64, error) { +// getTaskPlanCost returns the cost of this task. +// The new cost interface will be used if EnableNewCostInterface is true. +// The second returned value indicates whether this task is valid. +func getTaskPlanCost(t task) (float64, bool, error) { if t.invalid() { - return math.MaxFloat64, nil + return math.MaxFloat64, true, nil } + if !t.plan().SCtx().GetSessionVars().EnableNewCostInterface { + return t.cost(), false, nil + } + + // use the new cost interface var taskType property.TaskType switch t.(type) { case *rootTask: @@ -322,9 +327,10 @@ func getTaskPlanCost(t task) (float64, error) { case *mppTask: taskType = property.MppTaskType default: - return 0, errors.New("unknown task type") + return 0, false, errors.New("unknown task type") } - return t.plan().GetPlanCost(taskType, 0) + cost, err := t.plan().GetPlanCost(taskType, 0) + return cost, false, err } type physicalOptimizeOp struct { @@ -341,30 +347,16 @@ func (op *physicalOptimizeOp) withEnableOptimizeTracer(tracer *tracing.PhysicalO return op } -func (op *physicalOptimizeOp) buildPhysicalOptimizeTraceInfo(p LogicalPlan) { - if op == nil || op.tracer == nil { - return - } - name := tracing.CodecPlanName(p.TP(), p.ID()) - if _, ok := op.tracer.State[name]; !ok { - op.tracer.State[name] = make(map[string]*tracing.PlanTrace) - } -} - func (op *physicalOptimizeOp) appendCandidate(lp LogicalPlan, pp PhysicalPlan, prop *property.PhysicalProperty) { if op == nil || op.tracer == nil || pp == nil { return } - PhysicalPlanTrace := &tracing.PlanTrace{TP: pp.TP(), ID: pp.ID(), - ExplainInfo: pp.ExplainInfo(), Cost: pp.Cost(), ProperType: prop.String()} - name := tracing.CodecPlanName(lp.TP(), lp.ID()) - key := tracing.CodecPlanName(pp.TP(), pp.ID()) - pps := op.tracer.State[name] - if pps == nil { - op.buildPhysicalOptimizeTraceInfo(lp) - } - pps[key] = PhysicalPlanTrace - op.tracer.State[name] = pps + candidate := &tracing.CandidatePlanTrace{ + PlanTrace: &tracing.PlanTrace{TP: pp.TP(), ID: pp.ID(), + ExplainInfo: pp.ExplainInfo(), Cost: pp.Cost(), ProperType: prop.String()}, + MappingLogicalPlan: tracing.CodecPlanName(lp.TP(), lp.ID())} + op.tracer.AppendCandidate(candidate) + pp.appendChildCandidate(op) } // findBestTask implements LogicalPlan interface. @@ -439,7 +431,6 @@ func (p *baseLogicalPlan) findBestTask(prop *property.PhysicalProperty, planCoun var cnt int64 var curTask task - opt.buildPhysicalOptimizeTraceInfo(p) if bestTask, cnt, err = p.enumeratePhysicalPlans4Task(plansFitsProp, newProp, false, planCounter, opt); err != nil { return nil, 0, err } @@ -876,7 +867,6 @@ func (ds *DataSource) findBestTask(prop *property.PhysicalProperty, planCounter } }() - opt.buildPhysicalOptimizeTraceInfo(ds) cntPlan = 0 for _, candidate := range candidates { path := candidate.path @@ -1401,6 +1391,7 @@ func (ds *DataSource) convertToIndexScan(prop *property.PhysicalProperty, Columns: ds.Columns, Table: is.Table, TableAsName: ds.TableAsName, + DBName: ds.DBName, isPartition: ds.isPartition, physicalTableID: ds.physicalTableID, tblCols: ds.TblCols, @@ -1887,7 +1878,8 @@ func (ds *DataSource) convertToTableScan(prop *property.PhysicalProperty, candid return invalidTask, nil } ts, cost, _ := ds.getOriginalPhysicalTableScan(prop, candidate.path, candidate.isMatchProp) - if ts.KeepOrder && ts.Desc && ts.StoreType == kv.TiFlash { + if ts.KeepOrder && ts.StoreType == kv.TiFlash && (ts.Desc || ts.Table.TiFlashMode == model.TiFlashModeFast) { + // TiFlash fast mode(https://github.com/pingcap/tidb/pull/35851) does not keep order in TableScan return invalidTask, nil } if prop.TaskTp == property.MppTaskType { @@ -1917,7 +1909,7 @@ func (ds *DataSource) convertToTableScan(prop *property.PhysicalProperty, candid ColumnNames: ds.names, } ts.cost = cost - mppTask = ts.addPushedDownSelectionToMppTask(mppTask, ds.stats) + mppTask = ts.addPushedDownSelectionToMppTask(mppTask, ds.stats.ScaleByExpectCnt(prop.ExpectedCnt)) return mppTask, nil } copTask := &copTask{ @@ -2079,6 +2071,7 @@ func (ds *DataSource) convertToBatchPointGet(prop *property.PhysicalProperty, accessCnt := math.Min(candidate.path.CountAfterAccess, float64(len(candidate.path.Ranges))) batchPointGetPlan := BatchPointGetPlan{ ctx: ds.ctx, + dbName: ds.DBName.L, AccessConditions: candidate.path.AccessConds, TblInfo: ds.TableInfo(), KeepOrder: !prop.IsSortItemEmpty(), @@ -2212,6 +2205,7 @@ func (ds *DataSource) getOriginalPhysicalTableScan(prop *property.PhysicalProper HandleCols: ds.handleCols, tblCols: ds.TblCols, tblColHists: ds.TblColHists, + prop: prop, }.Init(ds.ctx, ds.blockOffset) ts.filterCondition = make([]expression.Expression, len(path.TableFilters)) copy(ts.filterCondition, path.TableFilters) @@ -2281,6 +2275,7 @@ func (ds *DataSource) getOriginalPhysicalIndexScan(prop *property.PhysicalProper physicalTableID: ds.physicalTableID, tblColHists: ds.TblColHists, pkIsHandleCol: ds.getPKIsHandleCol(), + prop: prop, }.Init(ds.ctx, ds.blockOffset) statsTbl := ds.statisticTable if statsTbl.Indices[idx.ID] != nil { diff --git a/planner/core/flat_plan.go b/planner/core/flat_plan.go index fbdae38d4ef49..717b1f415c774 100644 --- a/planner/core/flat_plan.go +++ b/planner/core/flat_plan.go @@ -213,8 +213,11 @@ func (f *FlatPhysicalPlan) flattenRecursively(p Plan, info *operatorCtx, target childIdxs := make([]int, 0) var childIdx int childCtx := &operatorCtx{ - depth: info.depth + 1, - indent: texttree.Indent4Child(info.indent, info.isLastChild), + depth: info.depth + 1, + isRoot: info.isRoot, + storeType: info.storeType, + reqType: info.reqType, + indent: texttree.Indent4Child(info.indent, info.isLastChild), } // For physical operators, we just enumerate their children and collect their information. // Note that some physical operators are special, and they are handled below this part. @@ -268,9 +271,6 @@ func (f *FlatPhysicalPlan) flattenRecursively(p Plan, info *operatorCtx, target } for i := range children { - childCtx.isRoot = info.isRoot - childCtx.storeType = info.storeType - childCtx.reqType = info.reqType childCtx.label = label[i] childCtx.isLastChild = i == len(children)-1 target, childIdx = f.flattenRecursively(children[i], childCtx, target) diff --git a/planner/core/hints.go b/planner/core/hints.go index b4ad15042ef43..241b95f1c47dd 100644 --- a/planner/core/hints.go +++ b/planner/core/hints.go @@ -22,7 +22,44 @@ import ( utilhint "github.com/pingcap/tidb/util/hint" ) +// GenHintsFromFlatPlan generates hints from a FlatPhysicalPlan. +func GenHintsFromFlatPlan(flat *FlatPhysicalPlan) []*ast.TableOptimizerHint { + if len(flat.Main) == 0 { + return nil + } + nodeTp := utilhint.TypeSelect + switch flat.Main[0].Origin.(type) { + case *Update: + nodeTp = utilhint.TypeUpdate + case *Delete: + nodeTp = utilhint.TypeDelete + } + var hints []*ast.TableOptimizerHint + selectPlan := flat.Main.GetSelectPlan() + if len(selectPlan) == 0 || !selectPlan[0].IsPhysicalPlan { + return nil + } + for _, op := range selectPlan { + if !op.IsRoot { + continue + } + p := op.Origin.(PhysicalPlan) + hints = genHintsFromSingle(p, nodeTp, hints) + } + for _, cte := range flat.CTEs { + for i, op := range cte { + if i == 0 || !op.IsRoot { + continue + } + p := op.Origin.(PhysicalPlan) + hints = genHintsFromSingle(p, nodeTp, hints) + } + } + return hints +} + // GenHintsFromPhysicalPlan generates hints from physical plan. +// Deprecated: FlattenPhysicalPlan() + GenHintsFromFlatPlan() is preferred. func GenHintsFromPhysicalPlan(p Plan) []*ast.TableOptimizerHint { var hints []*ast.TableOptimizerHint switch pp := p.(type) { @@ -127,6 +164,10 @@ func genHintsFromPhysicalPlan(p PhysicalPlan, nodeType utilhint.NodeType) (res [ res = append(res, genHintsFromPhysicalPlan(phCte.CTE.recursivePartPhysicalPlan, nodeType)...) } + return genHintsFromSingle(p, nodeType, res) +} + +func genHintsFromSingle(p PhysicalPlan, nodeType utilhint.NodeType, res []*ast.TableOptimizerHint) []*ast.TableOptimizerHint { qbName, err := utilhint.GenerateQBName(nodeType, p.SelectBlockOffset()) if err != nil { return res diff --git a/planner/core/integration_test.go b/planner/core/integration_test.go index e059d97711560..b8bdec71a621f 100644 --- a/planner/core/integration_test.go +++ b/planner/core/integration_test.go @@ -555,6 +555,48 @@ func TestPushDownToTiFlashWithKeepOrder(t *testing.T) { } } +func TestPushDownToTiFlashWithKeepOrderInFastMode(t *testing.T) { + store, clean := testkit.CreateMockStore(t) + defer clean() + tk := testkit.NewTestKit(t, store) + tk.MustExec("use test") + tk.MustExec("drop table if exists t") + tk.MustExec("create table t(a int primary key, b varchar(20))") + tk.MustExec("alter table t set tiflash mode fast") + + // Create virtual tiflash replica info. + dom := domain.GetDomain(tk.Session()) + is := dom.InfoSchema() + db, exists := is.SchemaByName(model.NewCIStr("test")) + require.True(t, exists) + for _, tblInfo := range db.Tables { + if tblInfo.Name.L == "t" { + tblInfo.TiFlashReplica = &model.TiFlashReplicaInfo{ + Count: 1, + Available: true, + } + } + } + + tk.MustExec("set @@session.tidb_isolation_read_engines = 'tiflash'") + tk.MustExec("set @@session.tidb_allow_mpp = 0") + var input []string + var output []struct { + SQL string + Plan []string + } + integrationSuiteData := core.GetIntegrationSuiteData() + integrationSuiteData.GetTestCases(t, &input, &output) + for i, tt := range input { + testdata.OnRecord(func() { + output[i].SQL = tt + output[i].Plan = testdata.ConvertRowsToStrings(tk.MustQuery(tt).Rows()) + }) + res := tk.MustQuery(tt) + res.Check(testkit.Rows(output[i].Plan...)) + } +} + func TestMPPJoin(t *testing.T) { store, clean := testkit.CreateMockStore(t) defer clean() @@ -4376,6 +4418,48 @@ func TestPushDownProjectionForTiFlash(t *testing.T) { } } +func TestPushDownSelectionForMPP(t *testing.T) { + store, clean := testkit.CreateMockStore(t) + defer clean() + tk := testkit.NewTestKit(t, store) + tk.MustExec("use test") + tk.MustExec("drop table if exists t") + tk.MustExec("create table t (id int, value decimal(6,3), name char(128))") + tk.MustExec("analyze table t") + + // Create virtual tiflash replica info. + dom := domain.GetDomain(tk.Session()) + is := dom.InfoSchema() + db, exists := is.SchemaByName(model.NewCIStr("test")) + require.True(t, exists) + for _, tblInfo := range db.Tables { + if tblInfo.Name.L == "t" { + tblInfo.TiFlashReplica = &model.TiFlashReplicaInfo{ + Count: 1, + Available: true, + } + } + } + + tk.MustExec("set @@tidb_allow_mpp=1; set @@tidb_enforce_mpp=1;") + + var input []string + var output []struct { + SQL string + Plan []string + } + integrationSuiteData := core.GetIntegrationSuiteData() + integrationSuiteData.GetTestCases(t, &input, &output) + for i, tt := range input { + testdata.OnRecord(func() { + output[i].SQL = tt + output[i].Plan = testdata.ConvertRowsToStrings(tk.MustQuery(tt).Rows()) + }) + res := tk.MustQuery(tt) + res.Check(testkit.Rows(output[i].Plan...)) + } +} + func TestPushDownProjectionForMPP(t *testing.T) { store, clean := testkit.CreateMockStore(t) defer clean() @@ -5576,24 +5660,24 @@ func TestIndexJoinCost(t *testing.T) { `│ └─Selection_17 9990.00 465000.00 cop[tikv] not(isnull(test.t_outer.a))`, `│ └─TableFullScan_16 10000.00 435000.00 cop[tikv] table:t_outer keep order:false, stats:pseudo`, `└─TableReader_8(Probe) 1.00 3.88 root data:TableRangeScan_7`, - ` └─TableRangeScan_7 1.00 0.00 cop[tikv] table:t_inner_pk range: decided by [test.t_outer.a], keep order:false, stats:pseudo`)) + ` └─TableRangeScan_7 1.00 30.00 cop[tikv] table:t_inner_pk range: decided by [test.t_outer.a], keep order:false, stats:pseudo`)) tk.MustQuery(`explain format=verbose select /*+ TIDB_INLJ(t_outer, t_inner_idx) */ t_inner_idx.a from t_outer, t_inner_idx where t_outer.a=t_inner_idx.a`).Check(testkit.Rows( // IndexJoin with inner IndexScan `IndexJoin_10 12487.50 235192.19 root inner join, inner:IndexReader_9, outer key:test.t_outer.a, inner key:test.t_inner_idx.a, equal cond:eq(test.t_outer.a, test.t_inner_idx.a)`, `├─TableReader_20(Build) 9990.00 36412.58 root data:Selection_19`, `│ └─Selection_19 9990.00 465000.00 cop[tikv] not(isnull(test.t_outer.a))`, `│ └─TableFullScan_18 10000.00 435000.00 cop[tikv] table:t_outer keep order:false, stats:pseudo`, `└─IndexReader_9(Probe) 1.25 5.89 root index:Selection_8`, - ` └─Selection_8 1.25 0.00 cop[tikv] not(isnull(test.t_inner_idx.a))`, - ` └─IndexRangeScan_7 1.25 0.00 cop[tikv] table:t_inner_idx, index:a(a) range: decided by [eq(test.t_inner_idx.a, test.t_outer.a)], keep order:false, stats:pseudo`)) + ` └─Selection_8 1.25 58.18 cop[tikv] not(isnull(test.t_inner_idx.a))`, + ` └─IndexRangeScan_7 1.25 54.43 cop[tikv] table:t_inner_idx, index:a(a) range: decided by [eq(test.t_inner_idx.a, test.t_outer.a)], keep order:false, stats:pseudo`)) tk.MustQuery(`explain format=verbose select /*+ TIDB_INLJ(t_outer, t_inner_idx) */ * from t_outer, t_inner_idx where t_outer.a=t_inner_idx.a`).Check(testkit.Rows( // IndexJoin with inner IndexLookup `IndexJoin_11 12487.50 531469.38 root inner join, inner:IndexLookUp_10, outer key:test.t_outer.a, inner key:test.t_inner_idx.a, equal cond:eq(test.t_outer.a, test.t_inner_idx.a)`, `├─TableReader_23(Build) 9990.00 36412.58 root data:Selection_22`, `│ └─Selection_22 9990.00 465000.00 cop[tikv] not(isnull(test.t_outer.a))`, `│ └─TableFullScan_21 10000.00 435000.00 cop[tikv] table:t_outer keep order:false, stats:pseudo`, `└─IndexLookUp_10(Probe) 1.25 35.55 root `, - ` ├─Selection_9(Build) 1.25 0.00 cop[tikv] not(isnull(test.t_inner_idx.a))`, - ` │ └─IndexRangeScan_7 1.25 0.00 cop[tikv] table:t_inner_idx, index:a(a) range: decided by [eq(test.t_inner_idx.a, test.t_outer.a)], keep order:false, stats:pseudo`, - ` └─TableRowIDScan_8(Probe) 1.25 0.00 cop[tikv] table:t_inner_idx keep order:false, stats:pseudo`)) + ` ├─Selection_9(Build) 1.25 75.08 cop[tikv] not(isnull(test.t_inner_idx.a))`, + ` │ └─IndexRangeScan_7 1.25 71.32 cop[tikv] table:t_inner_idx, index:a(a) range: decided by [eq(test.t_inner_idx.a, test.t_outer.a)], keep order:false, stats:pseudo`, + ` └─TableRowIDScan_8(Probe) 1.25 71.25 cop[tikv] table:t_inner_idx keep order:false, stats:pseudo`)) tk.MustQuery("explain format=verbose select /*+ inl_hash_join(t_outer, t_inner_idx) */ t_inner_idx.a from t_outer, t_inner_idx where t_outer.a=t_inner_idx.a").Check(testkit.Rows( `IndexHashJoin_12 12487.50 235192.19 root inner join, inner:IndexReader_9, outer key:test.t_outer.a, inner key:test.t_inner_idx.a, equal cond:eq(test.t_outer.a, test.t_inner_idx.a)`, @@ -5601,16 +5685,16 @@ func TestIndexJoinCost(t *testing.T) { `│ └─Selection_19 9990.00 465000.00 cop[tikv] not(isnull(test.t_outer.a))`, `│ └─TableFullScan_18 10000.00 435000.00 cop[tikv] table:t_outer keep order:false, stats:pseudo`, `└─IndexReader_9(Probe) 1.25 5.89 root index:Selection_8`, - ` └─Selection_8 1.25 0.00 cop[tikv] not(isnull(test.t_inner_idx.a))`, - ` └─IndexRangeScan_7 1.25 0.00 cop[tikv] table:t_inner_idx, index:a(a) range: decided by [eq(test.t_inner_idx.a, test.t_outer.a)], keep order:false, stats:pseudo`)) + ` └─Selection_8 1.25 58.18 cop[tikv] not(isnull(test.t_inner_idx.a))`, + ` └─IndexRangeScan_7 1.25 54.43 cop[tikv] table:t_inner_idx, index:a(a) range: decided by [eq(test.t_inner_idx.a, test.t_outer.a)], keep order:false, stats:pseudo`)) tk.MustQuery("explain format=verbose select /*+ inl_merge_join(t_outer, t_inner_idx) */ t_inner_idx.a from t_outer, t_inner_idx where t_outer.a=t_inner_idx.a").Check(testkit.Rows( `IndexMergeJoin_17 12487.50 229210.68 root inner join, inner:IndexReader_15, outer key:test.t_outer.a, inner key:test.t_inner_idx.a`, `├─TableReader_20(Build) 9990.00 36412.58 root data:Selection_19`, `│ └─Selection_19 9990.00 465000.00 cop[tikv] not(isnull(test.t_outer.a))`, `│ └─TableFullScan_18 10000.00 435000.00 cop[tikv] table:t_outer keep order:false, stats:pseudo`, `└─IndexReader_15(Probe) 1.25 5.89 root index:Selection_14`, - ` └─Selection_14 1.25 0.00 cop[tikv] not(isnull(test.t_inner_idx.a))`, - ` └─IndexRangeScan_13 1.25 0.00 cop[tikv] table:t_inner_idx, index:a(a) range: decided by [eq(test.t_inner_idx.a, test.t_outer.a)], keep order:true, stats:pseudo`)) + ` └─Selection_14 1.25 58.18 cop[tikv] not(isnull(test.t_inner_idx.a))`, + ` └─IndexRangeScan_13 1.25 54.43 cop[tikv] table:t_inner_idx, index:a(a) range: decided by [eq(test.t_inner_idx.a, test.t_outer.a)], keep order:true, stats:pseudo`)) } func TestHeuristicIndexSelection(t *testing.T) { @@ -6989,3 +7073,139 @@ func TestIssue25813(t *testing.T) { " └─TableReader(Probe) 10000.00 root data:TableFullScan", " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo")) } + +func TestRepeatPushDownToTiFlash(t *testing.T) { + store, clean := testkit.CreateMockStore(t) + defer clean() + tk := testkit.NewTestKit(t, store) + tk.MustExec("use test") + tk.MustExec("drop table if exists t") + tk.MustExec("create table t(a int, b int)") + tk.MustExec("insert into t values(2147483647, 2)") + tk.MustExec("insert into t values(12, 2)") + tk.MustExec("set @@tidb_allow_mpp=1; set @@tidb_enforce_mpp=1") + tk.MustExec("set @@tidb_isolation_read_engines = 'tiflash'") + + // Create virtual tiflash replica info. + dom := domain.GetDomain(tk.Session()) + is := dom.InfoSchema() + db, exists := is.SchemaByName(model.NewCIStr("test")) + require.True(t, exists) + for _, tblInfo := range db.Tables { + if tblInfo.Name.L == "t" { + tblInfo.TiFlashReplica = &model.TiFlashReplicaInfo{ + Count: 1, + Available: true, + } + } + } + + rows := [][]interface{}{ + {"TableReader_9", "root", "data:ExchangeSender_8"}, + {"└─ExchangeSender_8", "mpp[tiflash]", "ExchangeType: PassThrough"}, + {" └─Projection_4", "mpp[tiflash]", "repeat(cast(test.t.a, var_string(20)), test.t.b)->Column#4"}, + {" └─TableFullScan_7", "mpp[tiflash]", "keep order:false, stats:pseudo"}, + } + tk.MustQuery("explain select repeat(a,b) from t;").CheckAt([]int{0, 2, 4}, rows) +} + +func TestIssue36194(t *testing.T) { + store, dom, clean := testkit.CreateMockStoreAndDomain(t) + defer clean() + tk := testkit.NewTestKit(t, store) + tk.MustExec("use test") + tk.MustExec("drop table if exists t") + tk.MustExec("create table t(a int)") + // create virtual tiflash replica. + is := dom.InfoSchema() + db, exists := is.SchemaByName(model.NewCIStr("test")) + require.True(t, exists) + for _, tblInfo := range db.Tables { + if tblInfo.Name.L == "t" { + tblInfo.TiFlashReplica = &model.TiFlashReplicaInfo{ + Count: 1, + Available: true, + } + } + } + tk.MustQuery("explain format = 'brief' select * from t where a + 1 > 20 limit 100;;").Check(testkit.Rows( + "Limit 100.00 root offset:0, count:100", + "└─TableReader 100.00 root data:ExchangeSender", + " └─ExchangeSender 100.00 mpp[tiflash] ExchangeType: PassThrough", + " └─Limit 100.00 mpp[tiflash] offset:0, count:100", + " └─Selection 100.00 mpp[tiflash] gt(plus(test.t.a, 1), 20)", + " └─TableFullScan 125.00 mpp[tiflash] table:t keep order:false, stats:pseudo")) +} + +func TestGetFormatPushDownToTiFlash(t *testing.T) { + store, dom, clean := testkit.CreateMockStoreAndDomain(t) + defer clean() + tk := testkit.NewTestKit(t, store) + + tk.MustExec("use test") + tk.MustExec("create table t(location varchar(10));") + tk.MustExec("insert into t values('USA'), ('JIS'), ('ISO'), ('EUR'), ('INTERNAL')") + tk.MustExec("set @@tidb_enforce_mpp=1;") + tk.MustExec("set @@tidb_isolation_read_engines = 'tiflash';") + + tbl, err := dom.InfoSchema().TableByName(model.CIStr{O: "test", L: "test"}, model.CIStr{O: "t", L: "t"}) + require.NoError(t, err) + // Set the hacked TiFlash replica for explain tests. + tbl.Meta().TiFlashReplica = &model.TiFlashReplicaInfo{Count: 1, Available: true} + + tk.MustQuery("explain format = 'brief' select GET_FORMAT(DATE, location) from t;").Check(testkit.Rows( + "TableReader 10000.00 root data:ExchangeSender", + "└─ExchangeSender 10000.00 mpp[tiflash] ExchangeType: PassThrough", + " └─Projection 10000.00 mpp[tiflash] get_format(DATE, test.t.location)->Column#3", + " └─TableFullScan 10000.00 mpp[tiflash] table:t keep order:false, stats:pseudo")) +} + +func TestAggWithJsonPushDownToTiFlash(t *testing.T) { + store, clean := testkit.CreateMockStore(t) + defer clean() + tk := testkit.NewTestKit(t, store) + tk.MustExec("use test") + tk.MustExec("drop table if exists t") + tk.MustExec("create table t(a json);") + tk.MustExec("insert into t values(null);") + tk.MustExec("set @@tidb_allow_mpp=1; set @@tidb_enforce_mpp=1;") + tk.MustExec("set @@tidb_isolation_read_engines = 'tiflash'") + + // Create virtual tiflash replica info. + dom := domain.GetDomain(tk.Session()) + is := dom.InfoSchema() + db, exists := is.SchemaByName(model.NewCIStr("test")) + require.True(t, exists) + for _, tblInfo := range db.Tables { + if tblInfo.Name.L == "t" { + tblInfo.TiFlashReplica = &model.TiFlashReplicaInfo{ + Count: 1, + Available: true, + } + } + } + + rows := [][]interface{}{ + {"HashAgg_6", "root", "funcs:avg(Column#4)->Column#3"}, + {"└─Projection_19", "root", "cast(test.t.a, double BINARY)->Column#4"}, + {" └─TableReader_12", "root", "data:TableFullScan_11"}, + {" └─TableFullScan_11", "cop[tiflash]", "keep order:false, stats:pseudo"}, + } + tk.MustQuery("explain select avg(a) from t;").CheckAt([]int{0, 2, 4}, rows) + + rows = [][]interface{}{ + {"HashAgg_6", "root", "funcs:sum(Column#4)->Column#3"}, + {"└─Projection_19", "root", "cast(test.t.a, double BINARY)->Column#4"}, + {" └─TableReader_12", "root", "data:TableFullScan_11"}, + {" └─TableFullScan_11", "cop[tiflash]", "keep order:false, stats:pseudo"}, + } + tk.MustQuery("explain select sum(a) from t;").CheckAt([]int{0, 2, 4}, rows) + + rows = [][]interface{}{ + {"HashAgg_6", "root", "funcs:group_concat(Column#4 separator \",\")->Column#3"}, + {"└─Projection_13", "root", "cast(test.t.a, var_string(4294967295))->Column#4"}, + {" └─TableReader_10", "root", "data:TableFullScan_9"}, + {" └─TableFullScan_9", "cop[tiflash]", "keep order:false, stats:pseudo"}, + } + tk.MustQuery("explain select /*+ hash_agg() */ group_concat(a) from t;").CheckAt([]int{0, 2, 4}, rows) +} diff --git a/planner/core/logical_plan_builder.go b/planner/core/logical_plan_builder.go index 92c2a3dbcfd80..e2fc067b620db 100644 --- a/planner/core/logical_plan_builder.go +++ b/planner/core/logical_plan_builder.go @@ -117,6 +117,10 @@ const ( HintIgnorePlanCache = "ignore_plan_cache" // HintLimitToCop is a hint enforce pushing limit or topn to coprocessor. HintLimitToCop = "limit_to_cop" + //HintMerge is a hint which can switch turning inline for the CTE. + HintMerge = "merge" + // HintSemiJoinRewrite is a hint to force we rewrite the semi join operator as much as possible. + HintSemiJoinRewrite = "semi_join_rewrite" ) const ( @@ -187,6 +191,10 @@ func (b *PlanBuilder) buildAggregation(ctx context.Context, p LogicalPlan, aggFu b.optFlag |= flagEliminateAgg b.optFlag |= flagEliminateProjection + if b.ctx.GetSessionVars().EnableSkewDistinctAgg { + b.optFlag |= flagSkewDistinctAgg + } + plan4Agg := LogicalAggregation{AggFuncs: make([]*aggregation.AggFuncDesc, 0, len(aggFuncList))}.Init(b.ctx, b.getSelectOffset()) if hint := b.TableHints(); hint != nil { plan4Agg.aggHints = hint.aggHints @@ -1757,7 +1765,6 @@ func (b *PlanBuilder) buildUnion(ctx context.Context, selects []LogicalPlan, aft if err != nil { return nil, err } - unionDistinctPlan, err := b.buildUnionAll(ctx, distinctSelectPlans) if err != nil { return nil, err @@ -3517,6 +3524,7 @@ func (b *PlanBuilder) pushTableHints(hints []*ast.TableOptimizerHint, currentLev aggHints aggHintInfo timeRangeHint ast.HintTimeRange limitHints limitHintInfo + MergeHints MergeHintInfo leadingJoinOrder []hintTableInfo leadingHintCnt int ) @@ -3621,11 +3629,23 @@ func (b *PlanBuilder) pushTableHints(hints []*ast.TableOptimizerHint, currentLev timeRangeHint = hint.HintData.(ast.HintTimeRange) case HintLimitToCop: limitHints.preferLimitToCop = true + case HintMerge: + if hint.Tables != nil { + b.ctx.GetSessionVars().StmtCtx.AppendWarning(ErrInternal.GenWithStack("The MERGE hint is not used correctly, maybe it inputs a table name.")) + continue + } + MergeHints.preferMerge = true case HintLeading: if leadingHintCnt == 0 { leadingJoinOrder = append(leadingJoinOrder, tableNames2HintTableInfo(b.ctx, hint.HintName.L, hint.Tables, b.hintProcessor, currentLevel)...) } leadingHintCnt++ + case HintSemiJoinRewrite: + if !b.checkSemiJoinHint { + b.ctx.GetSessionVars().StmtCtx.AppendWarning(ErrInternal.GenWithStack("The SEMI_JOIN_REWRITE hint is not used correctly, maybe it's not in a subquery or the subquery is not EXISTS clause.")) + continue + } + b.hasValidSemiJoinHint = true default: // ignore hints that not implemented } @@ -3651,6 +3671,7 @@ func (b *PlanBuilder) pushTableHints(hints []*ast.TableOptimizerHint, currentLev indexMergeHintList: indexMergeHintList, timeRangeHint: timeRangeHint, limitHints: limitHints, + MergeHints: MergeHints, leadingJoinOrder: leadingJoinOrder, }) } @@ -3776,6 +3797,13 @@ func (b *PlanBuilder) buildSelect(ctx context.Context, sel *ast.SelectStmt) (p L b.isForUpdateRead = true } + // Determines whether to use the Merge hint in a CTE query. + if b.buildingCTE { + if hints := b.TableHints(); hints != nil { + b.outerCTEs[len(b.outerCTEs)-1].isInline = hints.MergeHints.preferMerge + } + } + if sel.With != nil { l := len(b.outerCTEs) defer func() { @@ -3992,6 +4020,11 @@ func (b *PlanBuilder) buildSelect(ctx context.Context, sel *ast.SelectStmt) (p L } } + // If Merge hint is using in outer query, we will not apply this hint. + if hints := b.TableHints(); hints.MergeHints.preferMerge && !b.buildingCTE && len(b.tableHintInfo) == 1 { + b.ctx.GetSessionVars().StmtCtx.AppendWarning(ErrInternal.GenWithStack("Hint merge() is inapplicable. Please check whether the hint is using in outer query, you should use this hint in CTE inner query.")) + } + sel.Fields.Fields = originalFields if oldLen != p.Schema().Len() { proj := LogicalProjection{Exprs: expression.Column2Exprs(p.Schema().Columns[:oldLen])}.Init(b.ctx, b.getSelectOffset()) @@ -4154,6 +4187,24 @@ func (b *PlanBuilder) tryBuildCTE(ctx context.Context, tn *ast.TableName, asName lp := LogicalCTE{cteAsName: tn.Name, cte: cte.cteClass, seedStat: cte.seedStat, isOuterMostCTE: !b.buildingCTE}.Init(b.ctx, b.getSelectOffset()) prevSchema := cte.seedLP.Schema().Clone() lp.SetSchema(getResultCTESchema(cte.seedLP.Schema(), b.ctx.GetSessionVars())) + + if cte.recurLP != nil && cte.isInline { + b.ctx.GetSessionVars().StmtCtx.AppendWarning(ErrInternal.GenWithStack("Hint merge() is inapplicable. Please check whether the CTE use recursive.")) + } + if cte.recurLP == nil && cte.isInline { + lp.MergeHints.preferMerge = cte.isInline + saveCte := make([]*cteInfo, len(b.outerCTEs[i:])) + copy(saveCte, b.outerCTEs[i:]) + b.outerCTEs = b.outerCTEs[:i] + o := b.buildingCTE + b.buildingCTE = false + defer func() { + b.outerCTEs = append(b.outerCTEs, saveCte...) + b.buildingCTE = o + }() + return b.buildDataSourceFromCTEMerge(ctx, cte.def) + } + for i, col := range lp.schema.Columns { lp.cte.ColumnMap[string(col.HashCode(nil))] = prevSchema.Columns[i] } @@ -4176,6 +4227,29 @@ func (b *PlanBuilder) tryBuildCTE(ctx context.Context, tn *ast.TableName, asName return nil, nil } +func (b *PlanBuilder) buildDataSourceFromCTEMerge(ctx context.Context, cte *ast.CommonTableExpression) (LogicalPlan, error) { + p, err := b.buildResultSetNode(ctx, cte.Query.Query) + if err != nil { + return nil, err + } + outPutNames := p.OutputNames() + for _, name := range outPutNames { + name.TblName = cte.Name + name.DBName = model.NewCIStr(b.ctx.GetSessionVars().CurrentDB) + } + + if len(cte.ColNameList) > 0 { + if len(cte.ColNameList) != len(p.OutputNames()) { + return nil, errors.New("CTE columns length is not consistent") + } + for i, n := range cte.ColNameList { + outPutNames[i].ColName = n + } + } + p.SetOutputNames(outPutNames) + return p, nil +} + func (b *PlanBuilder) buildDataSource(ctx context.Context, tn *ast.TableName, asName *model.CIStr) (LogicalPlan, error) { dbName := tn.Schema sessionVars := b.ctx.GetSessionVars() @@ -4866,10 +4940,10 @@ func (b *PlanBuilder) buildApplyWithJoinType(outerPlan, innerPlan LogicalPlan, t } // buildSemiApply builds apply plan with outerPlan and innerPlan, which apply semi-join for every row from outerPlan and the whole innerPlan. -func (b *PlanBuilder) buildSemiApply(outerPlan, innerPlan LogicalPlan, condition []expression.Expression, asScalar, not bool) (LogicalPlan, error) { +func (b *PlanBuilder) buildSemiApply(outerPlan, innerPlan LogicalPlan, condition []expression.Expression, asScalar, not, considerRewrite bool) (LogicalPlan, error) { b.optFlag = b.optFlag | flagPredicatePushDown | flagBuildKeyInfo | flagDecorrelate - join, err := b.buildSemiJoin(outerPlan, innerPlan, condition, asScalar, not) + join, err := b.buildSemiJoin(outerPlan, innerPlan, condition, asScalar, not, considerRewrite) if err != nil { return nil, err } @@ -4905,7 +4979,7 @@ func (b *PlanBuilder) buildMaxOneRow(p LogicalPlan) LogicalPlan { return maxOneRow } -func (b *PlanBuilder) buildSemiJoin(outerPlan, innerPlan LogicalPlan, onCondition []expression.Expression, asScalar bool, not bool) (*LogicalJoin, error) { +func (b *PlanBuilder) buildSemiJoin(outerPlan, innerPlan LogicalPlan, onCondition []expression.Expression, asScalar, not, forceRewrite bool) (*LogicalJoin, error) { joinPlan := LogicalJoin{}.Init(b.ctx, b.getSelectOffset()) for i, expr := range onCondition { onCondition[i] = expr.Decorrelate(outerPlan.Schema()) @@ -4959,6 +5033,10 @@ func (b *PlanBuilder) buildSemiJoin(outerPlan, innerPlan LogicalPlan, onConditio return nil, errors.New("Join hints are conflict, you can only specify one type of join") } } + if forceRewrite { + joinPlan.preferJoinType |= preferRewriteSemiJoin + b.optFlag |= flagSemiJoinRewrite + } return joinPlan, nil } @@ -5280,7 +5358,7 @@ func (b *PlanBuilder) buildUpdateLists(ctx context.Context, tableList []*ast.Tab if !found { return nil, nil, false, infoschema.ErrTableNotExists.GenWithStackByArgs(tn.DBInfo.Name.O, tableInfo.Name.O) } - for i, colInfo := range tableInfo.Columns { + for i, colInfo := range tableVal.Cols() { if !colInfo.IsGenerated() { continue } diff --git a/planner/core/logical_plan_test.go b/planner/core/logical_plan_test.go index 0a73522baa9a3..7b616411b3e2c 100644 --- a/planner/core/logical_plan_test.go +++ b/planner/core/logical_plan_test.go @@ -506,7 +506,7 @@ func TestSubquery(t *testing.T) { p, _, err := BuildLogicalPlanForTest(ctx, s.ctx, stmt, s.is) require.NoError(t, err) if lp, ok := p.(LogicalPlan); ok { - p, err = logicalOptimize(context.TODO(), flagBuildKeyInfo|flagDecorrelate|flagPrunColumns|flagPrunColumnsAgain, lp) + p, err = logicalOptimize(context.TODO(), flagBuildKeyInfo|flagDecorrelate|flagPrunColumns|flagPrunColumnsAgain|flagSemiJoinRewrite, lp) require.NoError(t, err) } testdata.OnRecord(func() { diff --git a/planner/core/logical_plans.go b/planner/core/logical_plans.go index 48b4da2e96cd6..27315d316f45f 100644 --- a/planner/core/logical_plans.go +++ b/planner/core/logical_plans.go @@ -117,6 +117,7 @@ const ( preferHashJoin preferMergeJoin preferBCJoin + preferRewriteSemiJoin preferHashAgg preferStreamAgg ) @@ -1880,6 +1881,7 @@ type LogicalCTE struct { cteAsName model.CIStr seedStat *property.StatsInfo isOuterMostCTE bool + MergeHints MergeHintInfo } // LogicalCTETable is for CTE table diff --git a/planner/core/main_test.go b/planner/core/main_test.go index 6ca488d8e7205..97247f7766e0d 100644 --- a/planner/core/main_test.go +++ b/planner/core/main_test.go @@ -49,6 +49,7 @@ func TestMain(m *testing.M) { testDataMap.LoadTestSuiteData("testdata", "plan_suite_unexported") testDataMap.LoadTestSuiteData("testdata", "join_reorder_suite") testDataMap.LoadTestSuiteData("testdata", "flat_plan_suite") + testDataMap.LoadTestSuiteData("testdata", "binary_plan_suite") indexMergeSuiteData = testDataMap["index_merge_suite"] planSuiteUnexportedData = testDataMap["plan_suite_unexported"] @@ -57,6 +58,7 @@ func TestMain(m *testing.M) { goleak.IgnoreTopFunction("github.com/golang/glog.(*loggingT).flushDaemon"), goleak.IgnoreTopFunction("go.etcd.io/etcd/client/pkg/v3/logutil.(*MergeLogger).outputLoop"), goleak.IgnoreTopFunction("go.opencensus.io/stats/view.(*worker).start"), + goleak.IgnoreTopFunction("gopkg.in/natefinch/lumberjack%2ev2.(*Logger).millRun"), } callback := func(i int) int { @@ -122,3 +124,7 @@ func GetWindowPushDownSuiteData() testdata.TestData { func GetFlatPlanSuiteData() testdata.TestData { return testDataMap["flat_plan_suite"] } + +func GetBinaryPlanSuiteData() testdata.TestData { + return testDataMap["binary_plan_suite"] +} diff --git a/planner/core/optimizer.go b/planner/core/optimizer.go index 20d4fd598e701..d69a9d99ece0b 100644 --- a/planner/core/optimizer.go +++ b/planner/core/optimizer.go @@ -58,7 +58,9 @@ const ( flagStabilizeResults flagBuildKeyInfo flagDecorrelate + flagSemiJoinRewrite flagEliminateAgg + flagSkewDistinctAgg flagEliminateProjection flagMaxMinEliminate flagPredicatePushDown @@ -78,7 +80,9 @@ var optRuleList = []logicalOptRule{ &resultReorder{}, &buildKeySolver{}, &decorrelateSolver{}, + &semiJoinRewriter{}, &aggregationEliminator{}, + &skewDistinctAggRewriter{}, &projectionEliminator{}, &maxMinEliminator{}, &ppdSolver{}, @@ -625,7 +629,7 @@ func physicalOptimize(logic LogicalPlan, planCounter *PlanCounterTp) (plan Physi opt := defaultPhysicalOptimizeOption() stmtCtx := logic.SCtx().GetSessionVars().StmtCtx if stmtCtx.EnableOptimizeTrace { - tracer := &tracing.PhysicalOptimizeTracer{State: make(map[string]map[string]*tracing.PlanTrace)} + tracer := &tracing.PhysicalOptimizeTracer{Candidates: make(map[int]*tracing.CandidatePlanTrace)} opt = opt.withEnableOptimizeTracer(tracer) defer func() { if err == nil { diff --git a/planner/core/physical_plan_test.go b/planner/core/physical_plan_test.go index fe5c5cba7da00..7bf48209077c0 100644 --- a/planner/core/physical_plan_test.go +++ b/planner/core/physical_plan_test.go @@ -278,6 +278,18 @@ func TestDAGPlanTopN(t *testing.T) { } } +func assertSameHints(t *testing.T, expected, actual []*ast.TableOptimizerHint) { + expectedStr := make([]string, 0, len(expected)) + actualStr := make([]string, 0, len(actual)) + for _, h := range expected { + expectedStr = append(expectedStr, hint.RestoreTableOptimizerHint(h)) + } + for _, h := range actual { + actualStr = append(actualStr, hint.RestoreTableOptimizerHint(h)) + } + require.ElementsMatch(t, expectedStr, actualStr) +} + func TestDAGPlanBuilderBasePhysicalPlan(t *testing.T) { store, clean := testkit.CreateMockStore(t) defer clean() @@ -312,7 +324,14 @@ func TestDAGPlanBuilderBasePhysicalPlan(t *testing.T) { output[i].Hints = hint.RestoreOptimizerHints(core.GenHintsFromPhysicalPlan(p)) }) require.Equal(t, output[i].Best, core.ToString(p), fmt.Sprintf("input: %s", tt)) - require.Equal(t, output[i].Hints, hint.RestoreOptimizerHints(core.GenHintsFromPhysicalPlan(p)), fmt.Sprintf("input: %s", tt)) + hints := core.GenHintsFromPhysicalPlan(p) + + // test the new genHints code + flat := core.FlattenPhysicalPlan(p, false) + newHints := core.GenHintsFromFlatPlan(flat) + assertSameHints(t, hints, newHints) + + require.Equal(t, output[i].Hints, hint.RestoreOptimizerHints(hints), fmt.Sprintf("input: %s", tt)) } } @@ -852,8 +871,14 @@ func TestJoinHints(t *testing.T) { require.Equal(t, stmtctx.WarnLevelWarning, warnings[0].Level) require.Equal(t, output[i].Warning, warnings[0].Err.Error()) } + hints := core.GenHintsFromPhysicalPlan(p) - require.Equal(t, output[i].Hints, hint.RestoreOptimizerHints(core.GenHintsFromPhysicalPlan(p)), comment) + // test the new genHints code + flat := core.FlattenPhysicalPlan(p, false) + newHints := core.GenHintsFromFlatPlan(flat) + assertSameHints(t, hints, newHints) + + require.Equal(t, output[i].Hints, hint.RestoreOptimizerHints(hints), comment) } } @@ -911,6 +936,57 @@ func TestAggregationHints(t *testing.T) { } } +func TestSemiJoinRewriteHints(t *testing.T) { + store, clean := testkit.CreateMockStore(t) + defer clean() + tk := testkit.NewTestKit(t, store) + tk.MustExec("use test") + tk.MustExec("create table t(a int, b int, c int)") + + sessionVars := tk.Session().GetSessionVars() + sessionVars.SetHashAggFinalConcurrency(1) + sessionVars.SetHashAggPartialConcurrency(1) + + var input []string + var output []struct { + SQL string + Plan []string + Warning string + } + planSuiteData := core.GetPlanSuiteData() + planSuiteData.GetTestCases(t, &input, &output) + ctx := context.Background() + p := parser.New() + is := infoschema.MockInfoSchema([]*model.TableInfo{core.MockSignedTable(), core.MockUnsignedTable()}) + for i, test := range input { + comment := fmt.Sprintf("case: %v sql: %v", i, test) + tk.Session().GetSessionVars().StmtCtx.SetWarnings(nil) + + stmt, err := p.ParseOneStmt(test, "", "") + require.NoError(t, err, comment) + + _, _, err = planner.Optimize(ctx, tk.Session(), stmt, is) + require.NoError(t, err) + warnings := tk.Session().GetSessionVars().StmtCtx.GetWarnings() + + testdata.OnRecord(func() { + output[i].SQL = test + output[i].Plan = testdata.ConvertRowsToStrings(tk.MustQuery("explain format = 'brief'" + test).Rows()) + if len(warnings) > 0 { + output[i].Warning = warnings[0].Err.Error() + } + }) + tk.MustQuery("explain format = 'brief'" + test).Check(testkit.Rows(output[i].Plan...)) + if output[i].Warning == "" { + require.Len(t, warnings, 0) + } else { + require.Len(t, warnings, 1, fmt.Sprintf("%v", warnings)) + require.Equal(t, stmtctx.WarnLevelWarning, warnings[0].Level) + require.Equal(t, output[i].Warning, warnings[0].Err.Error()) + } + } +} + func TestExplainJoinHints(t *testing.T) { store, clean := testkit.CreateMockStore(t) defer clean() @@ -919,10 +995,10 @@ func TestExplainJoinHints(t *testing.T) { tk.MustExec("drop table if exists t") tk.MustExec("create table t(a int, b int, c int, key(b), key(c))") tk.MustQuery("explain format='hint' select /*+ inl_merge_join(t2) */ * from t t1 inner join t t2 on t1.b = t2.b and t1.c = 1").Check(testkit.Rows( - "use_index(@`sel_1` `test`.`t1` `c`), use_index(@`sel_1` `test`.`t2` `b`), inl_merge_join(@`sel_1` `test`.`t2`), inl_merge_join(`t2`)", + "inl_merge_join(@`sel_1` `test`.`t2`), use_index(@`sel_1` `test`.`t1` `c`), use_index(@`sel_1` `test`.`t2` `b`), inl_merge_join(`t2`)", )) tk.MustQuery("explain format='hint' select /*+ inl_hash_join(t2) */ * from t t1 inner join t t2 on t1.b = t2.b and t1.c = 1").Check(testkit.Rows( - "use_index(@`sel_1` `test`.`t1` `c`), use_index(@`sel_1` `test`.`t2` `b`), inl_hash_join(@`sel_1` `test`.`t2`), inl_hash_join(`t2`)", + "inl_hash_join(@`sel_1` `test`.`t2`), use_index(@`sel_1` `test`.`t1` `c`), use_index(@`sel_1` `test`.`t2` `b`), inl_hash_join(`t2`)", )) } @@ -1034,6 +1110,76 @@ func TestLimitToCopHint(t *testing.T) { } } +func TestCTEMergeHint(t *testing.T) { + store, clean := testkit.CreateMockStore(t) + defer clean() + tk := testkit.NewTestKit(t, store) + tk.MustExec("use test") + tk.MustExec("drop table if exists tc") + tk.MustExec("drop table if exists te") + tk.MustExec("drop table if exists t1") + tk.MustExec("drop table if exists t2") + tk.MustExec("drop table if exists t3") + tk.MustExec("drop table if exists t4") + tk.MustExec("create table tc(a int)") + tk.MustExec("create table te(c int)") + tk.MustExec("create table t1(a int)") + tk.MustExec("create table t2(b int)") + tk.MustExec("create table t3(c int)") + tk.MustExec("create table t4(d int)") + tk.MustExec("insert into tc values (1), (5), (10), (15), (20), (30), (50);") + tk.MustExec("insert into te values (1), (5), (10), (25), (40), (60), (100);") + tk.MustExec("insert into t1 values (1), (5), (10), (25), (40), (60), (100);") + tk.MustExec("insert into t2 values (1), (5), (10), (25), (40), (60), (100);") + tk.MustExec("insert into t3 values (1), (5), (10), (25), (40), (60), (100);") + tk.MustExec("insert into t4 values (1), (5), (10), (25), (40), (60), (100);") + tk.MustExec("analyze table tc;") + tk.MustExec("analyze table te;") + tk.MustExec("analyze table t1;") + tk.MustExec("analyze table t2;") + tk.MustExec("analyze table t3;") + tk.MustExec("analyze table t4;") + var ( + input []string + output []struct { + SQL string + Plan []string + Warning []string + } + ) + + planSuiteData := core.GetPlanSuiteData() + planSuiteData.GetTestCases(t, &input, &output) + + for i, ts := range input { + testdata.OnRecord(func() { + output[i].SQL = ts + output[i].Plan = testdata.ConvertRowsToStrings(tk.MustQuery("explain format = 'brief' " + ts).Rows()) + }) + tk.MustQuery("explain format = 'brief' " + ts).Check(testkit.Rows(output[i].Plan...)) + + comment := fmt.Sprintf("case:%v sql:%s", i, ts) + warnings := tk.Session().GetSessionVars().StmtCtx.GetWarnings() + testdata.OnRecord(func() { + if len(warnings) > 0 { + output[i].Warning = make([]string, len(warnings)) + for j, warning := range warnings { + output[i].Warning[j] = warning.Err.Error() + } + } + }) + if len(output[i].Warning) == 0 { + require.Len(t, warnings, 0) + } else { + require.Len(t, warnings, len(output[i].Warning), comment) + for j, warning := range warnings { + require.Equal(t, stmtctx.WarnLevelWarning, warning.Level, comment) + require.Equal(t, output[i].Warning[j], warning.Err.Error(), comment) + } + } + } +} + func TestPushdownDistinctEnable(t *testing.T) { var ( input []string @@ -1268,7 +1414,14 @@ func TestIndexHint(t *testing.T) { } else { require.Len(t, warnings, 0, comment) } - require.Equal(t, output[i].Hints, hint.RestoreOptimizerHints(core.GenHintsFromPhysicalPlan(p)), comment) + hints := core.GenHintsFromPhysicalPlan(p) + + // test the new genHints code + flat := core.FlattenPhysicalPlan(p, false) + newHints := core.GenHintsFromFlatPlan(flat) + assertSameHints(t, hints, newHints) + + require.Equal(t, output[i].Hints, hint.RestoreOptimizerHints(hints), comment) } } @@ -1315,7 +1468,14 @@ func TestIndexMergeHint(t *testing.T) { } else { require.Len(t, warnings, 0, comment) } - require.Equal(t, output[i].Hints, hint.RestoreOptimizerHints(core.GenHintsFromPhysicalPlan(p)), comment) + hints := core.GenHintsFromPhysicalPlan(p) + + // test the new genHints code + flat := core.FlattenPhysicalPlan(p, false) + newHints := core.GenHintsFromFlatPlan(flat) + assertSameHints(t, hints, newHints) + + require.Equal(t, output[i].Hints, hint.RestoreOptimizerHints(hints), comment) } } @@ -1351,7 +1511,14 @@ func TestQueryBlockHint(t *testing.T) { output[i].Hints = hint.RestoreOptimizerHints(core.GenHintsFromPhysicalPlan(p)) }) require.Equal(t, output[i].Plan, core.ToString(p), comment) - require.Equal(t, output[i].Hints, hint.RestoreOptimizerHints(core.GenHintsFromPhysicalPlan(p)), comment) + hints := core.GenHintsFromPhysicalPlan(p) + + // test the new genHints code + flat := core.FlattenPhysicalPlan(p, false) + newHints := core.GenHintsFromFlatPlan(flat) + assertSameHints(t, hints, newHints) + + require.Equal(t, output[i].Hints, hint.RestoreOptimizerHints(hints), comment) } } @@ -1391,7 +1558,14 @@ func TestInlineProjection(t *testing.T) { output[i].Hints = hint.RestoreOptimizerHints(core.GenHintsFromPhysicalPlan(p)) }) require.Equal(t, output[i].Plan, core.ToString(p), comment) - require.Equal(t, output[i].Hints, hint.RestoreOptimizerHints(core.GenHintsFromPhysicalPlan(p)), comment) + hints := core.GenHintsFromPhysicalPlan(p) + + // test the new genHints code + flat := core.FlattenPhysicalPlan(p, false) + newHints := core.GenHintsFromFlatPlan(flat) + assertSameHints(t, hints, newHints) + + require.Equal(t, output[i].Hints, hint.RestoreOptimizerHints(hints), comment) } } @@ -1817,6 +1991,57 @@ func TestIssue30965(t *testing.T) { " └─TableRowIDScan 10.00 cop[tikv] table:t30965 keep order:false, stats:pseudo")) } +func TestSkewDistinctAgg(t *testing.T) { + var ( + input []string + output []struct { + SQL string + Plan []string + } + ) + planSuiteData := core.GetPlanSuiteData() + planSuiteData.GetTestCases(t, &input, &output) + store, clean := testkit.CreateMockStore(t) + defer clean() + tk := testkit.NewTestKit(t, store) + tk.MustExec("use test") + tk.MustExec("drop table if exists t") + tk.MustExec("CREATE TABLE `t` (`a` int(11), `b` int(11), `c` int(11), `d` date)") + tk.MustExec("insert into t (a,b,c,d) value(1,4,5,'2019-06-01')") + tk.MustExec("insert into t (a,b,c,d) value(2,null,1,'2019-07-01')") + tk.MustExec("insert into t (a,b,c,d) value(3,4,5,'2019-08-01')") + tk.MustExec("insert into t (a,b,c,d) value(3,6,2,'2019-09-01')") + tk.MustExec("insert into t (a,b,c,d) value(10,4,null,'2020-06-01')") + tk.MustExec("insert into t (a,b,c,d) value(20,null,1,'2020-07-01')") + tk.MustExec("insert into t (a,b,c,d) value(30,4,5,'2020-08-01')") + tk.MustExec("insert into t (a,b,c,d) value(30,6,5,'2020-09-01')") + tk.MustQuery("select date_format(d,'%Y') as df, sum(a), count(b), count(distinct c) " + + "from t group by date_format(d,'%Y') order by df;").Check( + testkit.Rows("2019 9 3 3", "2020 90 3 2")) + tk.MustExec("set @@tidb_opt_skew_distinct_agg=1") + tk.MustQuery("select date_format(d,'%Y') as df, sum(a), count(b), count(distinct c) " + + "from t group by date_format(d,'%Y') order by df;").Check( + testkit.Rows("2019 9 3 3", "2020 90 3 2")) + tk.MustQuery("select count(distinct b), sum(c) from t group by a order by 1,2;").Check( + testkit.Rows("0 1", "0 1", "1 ", "1 5", "2 7", "2 10")) + tk.MustQuery("select count(distinct b) from t group by date_format(d,'%Y') order by 1;").Check( + testkit.Rows("2", "2")) + tk.MustQuery("select count(a), count(distinct b), max(b) from t group by date_format(d,'%Y') order by 1,2,3;").Check( + testkit.Rows("4 2 6", "4 2 6")) + tk.MustQuery("select count(a), count(distinct b), max(b) from t group by date_format(d,'%Y'),c order by 1,2,3;").Check( + testkit.Rows("1 0 ", "1 0 ", "1 1 4", "1 1 6", "2 1 4", "2 2 6")) + tk.MustQuery("select avg(distinct b), count(a), sum(b) from t group by date_format(d,'%Y'),c order by 1,2,3;").Check( + testkit.Rows(" 1 ", " 1 ", "4.0000 1 4", "4.0000 2 8", "5.0000 2 10", "6.0000 1 6")) + + for i, ts := range input { + testdata.OnRecord(func() { + output[i].SQL = ts + output[i].Plan = testdata.ConvertRowsToStrings(tk.MustQuery("explain format='brief' " + ts).Rows()) + }) + tk.MustQuery("explain format='brief' " + ts).Check(testkit.Rows(output[i].Plan...)) + } +} + func TestMPPSinglePartitionType(t *testing.T) { var ( input []string diff --git a/planner/core/physical_plan_trace_test.go b/planner/core/physical_plan_trace_test.go index 9988fb6cacfa9..d9a99d7210619 100644 --- a/planner/core/physical_plan_trace_test.go +++ b/planner/core/physical_plan_trace_test.go @@ -41,33 +41,19 @@ func TestPhysicalOptimizeWithTraceEnabled(t *testing.T) { tk.MustExec("create table t(a int, primary key (a))") testcases := []struct { sql string - logicalList []string physicalList []string - bests []string }{ { sql: "select * from t", - logicalList: []string{ - "DataSource_1", "Projection_2", - }, physicalList: []string{ - "Projection_3", "TableReader_5", - }, - bests: []string{ - "Projection_3", "TableReader_5", + "Projection_3", "TableFullScan_4", "TableReader_5", }, }, { sql: "select * from t where a = 1", - logicalList: []string{ - "DataSource_1", "Projection_3", - }, physicalList: []string{ "Point_Get_5", "Projection_4", }, - bests: []string{ - "Point_Get_5", "Projection_4", - }, }, } @@ -83,14 +69,11 @@ func TestPhysicalOptimizeWithTraceEnabled(t *testing.T) { domain.GetDomain(sctx).MockInfoCacheAndLoadInfoSchema(dom.InfoSchema()) plan, err := builder.Build(context.TODO(), stmt) require.NoError(t, err) - flag := uint64(0) - flag = flag | 1<<3 | 1<<8 - _, _, err = core.DoOptimize(context.TODO(), sctx, flag, plan.(core.LogicalPlan)) + _, _, err = core.DoOptimize(context.TODO(), sctx, builder.GetOptFlag(), plan.(core.LogicalPlan)) require.NoError(t, err) otrace := sctx.GetSessionVars().StmtCtx.OptimizeTracer.Physical require.NotNil(t, otrace) - logicalList, physicalList := getList(otrace) - require.True(t, checkList(logicalList, testcase.logicalList)) + physicalList := getList(otrace) require.True(t, checkList(physicalList, testcase.physicalList)) } } @@ -107,14 +90,82 @@ func checkList(d []string, s []string) bool { return true } -func getList(otrace *tracing.PhysicalOptimizeTracer) (ll []string, pl []string) { - for logicalPlan, v := range otrace.State { - ll = append(ll, logicalPlan) - for physicalPlanKey := range v { - pl = append(pl, physicalPlanKey) - } +func getList(otrace *tracing.PhysicalOptimizeTracer) (pl []string) { + for _, v := range otrace.Candidates { + pl = append(pl, tracing.CodecPlanName(v.TP, v.ID)) } - sort.Strings(ll) sort.Strings(pl) - return ll, pl + return pl +} + +// assert the case in https://github.com/pingcap/tidb/issues/34863 +func TestPhysicalOptimizerTrace(t *testing.T) { + p := parser.New() + store, dom, clean := testkit.CreateMockStoreAndDomain(t) + defer clean() + + tk := testkit.NewTestKit(t, store) + ctx := tk.Session().(sessionctx.Context) + tk.MustExec("use test") + tk.MustExec("create table customer2(c_id bigint);") + tk.MustExec("create table orders2(o_id bigint, c_id bigint);") + tk.MustExec("insert into customer2 values(1),(2),(3),(4),(5);") + tk.MustExec("insert into orders2 values(1,1),(2,1),(3,2),(4,2),(5,2);") + tk.MustExec("set @@tidb_opt_agg_push_down=1;") + + sql := "select count(*) from customer2 c left join orders2 o on c.c_id=o.c_id;" + + stmt, err := p.ParseOneStmt(sql, "", "") + require.NoError(t, err) + err = core.Preprocess(ctx, stmt, core.WithPreprocessorReturn(&core.PreprocessorReturn{InfoSchema: dom.InfoSchema()})) + require.NoError(t, err) + sctx := core.MockContext() + sctx.GetSessionVars().StmtCtx.EnableOptimizeTrace = true + sctx.GetSessionVars().AllowAggPushDown = true + builder, _ := core.NewPlanBuilder().Init(sctx, dom.InfoSchema(), &hint.BlockHintProcessor{}) + domain.GetDomain(sctx).MockInfoCacheAndLoadInfoSchema(dom.InfoSchema()) + plan, err := builder.Build(context.TODO(), stmt) + require.NoError(t, err) + flag := uint64(0) + flag = flag | 1<<1 | 1<<3 | 1<<8 | 1<<12 | 1<<15 + _, _, err = core.DoOptimize(context.TODO(), sctx, flag, plan.(core.LogicalPlan)) + require.NoError(t, err) + otrace := sctx.GetSessionVars().StmtCtx.OptimizeTracer.Physical + require.NotNil(t, otrace) + elements := map[int]string{ + 12: "TableReader", + 14: "TableReader", + 13: "TableFullScan", + 15: "HashJoin", + 6: "Projection", + 11: "TableFullScan", + 9: "HashJoin", + 10: "HashJoin", + 7: "HashAgg", + 16: "HashJoin", + 8: "StreamAgg", + } + final := map[int]struct{}{ + 11: {}, + 12: {}, + 13: {}, + 14: {}, + 9: {}, + 7: {}, + 6: {}, + } + for _, c := range otrace.Candidates { + tp, ok := elements[c.ID] + if !ok || tp != c.TP { + t.FailNow() + } + } + require.Len(t, otrace.Candidates, len(elements)) + for _, p := range otrace.Final { + _, ok := final[p.ID] + if !ok { + t.FailNow() + } + } + require.Len(t, otrace.Final, len(final)) } diff --git a/planner/core/physical_plans.go b/planner/core/physical_plans.go index 82446ffd817b1..0bbb8ef285657 100644 --- a/planner/core/physical_plans.go +++ b/planner/core/physical_plans.go @@ -34,6 +34,7 @@ import ( "github.com/pingcap/tidb/types" "github.com/pingcap/tidb/util/ranger" "github.com/pingcap/tidb/util/stringutil" + "github.com/pingcap/tidb/util/tracing" "github.com/pingcap/tipb/go-tipb" ) @@ -155,6 +156,11 @@ func (p *PhysicalTableReader) GetTableScan() (*PhysicalTableScan, error) { return tableScans[0], nil } +// GetAvgRowSize return the average row size of this plan. +func (p *PhysicalTableReader) GetAvgRowSize() float64 { + return getTblStats(p.tablePlan).GetAvgRowSize(p.ctx, p.tablePlan.Schema().Columns, false, false) +} + // setMppOrBatchCopForTableScan set IsMPPOrBatchCop for all TableScan. func setMppOrBatchCopForTableScan(curPlan PhysicalPlan) { if ts, ok := curPlan.(*PhysicalTableScan); ok { @@ -224,6 +230,30 @@ func (p *PhysicalTableReader) ExtractCorrelatedCols() (corCols []*expression.Cor return corCols } +func (p *PhysicalTableReader) buildPlanTrace() *tracing.PlanTrace { + rp := p.basePhysicalPlan.buildPlanTrace() + if p.tablePlan != nil { + rp.Children = append(rp.Children, p.tablePlan.buildPlanTrace()) + } + return rp +} + +func (p *PhysicalTableReader) appendChildCandidate(op *physicalOptimizeOp) { + p.basePhysicalPlan.appendChildCandidate(op) + if p.tablePlan != nil { + candidate := &tracing.CandidatePlanTrace{ + PlanTrace: &tracing.PlanTrace{ + ID: p.tablePlan.ID(), + TP: p.tablePlan.TP(), + Cost: p.tablePlan.Cost(), + ExplainInfo: p.tablePlan.ExplainInfo(), + }, + } + op.tracer.AppendCandidate(candidate) + p.tablePlan.appendChildCandidate(op) + } +} + // PhysicalIndexReader is the index reader in tidb. type PhysicalIndexReader struct { physicalSchemaProducer @@ -365,6 +395,16 @@ func (p *PhysicalIndexLookUpReader) ExtractCorrelatedCols() (corCols []*expressi return corCols } +// GetIndexNetDataSize return the estimated total size in bytes via network transfer. +func (p *PhysicalIndexLookUpReader) GetIndexNetDataSize() float64 { + return getTblStats(p.indexPlan).GetAvgRowSize(p.ctx, p.indexPlan.Schema().Columns, true, false) * p.indexPlan.StatsCount() +} + +// GetAvgTableRowSize return the average row size of each final row. +func (p *PhysicalIndexLookUpReader) GetAvgTableRowSize() float64 { + return getTblStats(p.tablePlan).GetAvgRowSize(p.ctx, p.tablePlan.Schema().Columns, false, false) +} + // PhysicalIndexMergeReader is the reader using multiple indexes in tidb. type PhysicalIndexMergeReader struct { physicalSchemaProducer @@ -382,6 +422,11 @@ type PhysicalIndexMergeReader struct { PartitionInfo PartitionInfo } +// GetAvgTableRowSize return the average row size of table plan. +func (p *PhysicalIndexMergeReader) GetAvgTableRowSize() float64 { + return getTblStats(p.TablePlans[len(p.TablePlans)-1]).GetAvgRowSize(p.SCtx(), p.Schema().Columns, false, false) +} + // ExtractCorrelatedCols implements PhysicalPlan interface. func (p *PhysicalIndexMergeReader) ExtractCorrelatedCols() (corCols []*expression.CorrelatedColumn) { for _, child := range p.TablePlans { @@ -443,6 +488,7 @@ type PhysicalIndexScan struct { // tblColHists contains all columns before pruning, which are used to calculate row-size tblColHists *statistics.HistColl pkIsHandleCol *expression.Column + prop *property.PhysicalProperty } // Clone implements PhysicalPlan interface. @@ -544,6 +590,7 @@ type PhysicalTableScan struct { // tblCols and tblColHists contains all columns before pruning, which are used to calculate row-size tblCols []*expression.Column tblColHists *statistics.HistColl + prop *property.PhysicalProperty } // Clone implements PhysicalPlan interface. @@ -1270,6 +1317,11 @@ type PhysicalSelection struct { basePhysicalPlan Conditions []expression.Expression + + // The flag indicates whether this Selection is from a DataSource. + // The flag is only used by cost model for compatibility and will be removed later. + // Please see https://github.com/pingcap/tidb/issues/36243 for more details. + fromDataSource bool } // Clone implements PhysicalPlan interface. diff --git a/planner/core/plan.go b/planner/core/plan.go index 1dedfd05cf7e2..5eede1314c5ab 100644 --- a/planner/core/plan.go +++ b/planner/core/plan.go @@ -375,6 +375,10 @@ type PhysicalPlan interface { // Clone clones this physical plan. Clone() (PhysicalPlan, error) + + // appendChildCandidate append child physicalPlan into tracer in order to track each child physicalPlan which can't + // be tracked during findBestTask or enumeratePhysicalPlans4Task + appendChildCandidate(op *physicalOptimizeOp) } type baseLogicalPlan struct { @@ -771,3 +775,20 @@ func (p *basePlan) buildPlanTrace() *tracing.PlanTrace { planTrace := &tracing.PlanTrace{ID: p.ID(), TP: p.TP()} return planTrace } + +func (p *basePhysicalPlan) appendChildCandidate(op *physicalOptimizeOp) { + if len(p.Children()) < 1 { + return + } + childrenID := make([]int, 0) + for _, child := range p.Children() { + childCandidate := &tracing.CandidatePlanTrace{ + PlanTrace: &tracing.PlanTrace{TP: child.TP(), ID: child.ID(), + ExplainInfo: child.ExplainInfo(), Cost: child.Cost()}, + } + op.tracer.AppendCandidate(childCandidate) + child.appendChildCandidate(op) + childrenID = append(childrenID, child.ID()) + } + op.tracer.Candidates[p.ID()].PlanTrace.ChildrenID = childrenID +} diff --git a/planner/core/plan_cost.go b/planner/core/plan_cost.go index 73758b562536a..250f01dfdacba 100644 --- a/planner/core/plan_cost.go +++ b/planner/core/plan_cost.go @@ -81,6 +81,9 @@ func (p *PhysicalSelection) GetPlanCost(taskType property.TaskType, costFlag uin return 0, errors.Errorf("unknown task type %v", taskType) } selfCost = getCardinality(p.children[0], costFlag) * cpuFactor + if p.fromDataSource { + selfCost = 0 // for compatibility, see https://github.com/pingcap/tidb/issues/36243 + } case modelVer2: // selection cost: rows * num-filters * cpu-factor var cpuFactor float64 switch taskType { @@ -277,6 +280,13 @@ func (p *PhysicalIndexReader) GetPlanCost(taskType property.TaskType, costFlag u return p.planCost, nil } +// GetNetDataSize calculates the cost of the plan in network data transfer. +func (p *PhysicalIndexReader) GetNetDataSize() float64 { + tblStats := getTblStats(p.indexPlan) + rowSize := tblStats.GetAvgRowSize(p.ctx, p.indexPlan.Schema().Columns, true, false) + return p.indexPlan.StatsCount() * rowSize +} + // GetPlanCost calculates the cost of the plan if it has not been calculated yet and returns the cost. func (p *PhysicalTableReader) GetPlanCost(taskType property.TaskType, costFlag uint64) (float64, error) { if p.planCostInit && !hasCostFlag(costFlag, CostFlagRecalculate) { @@ -345,6 +355,12 @@ func (p *PhysicalTableReader) GetPlanCost(taskType property.TaskType, costFlag u return p.planCost, nil } +// GetNetDataSize calculates the estimated total data size fetched from storage. +func (p *PhysicalTableReader) GetNetDataSize() float64 { + rowSize := getTblStats(p.tablePlan).GetAvgRowSize(p.ctx, p.tablePlan.Schema().Columns, false, false) + return p.tablePlan.StatsCount() * rowSize +} + // GetPlanCost calculates the cost of the plan if it has not been calculated yet and returns the cost. func (p *PhysicalIndexMergeReader) GetPlanCost(taskType property.TaskType, costFlag uint64) (float64, error) { if p.planCostInit && !hasCostFlag(costFlag, CostFlagRecalculate) { @@ -391,6 +407,12 @@ func (p *PhysicalIndexMergeReader) GetPlanCost(taskType property.TaskType, costF return p.planCost, nil } +// GetPartialReaderNetDataSize returns the estimated total response data size of a partial read. +func (p *PhysicalIndexMergeReader) GetPartialReaderNetDataSize(plan PhysicalPlan) float64 { + _, isIdxScan := plan.(*PhysicalIndexScan) + return plan.StatsCount() * getTblStats(plan).GetAvgRowSize(p.ctx, plan.Schema().Columns, isIdxScan, false) +} + // GetPlanCost calculates the cost of the plan if it has not been calculated yet and returns the cost. func (p *PhysicalTableScan) GetPlanCost(taskType property.TaskType, costFlag uint64) (float64, error) { if p.planCostInit && !hasCostFlag(costFlag, CostFlagRecalculate) { @@ -401,7 +423,7 @@ func (p *PhysicalTableScan) GetPlanCost(taskType property.TaskType, costFlag uin switch p.ctx.GetSessionVars().CostModelVersion { case modelVer1: // scan cost: rows * row-size * scan-factor scanFactor := p.ctx.GetSessionVars().GetScanFactor(p.Table) - if p.Desc { + if p.Desc && p.prop != nil && p.prop.ExpectedCnt >= smallScanThreshold { scanFactor = p.ctx.GetSessionVars().GetDescScanFactor(p.Table) } selfCost = getCardinality(p, costFlag) * p.getScanRowSize() * scanFactor @@ -438,7 +460,7 @@ func (p *PhysicalIndexScan) GetPlanCost(taskType property.TaskType, costFlag uin switch p.ctx.GetSessionVars().CostModelVersion { case modelVer1: // scan cost: rows * row-size * scan-factor scanFactor := p.ctx.GetSessionVars().GetScanFactor(p.Table) - if p.Desc { + if p.Desc && p.prop != nil && p.prop.ExpectedCnt >= smallScanThreshold { scanFactor = p.ctx.GetSessionVars().GetDescScanFactor(p.Table) } selfCost = getCardinality(p, costFlag) * p.getScanRowSize() * scanFactor @@ -1150,6 +1172,18 @@ func (p *BatchPointGetPlan) GetPlanCost(taskType property.TaskType, costFlag uin return p.planCost, nil } +// GetAvgRowSize return the average row size. +func (p *BatchPointGetPlan) GetAvgRowSize() float64 { + cols := p.accessCols + if cols == nil { + return 0 // the cost of BatchGet generated in fast plan optimization is always 0 + } + if p.IndexInfo == nil { + return p.stats.HistColl.GetTableAvgRowSize(p.ctx, cols, kv.TiKV, true) + } + return p.stats.HistColl.GetIndexAvgRowSize(p.ctx, cols, p.IndexInfo.Unique) +} + // GetCost returns cost of the PointGetPlan. func (p *PointGetPlan) GetCost() float64 { cols := p.accessCols @@ -1180,6 +1214,18 @@ func (p *PointGetPlan) GetPlanCost(taskType property.TaskType, costFlag uint64) return p.planCost, nil } +// GetAvgRowSize return the average row size. +func (p *PointGetPlan) GetAvgRowSize() float64 { + cols := p.accessCols + if cols == nil { + return 0 // the cost of PointGet generated in fast plan optimization is always 0 + } + if p.IndexInfo == nil { + return p.stats.HistColl.GetTableAvgRowSize(p.ctx, cols, kv.TiKV, true) + } + return p.stats.HistColl.GetIndexAvgRowSize(p.ctx, cols, p.IndexInfo.Unique) +} + // GetPlanCost calculates the cost of the plan if it has not been calculated yet and returns the cost. func (p *PhysicalUnionAll) GetPlanCost(taskType property.TaskType, costFlag uint64) (float64, error) { if p.planCostInit && !hasCostFlag(costFlag, CostFlagRecalculate) { diff --git a/planner/core/plan_cost_test.go b/planner/core/plan_cost_test.go index d8bf5833412ce..3bc86b0231971 100644 --- a/planner/core/plan_cost_test.go +++ b/planner/core/plan_cost_test.go @@ -16,6 +16,7 @@ package core_test import ( "fmt" + "strconv" "strings" "testing" @@ -967,3 +968,39 @@ func TestTrueCardCost(t *testing.T) { checkPlanCost(`select * from t where a>10 limit 10`) checkPlanCost(`select sum(a), b*2 from t use index(b) group by b order by sum(a) limit 10`) } + +func TestIssue36243(t *testing.T) { + store, clean := testkit.CreateMockStore(t) + defer clean() + tk := testkit.NewTestKit(t, store) + + tk.MustExec("use test") + tk.MustExec(`create table t (a int)`) + tk.MustExec(`insert into mysql.expr_pushdown_blacklist values ('>','tikv','')`) + tk.MustExec(`admin reload expr_pushdown_blacklist`) + tk.MustExec(`set @@tidb_enable_new_cost_interface=1`) + + getCost := func() (selCost, readerCost float64) { + res := tk.MustQuery(`explain format=verbose select * from t where a>0`).Rows() + // TableScan -> TableReader -> Selection + require.Equal(t, len(res), 3) + require.Contains(t, res[0][0], "Selection") + require.Contains(t, res[1][0], "TableReader") + require.Contains(t, res[2][0], "Scan") + var err error + selCost, err = strconv.ParseFloat(res[0][2].(string), 64) + require.NoError(t, err) + readerCost, err = strconv.ParseFloat(res[1][2].(string), 64) + require.NoError(t, err) + return + } + + tk.MustExec(`set @@tidb_cost_model_version=1`) + // Selection has the same cost with TableReader, ignore Selection cost for compatibility in cost model ver1. + selCost, readerCost := getCost() + require.Equal(t, selCost, readerCost) + + tk.MustExec(`set @@tidb_cost_model_version=2`) + selCost, readerCost = getCost() + require.True(t, selCost > readerCost) +} diff --git a/planner/core/plan_test.go b/planner/core/plan_test.go index 003ca690a206d..8b3c61f7a2316 100644 --- a/planner/core/plan_test.go +++ b/planner/core/plan_test.go @@ -81,7 +81,14 @@ func TestPreferRangeScan(t *testing.T) { require.NotNil(t, info) p, ok := info.Plan.(core.Plan) require.True(t, ok) - normalized, _ := core.NormalizePlan(p) + normalized, digest := core.NormalizePlan(p) + + // test the new normalization code + flat := core.FlattenPhysicalPlan(p, false) + newNormalized, newDigest := core.NormalizeFlatPlan(flat) + require.Equal(t, normalized, newNormalized) + require.Equal(t, digest, newDigest) + normalizedPlan, err := plancodec.DecodeNormalizedPlan(normalized) normalizedPlanRows := getPlanRows(normalizedPlan) require.NoError(t, err) @@ -118,7 +125,14 @@ func TestNormalizedPlan(t *testing.T) { require.NotNil(t, info) p, ok := info.Plan.(core.Plan) require.True(t, ok) - normalized, _ := core.NormalizePlan(p) + normalized, digest := core.NormalizePlan(p) + + // test the new normalization code + flat := core.FlattenPhysicalPlan(p, false) + newNormalized, newDigest := core.NormalizeFlatPlan(flat) + require.Equal(t, normalized, newNormalized) + require.Equal(t, digest, newDigest) + normalizedPlan, err := plancodec.DecodeNormalizedPlan(normalized) normalizedPlanRows := getPlanRows(normalizedPlan) require.NoError(t, err) @@ -159,6 +173,13 @@ func TestNormalizedPlanForDiffStore(t *testing.T) { ep, ok := info.Plan.(*core.Explain) require.True(t, ok) normalized, digest := core.NormalizePlan(ep.TargetPlan) + + // test the new normalization code + flat := core.FlattenPhysicalPlan(ep.TargetPlan, false) + newNormalized, newPlanDigest := core.NormalizeFlatPlan(flat) + require.Equal(t, digest, newPlanDigest) + require.Equal(t, normalized, newNormalized) + normalizedPlan, err := plancodec.DecodeNormalizedPlan(normalized) normalizedPlanRows := getPlanRows(normalizedPlan) require.NoError(t, err) @@ -184,7 +205,7 @@ func TestEncodeDecodePlan(t *testing.T) { tk.MustExec("set tidb_partition_prune_mode='static';") tk.Session().GetSessionVars().PlanID = 0 - getPlanTree := func() string { + getPlanTree := func() (str1, str2 string) { info := tk.Session().ShowProcess() require.NotNil(t, info) p, ok := info.Plan.(core.Plan) @@ -192,41 +213,89 @@ func TestEncodeDecodePlan(t *testing.T) { encodeStr := core.EncodePlan(p) planTree, err := plancodec.DecodePlan(encodeStr) require.NoError(t, err) - return planTree + + // test the new encoding method + flat := core.FlattenPhysicalPlan(p, true) + newEncodeStr := core.EncodeFlatPlan(flat) + newPlanTree, err := plancodec.DecodePlan(newEncodeStr) + require.NoError(t, err) + + return planTree, newPlanTree } tk.MustExec("select max(a) from t1 where a>0;") - planTree := getPlanTree() + planTree, newplanTree := getPlanTree() require.Contains(t, planTree, "time") require.Contains(t, planTree, "loops") - - tk.MustExec("insert into t1 values (1,1,1);") - planTree = getPlanTree() + require.Contains(t, newplanTree, "time") + require.Contains(t, newplanTree, "loops") + + tk.MustExec("prepare stmt from \"select max(a) from t1 where a > ?\";") + tk.MustExec("set @a = 1;") + tk.MustExec("execute stmt using @a;") + planTree, newplanTree = getPlanTree() + require.Empty(t, planTree) + require.Empty(t, newplanTree) + + tk.MustExec("insert into t1 values (1,1,1), (2,2,2);") + planTree, newplanTree = getPlanTree() require.Contains(t, planTree, "Insert") require.Contains(t, planTree, "time") require.Contains(t, planTree, "loops") + require.Contains(t, newplanTree, "Insert") + require.Contains(t, newplanTree, "time") + require.Contains(t, newplanTree, "loops") + + tk.MustExec("update t1 set b = 3 where c = 1;") + planTree, newplanTree = getPlanTree() + require.Contains(t, planTree, "Update") + require.Contains(t, planTree, "time") + require.Contains(t, planTree, "loops") + require.Contains(t, newplanTree, "Update") + require.Contains(t, newplanTree, "time") + require.Contains(t, newplanTree, "loops") + + tk.MustExec("delete from t1 where b = 3;") + planTree, newplanTree = getPlanTree() + require.Contains(t, planTree, "Delete") + require.Contains(t, planTree, "time") + require.Contains(t, planTree, "loops") + require.Contains(t, newplanTree, "Delete") + require.Contains(t, newplanTree, "time") + require.Contains(t, newplanTree, "loops") tk.MustExec("with cte(a) as (select 1) select * from cte") - planTree = getPlanTree() + planTree, newplanTree = getPlanTree() require.Contains(t, planTree, "CTE") require.Contains(t, planTree, "1->Column#1") require.Contains(t, planTree, "time") require.Contains(t, planTree, "loops") + require.Contains(t, newplanTree, "CTE") + require.Contains(t, newplanTree, "1->Column#1") + require.Contains(t, newplanTree, "time") + require.Contains(t, newplanTree, "loops") tk.MustExec("with cte(a) as (select 2) select * from cte") - planTree = getPlanTree() + planTree, newplanTree = getPlanTree() require.Contains(t, planTree, "CTE") require.Contains(t, planTree, "2->Column#1") require.Contains(t, planTree, "time") require.Contains(t, planTree, "loops") + require.Contains(t, newplanTree, "CTE") + require.Contains(t, newplanTree, "2->Column#1") + require.Contains(t, newplanTree, "time") + require.Contains(t, newplanTree, "loops") tk.MustExec("select * from tp") - planTree = getPlanTree() + planTree, newplanTree = getPlanTree() require.Contains(t, planTree, "PartitionUnion") + require.Contains(t, newplanTree, "PartitionUnion") tk.MustExec("select row_number() over (partition by c) from t1;") - planTree = getPlanTree() + planTree, newplanTree = getPlanTree() require.Contains(t, planTree, "Shuffle") require.Contains(t, planTree, "ShuffleReceiver") + require.Contains(t, newplanTree, "Shuffle") + require.Contains(t, newplanTree, "ShuffleReceiver") } func TestNormalizedDigest(t *testing.T) { @@ -419,12 +488,25 @@ func testNormalizeDigest(tk *testkit.TestKit, t *testing.T, sql1, sql2 string, i require.True(t, ok) normalized1, digest1 := core.NormalizePlan(physicalPlan) + // test the new normalization code + flat := core.FlattenPhysicalPlan(physicalPlan, false) + newNormalized, newPlanDigest := core.NormalizeFlatPlan(flat) + require.Equal(t, digest1, newPlanDigest) + require.Equal(t, normalized1, newNormalized) + tk.MustQuery(sql2) info = tk.Session().ShowProcess() require.NotNil(t, info) physicalPlan, ok = info.Plan.(core.PhysicalPlan) require.True(t, ok) normalized2, digest2 := core.NormalizePlan(physicalPlan) + + // test the new normalization code + flat = core.FlattenPhysicalPlan(physicalPlan, false) + newNormalized, newPlanDigest = core.NormalizeFlatPlan(flat) + require.Equal(t, digest2, newPlanDigest) + require.Equal(t, normalized2, newNormalized) + comment := fmt.Sprintf("sql1: %v, sql2: %v\n%v !=\n%v\n", sql1, sql2, normalized1, normalized2) if isSame { require.Equal(t, normalized1, normalized2, comment) @@ -455,8 +537,12 @@ func TestExplainFormatHint(t *testing.T) { tk.MustExec("drop table if exists t") tk.MustExec("create table t (c1 int not null, c2 int not null, key idx_c2(c2)) partition by range (c2) (partition p0 values less than (10), partition p1 values less than (20))") - tk.MustQuery("explain format='hint' select /*+ use_index(@`sel_2` `test`.`t2` `idx_c2`), hash_agg(@`sel_2`), use_index(@`sel_1` `test`.`t1` `idx_c2`), hash_agg(@`sel_1`) */ count(1) from t t1 where c2 in (select c2 from t t2 where t2.c2 < 15 and t2.c2 > 12)").Check(testkit.Rows( - "use_index(@`sel_2` `test`.`t2` `idx_c2`), hash_agg(@`sel_2`), use_index(@`sel_1` `test`.`t1` `idx_c2`), hash_agg(@`sel_1`)")) + tk.MustQuery("explain format='hint'" + + "select " + + "/*+ use_index(@`sel_2` `test`.`t2` `idx_c2`), hash_agg(@`sel_2`), use_index(@`sel_1` `test`.`t1` `idx_c2`), hash_agg(@`sel_1`) */ " + + "count(1) from t t1 " + + "where c2 in (select c2 from t t2 where t2.c2 < 15 and t2.c2 > 12)").Check(testkit.Rows( + "hash_agg(@`sel_1`), hash_agg(@`sel_2`), use_index(@`sel_2` `test`.`t2` `idx_c2`), use_index(@`sel_1` `test`.`t1` `idx_c2`)")) } func TestExplainFormatHintRecoverableForTiFlashReplica(t *testing.T) { @@ -609,6 +695,32 @@ func BenchmarkEncodePlan(b *testing.B) { } } +func BenchmarkEncodeFlatPlan(b *testing.B) { + store, clean := testkit.CreateMockStore(b) + defer clean() + tk := testkit.NewTestKit(b, store) + tk.MustExec("use test") + tk.MustExec("drop table if exists th") + tk.MustExec("set @@session.tidb_enable_table_partition = 1") + tk.MustExec(`set @@tidb_partition_prune_mode='` + string(variable.Static) + `'`) + tk.MustExec("create table th (i int, a int,b int, c int, index (a)) partition by hash (a) partitions 8192;") + tk.MustExec("set @@tidb_slow_log_threshold=200000") + + query := "select count(*) from th t1 join th t2 join th t3 join th t4 join th t5 join th t6 where t1.i=t2.a and t1.i=t3.i and t3.i=t4.i and t4.i=t5.i and t5.i=t6.i" + tk.Session().GetSessionVars().PlanID = 0 + tk.MustExec(query) + info := tk.Session().ShowProcess() + require.NotNil(b, info) + p, ok := info.Plan.(core.PhysicalPlan) + require.True(b, ok) + tk.Session().GetSessionVars().StmtCtx.RuntimeStatsColl = nil + b.ResetTimer() + for i := 0; i < b.N; i++ { + flat := core.FlattenPhysicalPlan(p, false) + core.EncodeFlatPlan(flat) + } +} + // Close issue 25729 func TestIssue25729(t *testing.T) { config.UpdateGlobal(func(conf *config.Config) { diff --git a/planner/core/plan_to_pb.go b/planner/core/plan_to_pb.go index dbea51006c1dd..fbff431562545 100644 --- a/planner/core/plan_to_pb.go +++ b/planner/core/plan_to_pb.go @@ -189,6 +189,8 @@ func (p *PhysicalTableScan) ToPB(ctx sessionctx.Context, storeType kv.StoreType) } tsExec := tables.BuildTableScanFromInfos(p.Table, p.Columns) tsExec.Desc = p.Desc + keepOrder := p.KeepOrder + tsExec.KeepOrder = &keepOrder if p.isPartition { tsExec.TableId = p.physicalTableID } diff --git a/planner/core/planbuilder.go b/planner/core/planbuilder.go index 4f574a6010b63..b5c923ff6dd27 100644 --- a/planner/core/planbuilder.go +++ b/planner/core/planbuilder.go @@ -97,6 +97,7 @@ type tableHintInfo struct { indexMergeHintList []indexHintInfo timeRangeHint ast.HintTimeRange limitHints limitHintInfo + MergeHints MergeHintInfo leadingJoinOrder []hintTableInfo } @@ -104,6 +105,11 @@ type limitHintInfo struct { preferLimitToCop bool } +//MergeHintInfo ...one bool flag for cte +type MergeHintInfo struct { + preferMerge bool +} + type hintTableInfo struct { dbName model.CIStr tblName model.CIStr @@ -427,6 +433,8 @@ type cteInfo struct { seedStat *property.StatsInfo // The LogicalCTEs that reference the same table should share the same CteClass. cteClass *CTEClass + + isInline bool } // PlanBuilder builds Plan from an ast.Node. @@ -501,6 +509,15 @@ type PlanBuilder struct { allocIDForCTEStorage int buildingRecursivePartForCTE bool buildingCTE bool + + // checkSemiJoinHint checks whether the SEMI_JOIN_REWRITE hint is possible to be applied on the current SELECT stmt. + // We need this variable for the hint since the hint is set in subquery, but we check its availability in its outer scope. + // e.g. select * from t where exists(select /*+ SEMI_JOIN_REWRITE() */ 1 from t1 where t.a=t1.a) + // Whether the hint can be applied or not is checked after the subquery is fully built. + checkSemiJoinHint bool + // hasValidSemijoinHint would tell the outer APPLY/JOIN operator that there's valid hint to be checked later + // if there's SEMI_JOIN_REWRITE hint and we find checkSemiJoinHint is true. + hasValidSemiJoinHint bool } type handleColHelper struct { @@ -1477,6 +1494,7 @@ func (b *PlanBuilder) buildPhysicalIndexLookUpReader(ctx context.Context, dbName Columns: idxColInfos, Table: tblInfo, TableAsName: &tblInfo.Name, + DBName: dbName, physicalTableID: physicalID, isPartition: isPartition, tblColHists: &(statistics.PseudoTable(tblInfo)).HistColl, diff --git a/planner/core/point_get_plan.go b/planner/core/point_get_plan.go index 85e120de5f340..79771c927f66b 100644 --- a/planner/core/point_get_plan.go +++ b/planner/core/point_get_plan.go @@ -222,6 +222,8 @@ func (p *PointGetPlan) SetOutputNames(names types.NameSlice) { p.outputNames = names } +func (p *PointGetPlan) appendChildCandidate(op *physicalOptimizeOp) {} + // BatchPointGetPlan represents a physical plan which contains a bunch of // keys reference the same table and use the same `unique key` type BatchPointGetPlan struct { @@ -374,6 +376,8 @@ func (p *BatchPointGetPlan) SetOutputNames(names types.NameSlice) { p.names = names } +func (p *BatchPointGetPlan) appendChildCandidate(op *physicalOptimizeOp) {} + // PointPlanKey is used to get point plan that is pre-built for multi-statement query. const PointPlanKey = stringutil.StringerStr("pointPlanKey") diff --git a/planner/core/rule_aggregation_skew_rewrite.go b/planner/core/rule_aggregation_skew_rewrite.go new file mode 100644 index 0000000000000..034347bd14725 --- /dev/null +++ b/planner/core/rule_aggregation_skew_rewrite.go @@ -0,0 +1,295 @@ +// Copyright 2022 PingCAP, Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package core + +import ( + "context" + "fmt" + + "github.com/pingcap/tidb/expression" + "github.com/pingcap/tidb/expression/aggregation" + "github.com/pingcap/tidb/parser/ast" + fd "github.com/pingcap/tidb/planner/funcdep" +) + +type skewDistinctAggRewriter struct { +} + +// skewDistinctAggRewriter will rewrite group distinct aggregate into 2 level aggregates, e.g.: +// select S_NATIONKEY as s, count(S_SUPPKEY), count(distinct S_NAME) from supplier group by s; +// will be rewritten to +// select S_NATIONKEY as s, sum(c), count(S_NAME) from ( +// select S_NATIONKEY, S_NAME, count(S_SUPPKEY) c from supplier group by S_NATIONKEY, S_NAME +// ) as T group by s; +// +// If the group key is highly skewed and the distinct key has large number of distinct values +// (a.k.a. high cardinality), the query execution will be slow. This rule may help to ease the +// skew issue. +// +// The rewrite rule only applies to query that satisfies: +// - The aggregate has at least 1 group by column (the group key can be columns or expressions) +// - The aggregate has 1 and only 1 distinct aggregate function (limited to count, avg, sum) +// +// This rule is disabled by default. Use tidb_opt_skew_distinct_agg to enable the rule. +func (a *skewDistinctAggRewriter) rewriteSkewDistinctAgg(agg *LogicalAggregation, opt *logicalOptimizeOp) LogicalPlan { + // only group aggregate is applicable + if len(agg.GroupByItems) == 0 { + return nil + } + + // the number of distinct aggregate functions + nDistinct := 0 + // distinct columns collected from original aggregate + distinctCols := make([]expression.Expression, 0, 3 /* arbitrary value*/) + + for _, aggFunc := range agg.AggFuncs { + if aggFunc.HasDistinct { + nDistinct++ + distinctCols = append(distinctCols, aggFunc.Args...) + } + // TODO: support multiple DQA on same column, e.g. count(distinct x), sum(distinct x) + if nDistinct > 1 { + return nil + } + if !a.isQualifiedAgg(aggFunc) { + return nil + } + } + + // we only deal with single distinct aggregate for now, no more, no less + if nDistinct != 1 { + return nil + } + + // count(distinct a,b,c) group by d + // will generate a bottom agg with group by a,b,c,d + bottomAggGroupbyItems := make([]expression.Expression, 0, len(agg.GroupByItems)+len(distinctCols)) + bottomAggGroupbyItems = append(bottomAggGroupbyItems, agg.GroupByItems...) + bottomAggGroupbyItems = append(bottomAggGroupbyItems, distinctCols...) + + // aggregate functions for top aggregate + topAggFuncs := make([]*aggregation.AggFuncDesc, 0, len(agg.AggFuncs)) + // aggregate functions for bottom aggregate + bottomAggFuncs := make([]*aggregation.AggFuncDesc, 0, len(agg.AggFuncs)) + // output schema for top aggregate + topAggSchema := agg.schema.Clone() + // output schema for bottom aggregate + bottomAggSchema := expression.NewSchema(make([]*expression.Column, 0, agg.schema.Len())...) + + // columns used by group by items in the original aggregate + groupCols := make([]*expression.Column, 0, 3) + // columns that should be used by firstrow(), which will be appended to + // bottomAgg schema and aggregate functions + firstRowCols := fd.NewFastIntSet() + for _, groupByItem := range agg.GroupByItems { + usedCols := expression.ExtractColumns(groupByItem) + groupCols = append(groupCols, usedCols...) + for _, col := range usedCols { + firstRowCols.Insert(int(col.UniqueID)) + } + } + + // we only care about non-distinct count() agg function + cntIndexes := make([]int, 0, 3) + + // now decompose original aggregate functions into 2 level aggregate functions, + // except distinct function. each agg function is in COMPLETE mode. + for i, aggFunc := range agg.AggFuncs { + // have to clone it to avoid unexpected modification by others, (︶︹︺) + newAggFunc := aggFunc.Clone() + if aggFunc.HasDistinct { + // TODO: support count(distinct a,b,c) + if len(aggFunc.Args) != 1 { + return nil + } + + for _, arg := range aggFunc.Args { + firstRow, err := aggregation.NewAggFuncDesc(agg.ctx, ast.AggFuncFirstRow, + []expression.Expression{arg}, false) + if err != nil { + return nil + } + bottomAggFuncs = append(bottomAggFuncs, firstRow) + bottomAggSchema.Append(arg.(*expression.Column)) + } + + // now the distinct is not needed anymore + newAggFunc.HasDistinct = false + topAggFuncs = append(topAggFuncs, newAggFunc) + } else { + // only count() will be decomposed to sum() + count(), the others will keep same + // original aggregate functions will go to bottom aggregate without any change + bottomAggFuncs = append(bottomAggFuncs, newAggFunc) + + // cast to Column, if failed, we know it is Constant, ignore the error message, + // we will later create a new schema column + aggCol, ok := newAggFunc.Args[0].(*expression.Column) + + // firstrow() doesn't change the input value and type + if newAggFunc.Name == ast.AggFuncFirstRow { + if ok { + firstRowCols.Remove(int(aggCol.UniqueID)) + } + } else { + aggCol = &expression.Column{ + UniqueID: agg.ctx.GetSessionVars().AllocPlanColumnID(), + RetType: newAggFunc.RetTp, + } + } + bottomAggSchema.Append(aggCol) + + if newAggFunc.Name == ast.AggFuncCount { + cntIndexes = append(cntIndexes, i) + sumAggFunc, err := aggregation.NewAggFuncDesc(agg.ctx, ast.AggFuncSum, + []expression.Expression{aggCol}, false) + if err != nil { + return nil + } + topAggFuncs = append(topAggFuncs, sumAggFunc) + topAggSchema.Columns[i] = &expression.Column{ + UniqueID: agg.ctx.GetSessionVars().AllocPlanColumnID(), + RetType: sumAggFunc.RetTp, + } + } else { + topAggFunc := aggFunc.Clone() + topAggFunc.Args = make([]expression.Expression, 0, len(aggFunc.Args)) + topAggFunc.Args = append(topAggFunc.Args, aggCol) + topAggFuncs = append(topAggFuncs, topAggFunc) + } + } + } + + for _, col := range groupCols { + // the col is used by GROUP BY clause, but not in the output schema, e.g. + // SELECT count(DISTINCT a) FROM t GROUP BY b; + // column b is not in the output schema, we have to add it to the bottom agg schema + if firstRowCols.Has(int(col.UniqueID)) { + firstRow, err := aggregation.NewAggFuncDesc(agg.ctx, ast.AggFuncFirstRow, + []expression.Expression{col}, false) + if err != nil { + return nil + } + bottomAggFuncs = append(bottomAggFuncs, firstRow) + bottomAggSchema.Append(col) + } + } + + // now create the bottom and top aggregate operators + bottomAgg := LogicalAggregation{ + AggFuncs: bottomAggFuncs, + GroupByItems: bottomAggGroupbyItems, + aggHints: agg.aggHints, + }.Init(agg.ctx, agg.blockOffset) + bottomAgg.SetChildren(agg.children...) + bottomAgg.SetSchema(bottomAggSchema) + + topAgg := LogicalAggregation{ + AggFuncs: topAggFuncs, + GroupByItems: agg.GroupByItems, + aggHints: agg.aggHints, + }.Init(agg.ctx, agg.blockOffset) + topAgg.SetChildren(bottomAgg) + topAgg.SetSchema(topAggSchema) + + if len(cntIndexes) == 0 { + appendSkewDistinctAggRewriteTraceStep(agg, topAgg, opt) + return topAgg + } + + // it has count(), we have split it into sum()+count(), since sum() returns decimal + // we have to return a project operator that casts decimal to bigint + proj := LogicalProjection{ + Exprs: make([]expression.Expression, 0, len(agg.AggFuncs)), + }.Init(agg.ctx, agg.blockOffset) + for _, column := range topAggSchema.Columns { + proj.Exprs = append(proj.Exprs, column.Clone()) + } + + // wrap sum() with cast function to keep output data type same + for _, index := range cntIndexes { + exprType := proj.Exprs[index].GetType() + targetType := agg.schema.Columns[index].GetType() + if !exprType.Equal(targetType) { + proj.Exprs[index] = expression.BuildCastFunction(agg.ctx, proj.Exprs[index], targetType) + } + } + proj.SetSchema(agg.schema.Clone()) + proj.SetChildren(topAgg) + appendSkewDistinctAggRewriteTraceStep(agg, proj, opt) + return proj +} + +func (a *skewDistinctAggRewriter) isQualifiedAgg(aggFunc *aggregation.AggFuncDesc) bool { + if aggFunc.Mode != aggregation.CompleteMode { + return false + } + if len(aggFunc.OrderByItems) > 0 || len(aggFunc.Args) > 1 { + return false + } + + for _, arg := range aggFunc.Args { + if _, ok := arg.(*expression.Column); !ok { + if _, ok := arg.(*expression.Constant); !ok { + return false + } + } + } + + switch aggFunc.Name { + case ast.AggFuncFirstRow, ast.AggFuncCount, ast.AggFuncSum, ast.AggFuncMax, ast.AggFuncMin: + return true + case ast.AggFuncBitAnd, ast.AggFuncBitOr, ast.AggFuncBitXor: + return false + case ast.AggFuncAvg: + return aggFunc.HasDistinct + default: + return false + } +} + +func appendSkewDistinctAggRewriteTraceStep(agg *LogicalAggregation, result LogicalPlan, opt *logicalOptimizeOp) { + reason := func() string { + return fmt.Sprintf("%v_%v has a distinct agg function", agg.TP(), agg.ID()) + } + action := func() string { + return fmt.Sprintf("%v_%v is rewritten to a %v_%v", agg.TP(), agg.ID(), result.TP(), result.ID()) + } + + opt.appendStepToCurrent(agg.ID(), agg.TP(), reason, action) +} + +func (a *skewDistinctAggRewriter) optimize(ctx context.Context, p LogicalPlan, opt *logicalOptimizeOp) (LogicalPlan, error) { + newChildren := make([]LogicalPlan, 0, len(p.Children())) + for _, child := range p.Children() { + newChild, err := a.optimize(ctx, child, opt) + if err != nil { + return nil, err + } + newChildren = append(newChildren, newChild) + } + p.SetChildren(newChildren...) + agg, ok := p.(*LogicalAggregation) + if !ok { + return p, nil + } + if newAgg := a.rewriteSkewDistinctAgg(agg, opt); newAgg != nil { + return newAgg, nil + } + return p, nil +} + +func (*skewDistinctAggRewriter) name() string { + return "skew_distinct_agg_rewrite" +} diff --git a/planner/core/rule_build_key_info.go b/planner/core/rule_build_key_info.go index 22ec84d150bc4..361a821c8f2cd 100644 --- a/planner/core/rule_build_key_info.go +++ b/planner/core/rule_build_key_info.go @@ -48,6 +48,10 @@ func (la *LogicalAggregation) BuildKeyInfo(selfSchema *expression.Schema, childS return } la.logicalSchemaProducer.BuildKeyInfo(selfSchema, childSchema) + la.buildSelfKeyInfo(selfSchema) +} + +func (la *LogicalAggregation) buildSelfKeyInfo(selfSchema *expression.Schema) { groupByCols := la.GetGroupByCols() if len(groupByCols) == len(la.GroupByItems) && len(la.GroupByItems) > 0 { indices := selfSchema.ColumnsIndices(groupByCols) diff --git a/planner/core/rule_join_reorder_test.go b/planner/core/rule_join_reorder_test.go index 4c15c6052eafd..55cfe66320e77 100644 --- a/planner/core/rule_join_reorder_test.go +++ b/planner/core/rule_join_reorder_test.go @@ -201,6 +201,20 @@ func TestJoinOrderHintWithBinding(t *testing.T) { require.Equal(t, res[0][0], "select * from ( `test` . `t1` join `test` . `t2` on `t1` . `a` = `t2` . `a` ) join `test` . `t3` on `t2` . `b` = `t3` . `b`") tk.MustExec("drop global binding for select * from t1 join t2 on t1.a=t2.a join t3 on t2.b=t3.b") + + // test for outer join + tk.MustExec("select * from t1 join t2 on t1.a=t2.a left join t3 on t2.b=t3.b") + tk.MustQuery("select @@last_plan_from_binding").Check(testkit.Rows("0")) + res = tk.MustQuery("show global bindings").Rows() + require.Equal(t, len(res), 0) + + tk.MustExec("create global binding for select * from t1 join t2 on t1.a=t2.a left join t3 on t2.b=t3.b using select /*+ leading(t2) */ * from t1 join t2 on t1.a=t2.a left join t3 on t2.b=t3.b") + tk.MustExec("select * from t1 join t2 on t1.a=t2.a left join t3 on t2.b=t3.b") + tk.MustQuery("select @@last_plan_from_binding").Check(testkit.Rows("1")) + res = tk.MustQuery("show global bindings").Rows() + require.Equal(t, res[0][0], "select * from ( `test` . `t1` join `test` . `t2` on `t1` . `a` = `t2` . `a` ) left join `test` . `t3` on `t2` . `b` = `t3` . `b`") + + tk.MustExec("drop global binding for select * from t1 join t2 on t1.a=t2.a join t3 on t2.b=t3.b") } func TestJoinOrderHint4StaticPartitionTable(t *testing.T) { @@ -214,6 +228,9 @@ func TestJoinOrderHint4StaticPartitionTable(t *testing.T) { tk.MustExec(`create table t1(a int, b int) partition by hash(a) partitions 4`) tk.MustExec(`create table t2(a int, b int) partition by hash(a) partitions 5`) tk.MustExec(`create table t3(a int, b int) partition by hash(b) partitions 3`) + tk.MustExec(`create table t4(a int, b int) partition by hash(a) partitions 4`) + tk.MustExec(`create table t5(a int, b int) partition by hash(a) partitions 5`) + tk.MustExec(`create table t6(a int, b int) partition by hash(b) partitions 3`) tk.MustExec(`set @@tidb_partition_prune_mode="static"`) runJoinReorderTestData(t, tk, "TestJoinOrderHint4StaticPartitionTable") @@ -230,6 +247,9 @@ func TestJoinOrderHint4DynamicPartitionTable(t *testing.T) { tk.MustExec(`create table t1(a int, b int) partition by hash(a) partitions 4`) tk.MustExec(`create table t2(a int, b int) partition by hash(a) partitions 5`) tk.MustExec(`create table t3(a int, b int) partition by hash(b) partitions 3`) + tk.MustExec(`create table t4(a int, b int) partition by hash(a) partitions 4`) + tk.MustExec(`create table t5(a int, b int) partition by hash(a) partitions 5`) + tk.MustExec(`create table t6(a int, b int) partition by hash(b) partitions 3`) tk.MustExec(`set @@tidb_partition_prune_mode="dynamic"`) runJoinReorderTestData(t, tk, "TestJoinOrderHint4DynamicPartitionTable") @@ -265,6 +285,9 @@ func TestJoinOrderHint4TiFlash(t *testing.T) { tk.MustExec("create table t1(a int, b int, key(a));") tk.MustExec("create table t2(a int, b int, key(a));") tk.MustExec("create table t3(a int, b int, key(a));") + tk.MustExec("create table t4(a int, b int, key(a));") + tk.MustExec("create table t5(a int, b int, key(a));") + tk.MustExec("create table t6(a int, b int, key(a));") // Create virtual tiflash replica info. dom := domain.GetDomain(tk.Session()) @@ -273,7 +296,7 @@ func TestJoinOrderHint4TiFlash(t *testing.T) { require.True(t, exists) for _, tblInfo := range db.Tables { tableName := tblInfo.Name.L - if tableName == "t" || tableName == "t1" || tableName == "t2" || tableName == "t3" { + if tableName == "t" || tableName == "t1" || tableName == "t2" || tableName == "t3" || tableName == "t4" || tableName == "t5" || tableName == "t6" { tblInfo.TiFlashReplica = &model.TiFlashReplicaInfo{ Count: 1, Available: true, diff --git a/planner/core/rule_semi_join_rewrite.go b/planner/core/rule_semi_join_rewrite.go new file mode 100644 index 0000000000000..0bce68183b59e --- /dev/null +++ b/planner/core/rule_semi_join_rewrite.go @@ -0,0 +1,115 @@ +// Copyright 2022 PingCAP, Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package core + +import ( + "context" + + "github.com/pingcap/tidb/expression" + "github.com/pingcap/tidb/expression/aggregation" + "github.com/pingcap/tidb/parser/ast" +) + +type semiJoinRewriter struct { +} + +func (smj *semiJoinRewriter) optimize(_ context.Context, p LogicalPlan, opt *logicalOptimizeOp) (LogicalPlan, error) { + return smj.recursivePlan(p) +} + +func (smj *semiJoinRewriter) name() string { + return "semi_join_rewrite" +} + +func (smj *semiJoinRewriter) recursivePlan(p LogicalPlan) (LogicalPlan, error) { + newChildren := make([]LogicalPlan, 0, len(p.Children())) + for _, child := range p.Children() { + newChild, err := smj.recursivePlan(child) + if err != nil { + return nil, err + } + newChildren = append(newChildren, newChild) + } + p.SetChildren(newChildren...) + join, ok := p.(*LogicalJoin) + // If it's not a join, or not a (outer) semi join. We just return it since no optimization is needed. + // Actually the check of the preferRewriteSemiJoin is a superset of checking the join type. We remain them for a better understanding. + if !ok || !(join.JoinType == SemiJoin || join.JoinType == LeftOuterSemiJoin) || (join.preferJoinType&preferRewriteSemiJoin == 0) { + return p, nil + } + + if join.JoinType == LeftOuterSemiJoin { + p.SCtx().GetSessionVars().StmtCtx.AppendWarning(ErrInternal.GenWithStack("SEMI_JOIN_REWRITE() is inapplicable for LeftOuterSemiJoin.")) + return p, nil + } + + // If we have jumped the above if condition. We can make sure that the current join is a non-correlated one. + + // If there's left condition or other condition, we cannot rewrite + if len(join.LeftConditions) > 0 || len(join.OtherConditions) > 0 { + p.SCtx().GetSessionVars().StmtCtx.AppendWarning(ErrInternal.GenWithStack("SEMI_JOIN_REWRITE() is inapplicable for SemiJoin with left conditions or other conditions.")) + return p, nil + } + + innerChild := join.Children()[1] + + // If there's right conditions: + // - If it's semi join, then right condition should be pushed. + // - If it's outer semi join, then it still should be pushed since the outer join should not remain any cond of the inner side. + // But the aggregation we added may block the predicate push down since we've not maintained the functional dependency to pass the equiv class to guide the push down. + // So we create a selection before we build the aggregation. + if len(join.RightConditions) > 0 { + sel := LogicalSelection{Conditions: make([]expression.Expression, len(join.RightConditions))}.Init(p.SCtx(), innerChild.SelectBlockOffset()) + copy(sel.Conditions, join.RightConditions) + sel.SetChildren(innerChild) + innerChild = sel + } + + subAgg := LogicalAggregation{ + AggFuncs: make([]*aggregation.AggFuncDesc, 0, len(join.EqualConditions)), + GroupByItems: make([]expression.Expression, 0, len(join.EqualConditions)), + }.Init(p.SCtx(), p.Children()[1].SelectBlockOffset()) + + aggOutputCols := make([]*expression.Column, 0, len(join.EqualConditions)) + for i := range join.EqualConditions { + innerCol := join.EqualConditions[i].GetArgs()[1].(*expression.Column) + firstRow, err := aggregation.NewAggFuncDesc(join.SCtx(), ast.AggFuncFirstRow, []expression.Expression{innerCol}, false) + if err != nil { + return nil, err + } + subAgg.AggFuncs = append(subAgg.AggFuncs, firstRow) + subAgg.GroupByItems = append(subAgg.GroupByItems, innerCol) + aggOutputCols = append(aggOutputCols, innerCol) + } + subAgg.SetChildren(innerChild) + subAgg.SetSchema(expression.NewSchema(aggOutputCols...)) + subAgg.buildSelfKeyInfo(subAgg.Schema()) + + innerJoin := LogicalJoin{ + JoinType: InnerJoin, + EqualConditions: make([]*expression.ScalarFunction, 0, len(join.EqualConditions)), + }.Init(p.SCtx(), p.SelectBlockOffset()) + innerJoin.SetChildren(join.Children()[0], subAgg) + innerJoin.SetSchema(expression.MergeSchema(join.Children()[0].Schema(), subAgg.schema)) + innerJoin.AttachOnConds(expression.ScalarFuncs2Exprs(join.EqualConditions)) + + proj := LogicalProjection{ + Exprs: expression.Column2Exprs(join.Children()[0].Schema().Columns), + }.Init(p.SCtx(), p.SelectBlockOffset()) + proj.SetChildren(innerJoin) + proj.SetSchema(join.Children()[0].Schema()) + + return proj, nil +} diff --git a/planner/core/task.go b/planner/core/task.go index 7d88aac896812..8181f985cc61f 100644 --- a/planner/core/task.go +++ b/planner/core/task.go @@ -809,6 +809,7 @@ func (t *copTask) handleRootTaskConds(ctx sessionctx.Context, newTask *rootTask) selectivity = SelectionFactor } sel := PhysicalSelection{Conditions: t.rootTaskConds}.Init(ctx, newTask.p.statsInfo().Scale(selectivity), newTask.p.SelectBlockOffset()) + sel.fromDataSource = true sel.SetChildren(newTask.p) newTask.p = sel sel.cost = newTask.cost() diff --git a/planner/core/testdata/analyze_suite_out.json b/planner/core/testdata/analyze_suite_out.json index 71a54e4d86f28..32924912e9848 100644 --- a/planner/core/testdata/analyze_suite_out.json +++ b/planner/core/testdata/analyze_suite_out.json @@ -17,7 +17,7 @@ { "SQL": "explain format = 'hint' select * from t1, t2 where t1.a = t2.a", "Plan": [ - "use_index(@`sel_1` `test`.`t1` ), use_index(@`sel_1` `test`.`t2` ), hash_join(@`sel_1` `test`.`t1`)" + "hash_join(@`sel_1` `test`.`t1`), use_index(@`sel_1` `test`.`t1` ), use_index(@`sel_1` `test`.`t2` )" ] } ] diff --git a/planner/core/testdata/binary_plan_suite_in.json b/planner/core/testdata/binary_plan_suite_in.json new file mode 100644 index 0000000000000..b2d81b30a5c1f --- /dev/null +++ b/planner/core/testdata/binary_plan_suite_in.json @@ -0,0 +1,22 @@ +[ + { + "name": "TestBinaryPlanInExplainAndSlowLog", + "cases": [ + "create table t(a int, b int, index ia(a))", + "create table t2(a int, b int)", + "insert into t value(1,1), (3,3)", + "explain analyze format = 'binary' insert into t2 value(2,2), (4,4)", + "explain analyze format = 'binary' replace into t2 value(2,2), (4,4)", + "explain analyze format = 'binary' select * from t", + "explain analyze format = 'binary' select sum(t.a) from t join t2", + "explain analyze format = 'binary' select a from t use index (ia) where a > 100", + "explain analyze format = 'binary' select a from t use index () where a > 100", + "explain analyze format = 'binary' with cte1 as (select a, b from t), cte2 as (select a, b from t2) select * from cte1 join cte2 on cte1.a = cte2.a", + "explain analyze format = 'binary' WITH RECURSIVE cte (n) AS( SELECT 1 UNION ALL SELECT n + 1 FROM cte WHERE n < 5)SELECT * FROM cte", + "explain analyze format = 'binary' update t2 set a = a + 1 where b > 10", + "explain analyze format = 'binary' insert into t2 value(2,2), (4,4)", + "explain analyze format = 'binary' insert into t2 select * from t", + "explain analyze format = 'binary' delete from t2" + ] + } +] diff --git a/planner/core/testdata/binary_plan_suite_out.json b/planner/core/testdata/binary_plan_suite_out.json new file mode 100644 index 0000000000000..35738707d9258 --- /dev/null +++ b/planner/core/testdata/binary_plan_suite_out.json @@ -0,0 +1,567 @@ +[ + { + "Name": "TestBinaryPlanInExplainAndSlowLog", + "Cases": [ + { + "SQL": "create table t(a int, b int, index ia(a))", + "BinaryPlan": null + }, + { + "SQL": "create table t2(a int, b int)", + "BinaryPlan": null + }, + { + "SQL": "insert into t value(1,1), (3,3)", + "BinaryPlan": null + }, + { + "SQL": "explain analyze format = 'binary' insert into t2 value(2,2), (4,4)", + "BinaryPlan": { + "main": { + "name": "Insert_1", + "task_type": 1, + "store_type": 1, + "operator_info": "N/A" + }, + "with_runtime_stats": true + } + }, + { + "SQL": "explain analyze format = 'binary' replace into t2 value(2,2), (4,4)", + "BinaryPlan": { + "main": { + "name": "Insert_1", + "task_type": 1, + "store_type": 1, + "operator_info": "N/A" + }, + "with_runtime_stats": true + } + }, + { + "SQL": "explain analyze format = 'binary' select * from t", + "BinaryPlan": { + "main": { + "name": "TableReader_5", + "children": [ + { + "name": "TableFullScan_4", + "cost": 570000, + "est_rows": 10000, + "act_rows": 2, + "task_type": 2, + "store_type": 2, + "operator_info": "keep order:false, stats:pseudo" + } + ], + "cost": 48834.666666666664, + "est_rows": 10000, + "act_rows": 2, + "task_type": 1, + "store_type": 1, + "operator_info": "data:TableFullScan_4" + }, + "with_runtime_stats": true + } + }, + { + "SQL": "explain analyze format = 'binary' select sum(t.a) from t join t2", + "BinaryPlan": { + "main": { + "name": "HashAgg_8", + "children": [ + { + "name": "Projection_20", + "children": [ + { + "name": "HashJoin_10", + "children": [ + { + "name": "IndexReader_15", + "children": [ + { + "name": "IndexFullScan_14", + "cost": 435000, + "est_rows": 10000, + "act_rows": 2, + "task_type": 2, + "store_type": 2, + "operator_info": "keep order:false, stats:pseudo" + } + ], + "labels": [ + 2 + ], + "cost": 34418, + "est_rows": 10000, + "act_rows": 2, + "task_type": 1, + "store_type": 1, + "operator_info": "index:IndexFullScan_14" + }, + { + "name": "TableReader_17", + "children": [ + { + "name": "TableFullScan_16", + "cost": 570000, + "est_rows": 10000, + "act_rows": 4, + "task_type": 2, + "store_type": 2, + "operator_info": "keep order:false, stats:pseudo" + } + ], + "labels": [ + 1 + ], + "cost": 43418, + "est_rows": 10000, + "act_rows": 4, + "task_type": 1, + "store_type": 1, + "operator_info": "data:TableFullScan_16" + } + ], + "cost": 60107864, + "est_rows": 100000000, + "act_rows": 8, + "task_type": 1, + "store_type": 1, + "operator_info": "CARTESIAN inner join" + } + ], + "cost": 120107882, + "est_rows": 100000000, + "act_rows": 8, + "task_type": 1, + "store_type": 1, + "operator_info": "cast(test.t.a, decimal(10,0) BINARY)->Column#8" + } + ], + "cost": 120107897.001, + "est_rows": 1, + "act_rows": 1, + "task_type": 1, + "store_type": 1, + "operator_info": "funcs:sum(Column#8)->Column#7" + }, + "with_runtime_stats": true + } + }, + { + "SQL": "explain analyze format = 'binary' select a from t use index (ia) where a > 100", + "BinaryPlan": { + "main": { + "name": "IndexReader_6", + "children": [ + { + "name": "IndexRangeScan_5", + "cost": 145000, + "est_rows": 3333.3333333333335, + "task_type": 2, + "store_type": 2, + "operator_info": "range:(100,+inf], keep order:false, stats:pseudo" + } + ], + "cost": 11473.555555555557, + "est_rows": 3333.3333333333335, + "task_type": 1, + "store_type": 1, + "operator_info": "index:IndexRangeScan_5" + }, + "with_runtime_stats": true + } + }, + { + "SQL": "explain analyze format = 'binary' select a from t use index () where a > 100", + "BinaryPlan": { + "main": { + "name": "TableReader_7", + "children": [ + { + "name": "Selection_6", + "children": [ + { + "name": "TableFullScan_5", + "cost": 570000, + "est_rows": 10000, + "act_rows": 2, + "task_type": 2, + "store_type": 2, + "operator_info": "keep order:false, stats:pseudo" + } + ], + "cost": 600000, + "est_rows": 3333.3333333333335, + "task_type": 2, + "store_type": 2, + "operator_info": "gt(test.t.a, 100)" + } + ], + "cost": 41806.88888888889, + "est_rows": 3333.3333333333335, + "task_type": 1, + "store_type": 1, + "operator_info": "data:Selection_6" + }, + "with_runtime_stats": true + } + }, + { + "SQL": "explain analyze format = 'binary' with cte1 as (select a, b from t), cte2 as (select a, b from t2) select * from cte1 join cte2 on cte1.a = cte2.a", + "BinaryPlan": { + "main": { + "name": "HashJoin_24", + "children": [ + { + "name": "Selection_26", + "children": [ + { + "name": "CTEFullScan_27", + "est_rows": 8000, + "act_rows": 2, + "task_type": 1, + "store_type": 1, + "operator_info": "data:CTE_0" + } + ], + "labels": [ + 2 + ], + "cost": 24000, + "est_rows": 6400, + "act_rows": 2, + "task_type": 1, + "store_type": 1, + "operator_info": "not(isnull(test.t.a))" + }, + { + "name": "Selection_28", + "children": [ + { + "name": "CTEFullScan_29", + "est_rows": 8000, + "act_rows": 4, + "task_type": 1, + "store_type": 1, + "operator_info": "data:CTE_1" + } + ], + "labels": [ + 1 + ], + "cost": 24000, + "est_rows": 6400, + "act_rows": 4, + "task_type": 1, + "store_type": 1, + "operator_info": "not(isnull(test.t2.a))" + } + ], + "cost": 72024.4, + "est_rows": 8000, + "task_type": 1, + "store_type": 1, + "operator_info": "inner join, equal:[eq(test.t.a, test.t2.a)]" + }, + "ctes": [ + { + "name": "CTE_0", + "children": [ + { + "name": "Selection_13", + "children": [ + { + "name": "TableReader_16", + "children": [ + { + "name": "TableFullScan_15", + "cost": 570000, + "est_rows": 10000, + "act_rows": 2, + "task_type": 2, + "store_type": 2, + "operator_info": "keep order:false, stats:pseudo" + } + ], + "cost": 48834.666666666664, + "est_rows": 10000, + "act_rows": 2, + "task_type": 1, + "store_type": 1, + "operator_info": "data:TableFullScan_15" + } + ], + "labels": [ + 3 + ], + "cost": 84852.66666666666, + "est_rows": 8000, + "act_rows": 2, + "task_type": 1, + "store_type": 1, + "operator_info": "not(isnull(test.t.a))" + } + ], + "est_rows": 8000, + "act_rows": 2, + "task_type": 1, + "store_type": 1, + "operator_info": "Non-Recursive CTE" + }, + { + "name": "CTE_1", + "children": [ + { + "name": "Selection_18", + "children": [ + { + "name": "TableReader_21", + "children": [ + { + "name": "TableFullScan_20", + "cost": 570000, + "est_rows": 10000, + "act_rows": 4, + "task_type": 2, + "store_type": 2, + "operator_info": "keep order:false, stats:pseudo" + } + ], + "cost": 48834.666666666664, + "est_rows": 10000, + "act_rows": 4, + "task_type": 1, + "store_type": 1, + "operator_info": "data:TableFullScan_20" + } + ], + "labels": [ + 3 + ], + "cost": 84852.66666666666, + "est_rows": 8000, + "act_rows": 4, + "task_type": 1, + "store_type": 1, + "operator_info": "not(isnull(test.t2.a))" + } + ], + "est_rows": 8000, + "act_rows": 4, + "task_type": 1, + "store_type": 1, + "operator_info": "Non-Recursive CTE" + } + ], + "with_runtime_stats": true + } + }, + { + "SQL": "explain analyze format = 'binary' WITH RECURSIVE cte (n) AS( SELECT 1 UNION ALL SELECT n + 1 FROM cte WHERE n < 5)SELECT * FROM cte", + "BinaryPlan": { + "main": { + "name": "CTEFullScan_17", + "est_rows": 1.8, + "act_rows": 5, + "task_type": 1, + "store_type": 1, + "operator_info": "data:CTE_0" + }, + "ctes": [ + { + "name": "CTE_0", + "children": [ + { + "name": "Projection_11", + "children": [ + { + "name": "TableDual_12", + "est_rows": 1, + "act_rows": 1, + "task_type": 1, + "store_type": 1, + "operator_info": "rows:1" + } + ], + "labels": [ + 3 + ], + "cost": 18.6, + "est_rows": 1, + "act_rows": 1, + "task_type": 1, + "store_type": 1, + "operator_info": "1->Column#2" + }, + { + "name": "Projection_13", + "children": [ + { + "name": "Selection_14", + "children": [ + { + "name": "CTETable_15", + "est_rows": 1, + "act_rows": 5, + "task_type": 1, + "store_type": 1, + "operator_info": "Scan on CTE_0" + } + ], + "cost": 3, + "est_rows": 0.8, + "act_rows": 4, + "task_type": 1, + "store_type": 1, + "operator_info": "lt(Column#3, 5)" + } + ], + "labels": [ + 4 + ], + "cost": 21.48, + "est_rows": 0.8, + "act_rows": 4, + "task_type": 1, + "store_type": 1, + "operator_info": "cast(plus(Column#3, 1), bigint(1) BINARY)->Column#5" + } + ], + "est_rows": 1.8, + "act_rows": 5, + "task_type": 1, + "store_type": 1, + "operator_info": "Recursive CTE" + } + ], + "with_runtime_stats": true + } + }, + { + "SQL": "explain analyze format = 'binary' update t2 set a = a + 1 where b > 10", + "BinaryPlan": { + "main": { + "name": "Update_4", + "children": [ + { + "name": "TableReader_8", + "children": [ + { + "name": "Selection_7", + "children": [ + { + "name": "TableFullScan_6", + "cost": 570000, + "est_rows": 10000, + "act_rows": 4, + "task_type": 2, + "store_type": 2, + "operator_info": "keep order:false, stats:pseudo" + } + ], + "cost": 600000, + "est_rows": 3333.3333333333335, + "task_type": 2, + "store_type": 2, + "operator_info": "gt(test.t2.b, 10)" + } + ], + "cost": 45418, + "est_rows": 3333.3333333333335, + "task_type": 1, + "store_type": 1, + "operator_info": "data:Selection_7" + } + ], + "task_type": 1, + "store_type": 1, + "operator_info": "N/A" + }, + "with_runtime_stats": true + } + }, + { + "SQL": "explain analyze format = 'binary' insert into t2 value(2,2), (4,4)", + "BinaryPlan": { + "main": { + "name": "Insert_1", + "task_type": 1, + "store_type": 1, + "operator_info": "N/A" + }, + "with_runtime_stats": true + } + }, + { + "SQL": "explain analyze format = 'binary' insert into t2 select * from t", + "BinaryPlan": { + "main": { + "name": "Insert_1", + "children": [ + { + "name": "TableReader_7", + "children": [ + { + "name": "TableFullScan_6", + "cost": 570000, + "est_rows": 10000, + "act_rows": 2, + "task_type": 2, + "store_type": 2, + "operator_info": "keep order:false, stats:pseudo" + } + ], + "cost": 48834.666666666664, + "est_rows": 10000, + "act_rows": 2, + "task_type": 1, + "store_type": 1, + "operator_info": "data:TableFullScan_6" + } + ], + "task_type": 1, + "store_type": 1, + "operator_info": "N/A" + }, + "with_runtime_stats": true + } + }, + { + "SQL": "explain analyze format = 'binary' delete from t2", + "BinaryPlan": { + "main": { + "name": "Delete_3", + "children": [ + { + "name": "TableReader_6", + "children": [ + { + "name": "TableFullScan_5", + "cost": 570000, + "est_rows": 10000, + "act_rows": 8, + "task_type": 2, + "store_type": 2, + "operator_info": "keep order:false, stats:pseudo" + } + ], + "cost": 54251.333333333336, + "est_rows": 10000, + "act_rows": 8, + "task_type": 1, + "store_type": 1, + "operator_info": "data:TableFullScan_5" + } + ], + "task_type": 1, + "store_type": 1, + "operator_info": "N/A" + }, + "with_runtime_stats": true + } + } + ] + } +] diff --git a/planner/core/testdata/enforce_mpp_suite_in.json b/planner/core/testdata/enforce_mpp_suite_in.json index 3c70fa18e5a5f..208799941da5c 100644 --- a/planner/core/testdata/enforce_mpp_suite_in.json +++ b/planner/core/testdata/enforce_mpp_suite_in.json @@ -94,5 +94,24 @@ "EXPLAIN select o.o_id, count(*) from c, o where c.c_id=o.c_id group by o.o_id; -- 2. test agg push down, group by non-join column", "EXPLAIN select o.c_id, count(*) from c, o where c.c_id=o.c_id group by o.c_id; -- 3. test agg push down, group by join column" ] + }, + { + "name": "TestMPPSkewedGroupDistinctRewrite", + "cases": [ + "set @@tidb_allow_mpp=1;set @@tidb_enforce_mpp=1;set @@tidb_opt_skew_distinct_agg=1;", + "EXPLAIN select count(distinct c) from t group by d;", + "EXPLAIN select count(distinct c), count(a) from t group by d;", + "EXPLAIN select count(distinct c) from t group by b+d;", + "EXPLAIN select count(distinct c) from t group by b+d, a+b;", + "EXPLAIN select count(distinct c), count(*) from t group by date_format(d,'%Y');", + "EXPLAIN select date_format(d,'%Y') as df, sum(a), count(b), count(distinct c) from t group by date_format(d,'%Y');", + "EXPLAIN select d, count(distinct c), sum(a), max(b), count(*) from t group by d;", + "EXPLAIN select date_format(d,'%Y') as df, count(distinct c) from t group by date_format(d,'%Y');", + "EXPLAIN select date_format(d,'%Y') as df, a, count(b), count(distinct c) from t group by date_format(d,'%Y'), a;", + "EXPLAIN select date_format(d,'%Y') as df, a, count(b), avg(distinct c) from t group by date_format(d,'%Y'), a;", + "EXPLAIN select d,e, min(b), count(distinct c), bit_or(a) from t group by e,d; -- bit agg func can't be pushed to TiFlash", + "EXPLAIN select a, count(b), avg(distinct c), count(distinct c) from t group by a; -- multi distinct funcs, bail out", + "EXPLAIN select count(b), count(distinct c) from t; -- single distinct func but no group key, bail out" + ] } ] diff --git a/planner/core/testdata/enforce_mpp_suite_out.json b/planner/core/testdata/enforce_mpp_suite_out.json index 4ef7f843bf651..5a751c2158014 100644 --- a/planner/core/testdata/enforce_mpp_suite_out.json +++ b/planner/core/testdata/enforce_mpp_suite_out.json @@ -592,30 +592,30 @@ { "SQL": "explain select a from t where t.a>1 or t.a in (select a from t); -- 7. left outer semi join", "Plan": [ - "TableReader_48 8000.00 root data:ExchangeSender_47", - "└─ExchangeSender_47 8000.00 mpp[tiflash] ExchangeType: PassThrough", + "TableReader_51 8000.00 root data:ExchangeSender_50", + "└─ExchangeSender_50 8000.00 mpp[tiflash] ExchangeType: PassThrough", " └─Projection_8 8000.00 mpp[tiflash] test.t.a", - " └─Selection_45 8000.00 mpp[tiflash] or(gt(test.t.a, 1), Column#3)", + " └─Selection_49 8000.00 mpp[tiflash] or(gt(test.t.a, 1), Column#3)", " └─HashJoin_46 10000.00 mpp[tiflash] left outer semi join, equal:[eq(test.t.a, test.t.a)]", - " ├─ExchangeReceiver_26(Build) 10000.00 mpp[tiflash] ", - " │ └─ExchangeSender_25 10000.00 mpp[tiflash] ExchangeType: Broadcast", - " │ └─TableFullScan_24 10000.00 mpp[tiflash] table:t keep order:false, stats:pseudo", - " └─TableFullScan_23(Probe) 10000.00 mpp[tiflash] table:t keep order:false, stats:pseudo" + " ├─ExchangeReceiver_27(Build) 10000.00 mpp[tiflash] ", + " │ └─ExchangeSender_26 10000.00 mpp[tiflash] ExchangeType: Broadcast", + " │ └─TableFullScan_25 10000.00 mpp[tiflash] table:t keep order:false, stats:pseudo", + " └─TableFullScan_24(Probe) 10000.00 mpp[tiflash] table:t keep order:false, stats:pseudo" ], "Warn": null }, { "SQL": "explain select a from t where t.a>1 or t.a not in (select a from t); -- now it's supported -- 8. anti left outer semi join", "Plan": [ - "TableReader_48 8000.00 root data:ExchangeSender_47", - "└─ExchangeSender_47 8000.00 mpp[tiflash] ExchangeType: PassThrough", + "TableReader_51 8000.00 root data:ExchangeSender_50", + "└─ExchangeSender_50 8000.00 mpp[tiflash] ExchangeType: PassThrough", " └─Projection_8 8000.00 mpp[tiflash] test.t.a", - " └─Selection_45 8000.00 mpp[tiflash] or(gt(test.t.a, 1), Column#3)", + " └─Selection_49 8000.00 mpp[tiflash] or(gt(test.t.a, 1), Column#3)", " └─HashJoin_46 10000.00 mpp[tiflash] anti left outer semi join, equal:[eq(test.t.a, test.t.a)]", - " ├─ExchangeReceiver_26(Build) 10000.00 mpp[tiflash] ", - " │ └─ExchangeSender_25 10000.00 mpp[tiflash] ExchangeType: Broadcast", - " │ └─TableFullScan_24 10000.00 mpp[tiflash] table:t keep order:false, stats:pseudo", - " └─TableFullScan_23(Probe) 10000.00 mpp[tiflash] table:t keep order:false, stats:pseudo" + " ├─ExchangeReceiver_27(Build) 10000.00 mpp[tiflash] ", + " │ └─ExchangeSender_26 10000.00 mpp[tiflash] ExchangeType: Broadcast", + " │ └─TableFullScan_25 10000.00 mpp[tiflash] table:t keep order:false, stats:pseudo", + " └─TableFullScan_24(Probe) 10000.00 mpp[tiflash] table:t keep order:false, stats:pseudo" ], "Warn": null }, @@ -709,5 +709,270 @@ "Warn": null } ] + }, + { + "Name": "TestMPPSkewedGroupDistinctRewrite", + "Cases": [ + { + "SQL": "set @@tidb_allow_mpp=1;set @@tidb_enforce_mpp=1;set @@tidb_opt_skew_distinct_agg=1;", + "Plan": null, + "Warn": null + }, + { + "SQL": "EXPLAIN select count(distinct c) from t group by d;", + "Plan": [ + "TableReader_56 8000.00 root data:ExchangeSender_55", + "└─ExchangeSender_55 8000.00 mpp[tiflash] ExchangeType: PassThrough", + " └─Projection_51 8000.00 mpp[tiflash] Column#7", + " └─HashAgg_52 8000.00 mpp[tiflash] group by:test.t.d, funcs:sum(Column#18)->Column#7", + " └─ExchangeReceiver_54 8000.00 mpp[tiflash] ", + " └─ExchangeSender_53 8000.00 mpp[tiflash] ExchangeType: HashPartition, Hash Cols: [name: test.t.d, collate: binary]", + " └─HashAgg_50 8000.00 mpp[tiflash] group by:test.t.d, funcs:count(test.t.c)->Column#18", + " └─Projection_37 8000.00 mpp[tiflash] test.t.c, test.t.d", + " └─HashAgg_38 8000.00 mpp[tiflash] group by:test.t.c, test.t.d, funcs:firstrow(test.t.c)->test.t.c, funcs:firstrow(test.t.d)->test.t.d", + " └─ExchangeReceiver_40 8000.00 mpp[tiflash] ", + " └─ExchangeSender_39 8000.00 mpp[tiflash] ExchangeType: HashPartition, Hash Cols: [name: test.t.d, collate: binary], [name: test.t.c, collate: binary]", + " └─HashAgg_36 8000.00 mpp[tiflash] group by:test.t.c, test.t.d, ", + " └─TableFullScan_26 10000.00 mpp[tiflash] table:t keep order:false, stats:pseudo" + ], + "Warn": null + }, + { + "SQL": "EXPLAIN select count(distinct c), count(a) from t group by d;", + "Plan": [ + "TableReader_57 8000.00 root data:ExchangeSender_56", + "└─ExchangeSender_56 8000.00 mpp[tiflash] ExchangeType: PassThrough", + " └─Projection_8 8000.00 mpp[tiflash] Column#7, cast(Column#10, bigint(21) BINARY)->Column#8", + " └─Projection_52 8000.00 mpp[tiflash] Column#7, Column#10", + " └─HashAgg_53 8000.00 mpp[tiflash] group by:test.t.d, funcs:sum(Column#27)->Column#7, funcs:sum(Column#28)->Column#10", + " └─ExchangeReceiver_55 8000.00 mpp[tiflash] ", + " └─ExchangeSender_54 8000.00 mpp[tiflash] ExchangeType: HashPartition, Hash Cols: [name: test.t.d, collate: binary]", + " └─HashAgg_51 8000.00 mpp[tiflash] group by:Column#31, funcs:count(Column#29)->Column#27, funcs:sum(Column#30)->Column#28", + " └─Projection_58 8000.00 mpp[tiflash] test.t.c, cast(Column#9, decimal(20,0) BINARY)->Column#30, test.t.d", + " └─Projection_38 8000.00 mpp[tiflash] test.t.c, Column#9, test.t.d", + " └─HashAgg_39 8000.00 mpp[tiflash] group by:test.t.c, test.t.d, funcs:firstrow(test.t.c)->test.t.c, funcs:sum(Column#21)->Column#9, funcs:firstrow(test.t.d)->test.t.d", + " └─ExchangeReceiver_41 8000.00 mpp[tiflash] ", + " └─ExchangeSender_40 8000.00 mpp[tiflash] ExchangeType: HashPartition, Hash Cols: [name: test.t.d, collate: binary], [name: test.t.c, collate: binary]", + " └─HashAgg_37 8000.00 mpp[tiflash] group by:test.t.c, test.t.d, funcs:count(test.t.a)->Column#21", + " └─TableFullScan_27 10000.00 mpp[tiflash] table:t keep order:false, stats:pseudo" + ], + "Warn": null + }, + { + "SQL": "EXPLAIN select count(distinct c) from t group by b+d;", + "Plan": [ + "TableReader_56 8000.00 root data:ExchangeSender_55", + "└─ExchangeSender_55 8000.00 mpp[tiflash] ExchangeType: PassThrough", + " └─Projection_51 8000.00 mpp[tiflash] Column#7", + " └─HashAgg_52 8000.00 mpp[tiflash] group by:Column#28, funcs:sum(Column#29)->Column#7", + " └─ExchangeReceiver_54 8000.00 mpp[tiflash] ", + " └─ExchangeSender_53 8000.00 mpp[tiflash] ExchangeType: HashPartition, Hash Cols: [name: Column#28, collate: binary]", + " └─HashAgg_50 8000.00 mpp[tiflash] group by:Column#35, funcs:count(Column#34)->Column#29", + " └─Projection_58 8000.00 mpp[tiflash] test.t.c, plus(test.t.b, cast(test.t.d, bigint(10) BINARY))->Column#35", + " └─Projection_37 8000.00 mpp[tiflash] test.t.c, test.t.b, test.t.d", + " └─HashAgg_38 8000.00 mpp[tiflash] group by:Column#20, test.t.c, funcs:firstrow(test.t.c)->test.t.c, funcs:firstrow(Column#22)->test.t.b, funcs:firstrow(Column#23)->test.t.d", + " └─ExchangeReceiver_40 8000.00 mpp[tiflash] ", + " └─ExchangeSender_39 8000.00 mpp[tiflash] ExchangeType: HashPartition, Hash Cols: [name: test.t.c, collate: binary]", + " └─HashAgg_36 8000.00 mpp[tiflash] group by:Column#32, Column#33, funcs:firstrow(Column#30)->Column#22, funcs:firstrow(Column#31)->Column#23", + " └─Projection_57 10000.00 mpp[tiflash] test.t.b, test.t.d, plus(test.t.b, cast(test.t.d, bigint(10) BINARY))->Column#32, test.t.c", + " └─TableFullScan_26 10000.00 mpp[tiflash] table:t keep order:false, stats:pseudo" + ], + "Warn": null + }, + { + "SQL": "EXPLAIN select count(distinct c) from t group by b+d, a+b;", + "Plan": [ + "TableReader_56 8000.00 root data:ExchangeSender_55", + "└─ExchangeSender_55 8000.00 mpp[tiflash] ExchangeType: PassThrough", + " └─Projection_51 8000.00 mpp[tiflash] Column#7", + " └─HashAgg_52 8000.00 mpp[tiflash] group by:Column#42, Column#43, funcs:sum(Column#44)->Column#7", + " └─ExchangeReceiver_54 8000.00 mpp[tiflash] ", + " └─ExchangeSender_53 8000.00 mpp[tiflash] ExchangeType: HashPartition, Hash Cols: [name: Column#42, collate: binary], [name: Column#43, collate: binary]", + " └─HashAgg_50 8000.00 mpp[tiflash] group by:Column#53, Column#54, funcs:count(Column#52)->Column#44", + " └─Projection_58 8000.00 mpp[tiflash] test.t.c, plus(test.t.b, cast(test.t.d, bigint(10) BINARY))->Column#53, plus(test.t.a, test.t.b)->Column#54", + " └─Projection_37 8000.00 mpp[tiflash] test.t.c, test.t.b, test.t.d, test.t.a, test.t.b", + " └─HashAgg_38 8000.00 mpp[tiflash] group by:Column#29, Column#30, test.t.c, funcs:firstrow(test.t.c)->test.t.c, funcs:firstrow(Column#32)->test.t.b, funcs:firstrow(Column#33)->test.t.d, funcs:firstrow(Column#34)->test.t.a, funcs:firstrow(Column#35)->test.t.b", + " └─ExchangeReceiver_40 8000.00 mpp[tiflash] ", + " └─ExchangeSender_39 8000.00 mpp[tiflash] ExchangeType: HashPartition, Hash Cols: [name: test.t.c, collate: binary]", + " └─HashAgg_36 8000.00 mpp[tiflash] group by:Column#49, Column#50, Column#51, funcs:firstrow(Column#45)->Column#32, funcs:firstrow(Column#46)->Column#33, funcs:firstrow(Column#47)->Column#34, funcs:firstrow(Column#48)->Column#35", + " └─Projection_57 10000.00 mpp[tiflash] test.t.b, test.t.d, test.t.a, test.t.b, plus(test.t.b, cast(test.t.d, bigint(10) BINARY))->Column#49, plus(test.t.a, test.t.b)->Column#50, test.t.c", + " └─TableFullScan_26 10000.00 mpp[tiflash] table:t keep order:false, stats:pseudo" + ], + "Warn": null + }, + { + "SQL": "EXPLAIN select count(distinct c), count(*) from t group by date_format(d,'%Y');", + "Plan": [ + "TableReader_57 8000.00 root data:ExchangeSender_56", + "└─ExchangeSender_56 8000.00 mpp[tiflash] ExchangeType: PassThrough", + " └─Projection_8 8000.00 mpp[tiflash] Column#7, cast(Column#10, bigint(21) BINARY)->Column#8", + " └─Projection_52 8000.00 mpp[tiflash] Column#7, Column#10", + " └─HashAgg_53 8000.00 mpp[tiflash] group by:Column#33, funcs:sum(Column#34)->Column#7, funcs:sum(Column#35)->Column#10", + " └─ExchangeReceiver_55 8000.00 mpp[tiflash] ", + " └─ExchangeSender_54 8000.00 mpp[tiflash] ExchangeType: HashPartition, Hash Cols: [name: Column#33, collate: utf8mb4_bin]", + " └─HashAgg_51 8000.00 mpp[tiflash] group by:Column#41, funcs:count(Column#39)->Column#34, funcs:sum(Column#40)->Column#35", + " └─Projection_59 8000.00 mpp[tiflash] test.t.c, cast(Column#9, decimal(20,0) BINARY)->Column#40, date_format(test.t.d, %Y)->Column#41", + " └─Projection_38 8000.00 mpp[tiflash] test.t.c, Column#9, test.t.d", + " └─HashAgg_39 8000.00 mpp[tiflash] group by:Column#23, test.t.c, funcs:firstrow(test.t.c)->test.t.c, funcs:sum(Column#25)->Column#9, funcs:firstrow(Column#26)->test.t.d", + " └─ExchangeReceiver_41 8000.00 mpp[tiflash] ", + " └─ExchangeSender_40 8000.00 mpp[tiflash] ExchangeType: HashPartition, Hash Cols: [name: test.t.c, collate: binary]", + " └─HashAgg_37 8000.00 mpp[tiflash] group by:Column#37, Column#38, funcs:count(1)->Column#25, funcs:firstrow(Column#36)->Column#26", + " └─Projection_58 10000.00 mpp[tiflash] test.t.d, date_format(test.t.d, %Y)->Column#37, test.t.c", + " └─TableFullScan_27 10000.00 mpp[tiflash] table:t keep order:false, stats:pseudo" + ], + "Warn": null + }, + { + "SQL": "EXPLAIN select date_format(d,'%Y') as df, sum(a), count(b), count(distinct c) from t group by date_format(d,'%Y');", + "Plan": [ + "TableReader_57 8000.00 root data:ExchangeSender_56", + "└─ExchangeSender_56 8000.00 mpp[tiflash] ExchangeType: PassThrough", + " └─Projection_8 8000.00 mpp[tiflash] date_format(test.t.d, %Y)->Column#10, Column#7, cast(Column#14, bigint(21) BINARY)->Column#8, Column#9", + " └─Projection_52 8000.00 mpp[tiflash] Column#7, Column#14, Column#9, test.t.d", + " └─HashAgg_53 8000.00 mpp[tiflash] group by:Column#45, funcs:sum(Column#46)->Column#7, funcs:sum(Column#47)->Column#14, funcs:sum(Column#48)->Column#9, funcs:firstrow(Column#49)->test.t.d", + " └─ExchangeReceiver_55 8000.00 mpp[tiflash] ", + " └─ExchangeSender_54 8000.00 mpp[tiflash] ExchangeType: HashPartition, Hash Cols: [name: Column#45, collate: utf8mb4_bin]", + " └─HashAgg_51 8000.00 mpp[tiflash] group by:Column#59, funcs:sum(Column#55)->Column#46, funcs:sum(Column#56)->Column#47, funcs:count(Column#57)->Column#48, funcs:firstrow(Column#58)->Column#49", + " └─Projection_59 8000.00 mpp[tiflash] Column#12, cast(Column#13, decimal(20,0) BINARY)->Column#56, test.t.c, test.t.d, date_format(test.t.d, %Y)->Column#59", + " └─Projection_38 8000.00 mpp[tiflash] Column#12, Column#13, test.t.c, test.t.d", + " └─HashAgg_39 8000.00 mpp[tiflash] group by:Column#30, test.t.c, funcs:sum(Column#31)->Column#12, funcs:sum(Column#32)->Column#13, funcs:firstrow(test.t.c)->test.t.c, funcs:firstrow(Column#34)->test.t.d", + " └─ExchangeReceiver_41 8000.00 mpp[tiflash] ", + " └─ExchangeSender_40 8000.00 mpp[tiflash] ExchangeType: HashPartition, Hash Cols: [name: test.t.c, collate: binary]", + " └─HashAgg_37 8000.00 mpp[tiflash] group by:Column#53, Column#54, funcs:sum(Column#50)->Column#31, funcs:count(Column#51)->Column#32, funcs:firstrow(Column#52)->Column#34", + " └─Projection_58 10000.00 mpp[tiflash] cast(test.t.a, decimal(10,0) BINARY)->Column#50, test.t.b, test.t.d, date_format(test.t.d, %Y)->Column#53, test.t.c", + " └─TableFullScan_27 10000.00 mpp[tiflash] table:t keep order:false, stats:pseudo" + ], + "Warn": null + }, + { + "SQL": "EXPLAIN select d, count(distinct c), sum(a), max(b), count(*) from t group by d;", + "Plan": [ + "TableReader_57 8000.00 root data:ExchangeSender_56", + "└─ExchangeSender_56 8000.00 mpp[tiflash] ExchangeType: PassThrough", + " └─Projection_8 8000.00 mpp[tiflash] test.t.d, Column#7, Column#8, Column#9, cast(Column#14, bigint(21) BINARY)->Column#10", + " └─Projection_52 8000.00 mpp[tiflash] Column#7, Column#8, Column#9, Column#14, test.t.d", + " └─HashAgg_53 8000.00 mpp[tiflash] group by:test.t.d, funcs:sum(Column#45)->Column#7, funcs:sum(Column#46)->Column#8, funcs:max(Column#47)->Column#9, funcs:sum(Column#48)->Column#14, funcs:firstrow(test.t.d)->test.t.d", + " └─ExchangeReceiver_55 8000.00 mpp[tiflash] ", + " └─ExchangeSender_54 8000.00 mpp[tiflash] ExchangeType: HashPartition, Hash Cols: [name: test.t.d, collate: binary]", + " └─HashAgg_51 8000.00 mpp[tiflash] group by:Column#58, funcs:count(Column#54)->Column#45, funcs:sum(Column#55)->Column#46, funcs:max(Column#56)->Column#47, funcs:sum(Column#57)->Column#48", + " └─Projection_59 8000.00 mpp[tiflash] test.t.c, Column#11, Column#12, cast(Column#13, decimal(20,0) BINARY)->Column#57, test.t.d", + " └─Projection_38 8000.00 mpp[tiflash] test.t.c, Column#11, Column#12, Column#13, test.t.d", + " └─HashAgg_39 8000.00 mpp[tiflash] group by:test.t.c, test.t.d, funcs:firstrow(test.t.c)->test.t.c, funcs:sum(Column#31)->Column#11, funcs:max(Column#32)->Column#12, funcs:sum(Column#33)->Column#13, funcs:firstrow(test.t.d)->test.t.d", + " └─ExchangeReceiver_41 8000.00 mpp[tiflash] ", + " └─ExchangeSender_40 8000.00 mpp[tiflash] ExchangeType: HashPartition, Hash Cols: [name: test.t.d, collate: binary], [name: test.t.c, collate: binary]", + " └─HashAgg_37 8000.00 mpp[tiflash] group by:Column#52, Column#53, funcs:sum(Column#50)->Column#31, funcs:max(Column#51)->Column#32, funcs:count(1)->Column#33", + " └─Projection_58 10000.00 mpp[tiflash] cast(test.t.a, decimal(10,0) BINARY)->Column#50, test.t.b, test.t.d, test.t.c", + " └─TableFullScan_27 10000.00 mpp[tiflash] table:t keep order:false, stats:pseudo" + ], + "Warn": null + }, + { + "SQL": "EXPLAIN select date_format(d,'%Y') as df, count(distinct c) from t group by date_format(d,'%Y');", + "Plan": [ + "TableReader_56 8000.00 root data:ExchangeSender_55", + "└─ExchangeSender_55 8000.00 mpp[tiflash] ExchangeType: PassThrough", + " └─Projection_7 8000.00 mpp[tiflash] date_format(test.t.d, %Y)->Column#8, Column#7", + " └─Projection_51 8000.00 mpp[tiflash] Column#7, test.t.d", + " └─HashAgg_52 8000.00 mpp[tiflash] group by:Column#28, funcs:sum(Column#29)->Column#7, funcs:firstrow(Column#30)->test.t.d", + " └─ExchangeReceiver_54 8000.00 mpp[tiflash] ", + " └─ExchangeSender_53 8000.00 mpp[tiflash] ExchangeType: HashPartition, Hash Cols: [name: Column#28, collate: utf8mb4_bin]", + " └─HashAgg_50 8000.00 mpp[tiflash] group by:Column#36, funcs:count(Column#34)->Column#29, funcs:firstrow(Column#35)->Column#30", + " └─Projection_58 8000.00 mpp[tiflash] test.t.c, test.t.d, date_format(test.t.d, %Y)->Column#36", + " └─Projection_37 8000.00 mpp[tiflash] test.t.c, test.t.d", + " └─HashAgg_38 8000.00 mpp[tiflash] group by:Column#19, test.t.c, funcs:firstrow(test.t.c)->test.t.c, funcs:firstrow(Column#21)->test.t.d", + " └─ExchangeReceiver_40 8000.00 mpp[tiflash] ", + " └─ExchangeSender_39 8000.00 mpp[tiflash] ExchangeType: HashPartition, Hash Cols: [name: test.t.c, collate: binary]", + " └─HashAgg_36 8000.00 mpp[tiflash] group by:Column#32, Column#33, funcs:firstrow(Column#31)->Column#21", + " └─Projection_57 10000.00 mpp[tiflash] test.t.d, date_format(test.t.d, %Y)->Column#32, test.t.c", + " └─TableFullScan_26 10000.00 mpp[tiflash] table:t keep order:false, stats:pseudo" + ], + "Warn": null + }, + { + "SQL": "EXPLAIN select date_format(d,'%Y') as df, a, count(b), count(distinct c) from t group by date_format(d,'%Y'), a;", + "Plan": [ + "TableReader_57 8000.00 root data:ExchangeSender_56", + "└─ExchangeSender_56 8000.00 mpp[tiflash] ExchangeType: PassThrough", + " └─Projection_8 8000.00 mpp[tiflash] date_format(test.t.d, %Y)->Column#9, test.t.a, cast(Column#12, bigint(21) BINARY)->Column#7, Column#8", + " └─Projection_52 8000.00 mpp[tiflash] Column#12, Column#8, test.t.a, test.t.d", + " └─HashAgg_53 8000.00 mpp[tiflash] group by:Column#43, test.t.a, funcs:sum(Column#44)->Column#12, funcs:sum(Column#45)->Column#8, funcs:firstrow(test.t.a)->test.t.a, funcs:firstrow(Column#47)->test.t.d", + " └─ExchangeReceiver_55 8000.00 mpp[tiflash] ", + " └─ExchangeSender_54 8000.00 mpp[tiflash] ExchangeType: HashPartition, Hash Cols: [name: test.t.a, collate: binary]", + " └─HashAgg_51 8000.00 mpp[tiflash] group by:Column#56, Column#57, funcs:sum(Column#53)->Column#44, funcs:count(Column#54)->Column#45, funcs:firstrow(Column#55)->Column#47", + " └─Projection_59 8000.00 mpp[tiflash] cast(Column#11, decimal(20,0) BINARY)->Column#53, test.t.c, test.t.d, date_format(test.t.d, %Y)->Column#56, test.t.a", + " └─Projection_38 8000.00 mpp[tiflash] Column#11, test.t.c, test.t.a, test.t.d", + " └─HashAgg_39 8000.00 mpp[tiflash] group by:Column#28, test.t.a, test.t.c, funcs:sum(Column#29)->Column#11, funcs:firstrow(test.t.c)->test.t.c, funcs:firstrow(test.t.a)->test.t.a, funcs:firstrow(Column#32)->test.t.d", + " └─ExchangeReceiver_41 8000.00 mpp[tiflash] ", + " └─ExchangeSender_40 8000.00 mpp[tiflash] ExchangeType: HashPartition, Hash Cols: [name: test.t.a, collate: binary], [name: test.t.c, collate: binary]", + " └─HashAgg_37 8000.00 mpp[tiflash] group by:Column#50, Column#51, Column#52, funcs:count(Column#48)->Column#29, funcs:firstrow(Column#49)->Column#32", + " └─Projection_58 10000.00 mpp[tiflash] test.t.b, test.t.d, date_format(test.t.d, %Y)->Column#50, test.t.a, test.t.c", + " └─TableFullScan_27 10000.00 mpp[tiflash] table:t keep order:false, stats:pseudo" + ], + "Warn": null + }, + { + "SQL": "EXPLAIN select date_format(d,'%Y') as df, a, count(b), avg(distinct c) from t group by date_format(d,'%Y'), a;", + "Plan": [ + "TableReader_57 8000.00 root data:ExchangeSender_56", + "└─ExchangeSender_56 8000.00 mpp[tiflash] ExchangeType: PassThrough", + " └─Projection_8 8000.00 mpp[tiflash] date_format(test.t.d, %Y)->Column#9, test.t.a, cast(Column#12, bigint(21) BINARY)->Column#7, Column#8", + " └─Projection_52 8000.00 mpp[tiflash] Column#12, div(Column#8, cast(case(eq(Column#46, 0), 1, Column#46), decimal(20,0) BINARY))->Column#8, test.t.a, test.t.d", + " └─HashAgg_53 8000.00 mpp[tiflash] group by:Column#47, test.t.a, funcs:sum(Column#48)->Column#12, funcs:sum(Column#49)->Column#46, funcs:sum(Column#50)->Column#8, funcs:firstrow(test.t.a)->test.t.a, funcs:firstrow(Column#52)->test.t.d", + " └─ExchangeReceiver_55 8000.00 mpp[tiflash] ", + " └─ExchangeSender_54 8000.00 mpp[tiflash] ExchangeType: HashPartition, Hash Cols: [name: test.t.a, collate: binary]", + " └─HashAgg_51 8000.00 mpp[tiflash] group by:Column#62, Column#63, funcs:sum(Column#58)->Column#48, funcs:count(Column#59)->Column#49, funcs:sum(Column#60)->Column#50, funcs:firstrow(Column#61)->Column#52", + " └─Projection_59 8000.00 mpp[tiflash] cast(Column#11, decimal(20,0) BINARY)->Column#58, test.t.c, cast(test.t.c, decimal(24,4) BINARY)->Column#60, test.t.d, date_format(test.t.d, %Y)->Column#62, test.t.a", + " └─Projection_38 8000.00 mpp[tiflash] Column#11, test.t.c, test.t.a, test.t.d", + " └─HashAgg_39 8000.00 mpp[tiflash] group by:Column#28, test.t.a, test.t.c, funcs:sum(Column#29)->Column#11, funcs:firstrow(test.t.c)->test.t.c, funcs:firstrow(test.t.a)->test.t.a, funcs:firstrow(Column#32)->test.t.d", + " └─ExchangeReceiver_41 8000.00 mpp[tiflash] ", + " └─ExchangeSender_40 8000.00 mpp[tiflash] ExchangeType: HashPartition, Hash Cols: [name: test.t.a, collate: binary], [name: test.t.c, collate: binary]", + " └─HashAgg_37 8000.00 mpp[tiflash] group by:Column#55, Column#56, Column#57, funcs:count(Column#53)->Column#29, funcs:firstrow(Column#54)->Column#32", + " └─Projection_58 10000.00 mpp[tiflash] test.t.b, test.t.d, date_format(test.t.d, %Y)->Column#55, test.t.a, test.t.c", + " └─TableFullScan_27 10000.00 mpp[tiflash] table:t keep order:false, stats:pseudo" + ], + "Warn": null + }, + { + "SQL": "EXPLAIN select d,e, min(b), count(distinct c), bit_or(a) from t group by e,d; -- bit agg func can't be pushed to TiFlash", + "Plan": [ + "Projection_4 8000.00 root test.t.d, test.t.e, Column#7, Column#8, Column#9", + "└─HashAgg_6 8000.00 root group by:test.t.d, test.t.e, funcs:min(test.t.b)->Column#7, funcs:count(distinct test.t.c)->Column#8, funcs:bit_or(test.t.a)->Column#9, funcs:firstrow(test.t.d)->test.t.d, funcs:firstrow(test.t.e)->test.t.e", + " └─TableReader_10 10000.00 root data:TableFullScan_9", + " └─TableFullScan_9 10000.00 cop[tiflash] table:t keep order:false, stats:pseudo" + ], + "Warn": [ + "Aggregation can not be pushed to tiflash because AggFunc `bit_or` is not supported now", + "Aggregation can not be pushed to tiflash because AggFunc `bit_or` is not supported now" + ] + }, + { + "SQL": "EXPLAIN select a, count(b), avg(distinct c), count(distinct c) from t group by a; -- multi distinct funcs, bail out", + "Plan": [ + "Projection_4 8000.00 root test.t.a, Column#7, Column#8, Column#9", + "└─HashAgg_6 8000.00 root group by:Column#14, funcs:count(Column#10)->Column#7, funcs:avg(distinct Column#11)->Column#8, funcs:count(distinct Column#12)->Column#9, funcs:firstrow(Column#13)->test.t.a", + " └─Projection_11 10000.00 root test.t.b, cast(test.t.c, decimal(24,4) BINARY)->Column#11, test.t.c, test.t.a, test.t.a", + " └─TableReader_10 10000.00 root data:TableFullScan_9", + " └─TableFullScan_9 10000.00 cop[tiflash] table:t keep order:false, stats:pseudo" + ], + "Warn": [ + "Aggregation can not be pushed to storage layer in mpp mode because it contains agg function with distinct", + "Aggregation can not be pushed to storage layer in mpp mode because it contains agg function with distinct" + ] + }, + { + "SQL": "EXPLAIN select count(b), count(distinct c) from t; -- single distinct func but no group key, bail out", + "Plan": [ + "TableReader_30 1.00 root data:ExchangeSender_29", + "└─ExchangeSender_29 1.00 mpp[tiflash] ExchangeType: PassThrough", + " └─Projection_25 1.00 mpp[tiflash] Column#7, Column#8", + " └─HashAgg_26 1.00 mpp[tiflash] funcs:sum(Column#10)->Column#7, funcs:count(distinct test.t.c)->Column#8", + " └─ExchangeReceiver_28 1.00 mpp[tiflash] ", + " └─ExchangeSender_27 1.00 mpp[tiflash] ExchangeType: PassThrough", + " └─HashAgg_24 1.00 mpp[tiflash] group by:test.t.c, funcs:count(test.t.b)->Column#10", + " └─TableFullScan_13 10000.00 mpp[tiflash] table:t keep order:false, stats:pseudo" + ], + "Warn": null + } + ] } ] diff --git a/planner/core/testdata/expression_rewriter_suite_in.json b/planner/core/testdata/expression_rewriter_suite_in.json index 979c45a28f396..c25acfe54fb26 100644 --- a/planner/core/testdata/expression_rewriter_suite_in.json +++ b/planner/core/testdata/expression_rewriter_suite_in.json @@ -7,5 +7,11 @@ "select t1.a from t1 group by t1.a having (a, count(1)) in (select a, b from t2)", "select t1.a from t1 group by t1.a having (a, count(1)) not in (select a, b from t2)" ] + }, + { + "name": "TestBitFuncsReturnType", + "cases": [ + "select bit_or(a * b) from t" + ] } ] diff --git a/planner/core/testdata/expression_rewriter_suite_out.json b/planner/core/testdata/expression_rewriter_suite_out.json index 590004835b9c3..3c850e434fc9b 100644 --- a/planner/core/testdata/expression_rewriter_suite_out.json +++ b/planner/core/testdata/expression_rewriter_suite_out.json @@ -65,5 +65,18 @@ ] } ] + }, + { + "Name": "TestBitFuncsReturnType", + "Cases": [ + { + "Plan": [ + "StreamAgg 1.00 root funcs:bit_or(Column#6)->Column#4", + "└─TableReader 1.00 root data:StreamAgg", + " └─StreamAgg 1.00 cop[tikv] funcs:bit_or(cast(mul(cast(test.t.a, double BINARY), cast(test.t.b, double BINARY)), bigint(20) BINARY))->Column#6", + " └─TableFullScan 1.00 cop[tikv] table:t keep order:false" + ] + } + ] } ] diff --git a/planner/core/testdata/integration_suite_in.json b/planner/core/testdata/integration_suite_in.json index dc2b7b07239e1..78ec1c3131ab8 100644 --- a/planner/core/testdata/integration_suite_in.json +++ b/planner/core/testdata/integration_suite_in.json @@ -285,7 +285,9 @@ "cases": [ // Query with WHERE or ON should have the same plan, i.e, the Apply has been decorrelated. "explain format = 'brief' select * from t where exists (select 1 from t t1 join t t2 where t1.a = t2.a and t1.a = t.a)", - "explain format = 'brief' select * from t where exists (select 1 from t t1 join t t2 on t1.a = t2.a and t1.a = t.a)" + "explain format = 'brief' select * from t where exists (select 1 from t t1 join t t2 on t1.a = t2.a and t1.a = t.a)", + "explain format = 'brief' select * from t where exists (select /*+ SEMI_JOIN_REWRITE() */ 1 from t t1 join t t2 where t1.a = t2.a and t1.a = t.a)", + "explain format = 'brief' select * from t where exists (select /*+ SEMI_JOIN_REWRITE() */ 1 from t t1 join t t2 on t1.a = t2.a and t1.a = t.a)" ] }, { @@ -402,7 +404,7 @@ // `left` has not been pushed to TiKV, but it has been pushed to TiFlash. // We expect a Selection will be added above IndexMerge. "select /*+ use_index_merge(t1) */ 1 from t1 where c1 = 'ab' or c2 = '10' and char_length(left(c1, 10)) = 10;", - + // c3 is part of idx_1, so it will be put in partial_path's IndexFilters instead of TableFilters. // But it still cannot be pushed to TiKV. This case cover code in DataSource.buildIndexMergeOrPath. "select /*+ use_index_merge(tt1) */ 1 from tt1 where c1 = 'de' or c2 = '10' and from_base64(to_base64(c3)) = '10';", @@ -413,7 +415,7 @@ // This case covert expression index. "select /*+ use_index_merge(tt3) */ 1 from tt3 where c1 < -10 or c2 < 10 and reverse(c3) = '2';", - + // If no hint, we cannot use index merge if filter cannot be pushed to any storage. "select 1 from t1 where c1 = 'de' or c2 = '10' and from_base64(to_base64(c1)) = 'ab';" ] @@ -494,6 +496,13 @@ "explain format = 'brief' select min(a) from t" ] }, + { + "name": "TestPushDownToTiFlashWithKeepOrderInFastMode", + "cases": [ + "explain format = 'brief' select max(a) from t", + "explain format = 'brief' select min(a) from t" + ] + }, { "name": "TestMPPJoin", "cases": [ @@ -509,6 +518,8 @@ "explain format = 'brief' select count(*) from fact_t right join d1_t on fact_t.d1_k = d1_t.d1_k and d1_t.value > 10 and fact_t.col1 > d1_t.value", "explain format = 'brief' select count(*) from fact_t where exists (select 1 from d1_t where d1_k = fact_t.d1_k)", "explain format = 'brief' select count(*) from fact_t where exists (select 1 from d1_t where d1_k = fact_t.d1_k and value > fact_t.col1)", + "explain format = 'brief' select count(*) from fact_t where exists (select /*+ SEMI_JOIN_REWRITE() */ 1 from d1_t where d1_k = fact_t.d1_k)", + "explain format = 'brief' select count(*) from fact_t where exists (select /*+ SEMI_JOIN_REWRITE() */ 1 from d1_t where d1_k = fact_t.d1_k and value > fact_t.col1)", "explain format = 'brief' select count(*) from fact_t where not exists (select 1 from d1_t where d1_k = fact_t.d1_k)", "explain format = 'brief' select count(*) from fact_t where not exists (select 1 from d1_t where d1_k = fact_t.d1_k and value > fact_t.col1)", "explain format = 'brief' select count(*) from fact_t join d1_t on fact_t.d1_k > d1_t.d1_k", @@ -765,6 +776,13 @@ "desc format = 'brief' SELECT FROM_UNIXTIME(name,'%Y-%m-%d') FROM t;" ] }, + { + "name": "TestPushDownSelectionForMPP", + "cases": [ + "desc format = 'brief' select /*+ hash_agg()*/ count(*) c, id from t group by id having id >c", + "desc format = 'brief' select * from t where id < 2" + ] + }, { "name": "TestMppUnionAll", "cases": [ @@ -957,7 +975,7 @@ "explain format = 'brief' select row_number() over w1 from t1 a join t1 b on a.c1 = b.c2 window w1 as (partition by a.c1);", // Selection. "explain format = 'brief' select row_number() over w1 from t1 where c1 < 100 window w1 as (partition by c1 order by c1);", - + // 2. Cannot use fine grained shuffle. // No window function, so disabled. "explain format = 'brief' select * from t1;", diff --git a/planner/core/testdata/integration_suite_out.json b/planner/core/testdata/integration_suite_out.json index aeff80fd103ea..169e84f602275 100644 --- a/planner/core/testdata/integration_suite_out.json +++ b/planner/core/testdata/integration_suite_out.json @@ -1535,6 +1535,34 @@ "└─TableReader(Probe) 10000.00 root data:TableFullScan", " └─TableFullScan 10000.00 cop[tikv] table:t keep order:false, stats:pseudo" ] + }, + { + "SQL": "explain format = 'brief' select * from t where exists (select /*+ SEMI_JOIN_REWRITE() */ 1 from t t1 join t t2 where t1.a = t2.a and t1.a = t.a)", + "Plan": [ + "HashJoin 10000.00 root inner join, equal:[eq(test.t.a, test.t.a)]", + "├─HashAgg(Build) 8000.00 root group by:test.t.a, funcs:firstrow(test.t.a)->test.t.a", + "│ └─HashJoin 12500.00 root inner join, equal:[eq(test.t.a, test.t.a)]", + "│ ├─TableReader(Build) 10000.00 root data:TableFullScan", + "│ │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", + "│ └─TableReader(Probe) 10000.00 root data:TableFullScan", + "│ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", + "└─TableReader(Probe) 10000.00 root data:TableFullScan", + " └─TableFullScan 10000.00 cop[tikv] table:t keep order:false, stats:pseudo" + ] + }, + { + "SQL": "explain format = 'brief' select * from t where exists (select /*+ SEMI_JOIN_REWRITE() */ 1 from t t1 join t t2 on t1.a = t2.a and t1.a = t.a)", + "Plan": [ + "HashJoin 10000.00 root inner join, equal:[eq(test.t.a, test.t.a)]", + "├─HashAgg(Build) 8000.00 root group by:test.t.a, funcs:firstrow(test.t.a)->test.t.a", + "│ └─HashJoin 12500.00 root inner join, equal:[eq(test.t.a, test.t.a)]", + "│ ├─TableReader(Build) 10000.00 root data:TableFullScan", + "│ │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", + "│ └─TableReader(Probe) 10000.00 root data:TableFullScan", + "│ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", + "└─TableReader(Probe) 10000.00 root data:TableFullScan", + " └─TableFullScan 10000.00 cop[tikv] table:t keep order:false, stats:pseudo" + ] } ] }, @@ -1782,7 +1810,7 @@ "SQL": "select a, b, c from t2 where a = 1 and b = 2 and c in (1, 2, 3, 4, 5)", "Plan": [ "Selection_6 0.01 8.60 root eq(test.t2.b, 2), in(test.t2.c, 1, 2, 3, 4, 5)", - "└─Point_Get_5 1.00 0.00 root table:t2, index:idx_a(a) " + "└─Point_Get_5 1.00 5.60 root table:t2, index:idx_a(a) " ], "Warnings": [ "Note 1105 unique index idx_a of t2 is selected since the path only has point ranges with double scan" @@ -1839,7 +1867,7 @@ "Plan": [ "Delete_4 N/A N/A root N/A", "└─Selection_7 2.00 9.80 root in(test.t1.g, 3, 4)", - " └─Point_Get_6 1.00 0.00 root table:t1, index:f(f) " + " └─Point_Get_6 1.00 6.80 root table:t1, index:f(f) " ], "Warnings": [ "Note 1105 unique index f of t1 is selected since the path only has point ranges with double scan" @@ -1875,9 +1903,9 @@ "SQL": "select * from t where a > 1 order by f", "Plan": [ "IndexLookUp_14 3333.33 136747.00 root ", - "├─Selection_13(Build) 3333.33 0.00 cop[tikv] gt(test.t.a, 1)", + "├─Selection_13(Build) 3333.33 585000.00 cop[tikv] gt(test.t.a, 1)", "│ └─IndexFullScan_11 10000.00 555000.00 cop[tikv] table:t, index:f(f) keep order:true, stats:pseudo", - "└─TableRowIDScan_12(Probe) 3333.33 555000.00 cop[tikv] table:t keep order:false, stats:pseudo" + "└─TableRowIDScan_12(Probe) 3333.33 370000.00 cop[tikv] table:t keep order:false, stats:pseudo" ], "Warnings": [ "Note 1105 [t,f,f_g] remain after pruning paths for t given Prop{SortItems: [{test.t.f asc}], TaskTp: rootTask}" @@ -1888,7 +1916,7 @@ "Plan": [ "IndexLookUp_10 3333.33 86674.83 root ", "├─IndexRangeScan_8(Build) 3333.33 185000.00 cop[tikv] table:t, index:f(f) range:(1,+inf], keep order:false, stats:pseudo", - "└─TableRowIDScan_9(Probe) 3333.33 185000.00 cop[tikv] table:t keep order:false, stats:pseudo" + "└─TableRowIDScan_9(Probe) 3333.33 370000.00 cop[tikv] table:t keep order:false, stats:pseudo" ], "Warnings": [ "Note 1105 [t,f,f_g] remain after pruning paths for t given Prop{SortItems: [], TaskTp: rootTask}" @@ -1909,8 +1937,8 @@ "Plan": [ "IndexLookUp_15 3.33 206.74 root ", "├─IndexRangeScan_12(Build) 10.00 570.00 cop[tikv] table:t, index:g(g) range:[5,5], keep order:false, stats:pseudo", - "└─Selection_14(Probe) 3.33 0.00 cop[tikv] gt(test.t.f, 3)", - " └─TableRowIDScan_13 10.00 570.00 cop[tikv] table:t keep order:false, stats:pseudo" + "└─Selection_14(Probe) 3.33 1140.00 cop[tikv] gt(test.t.f, 3)", + " └─TableRowIDScan_13 10.00 1110.00 cop[tikv] table:t keep order:false, stats:pseudo" ], "Warnings": [ "Note 1105 [t,f_g,g] remain after pruning paths for t given Prop{SortItems: [], TaskTp: rootTask}" @@ -1922,7 +1950,7 @@ "Sort_5 10.00 353.68 root test.t.f", "└─IndexLookUp_13 10.00 230.01 root ", " ├─IndexRangeScan_11(Build) 10.00 570.00 cop[tikv] table:t, index:g(g) range:[5,5], keep order:false, stats:pseudo", - " └─TableRowIDScan_12(Probe) 10.00 570.00 cop[tikv] table:t keep order:false, stats:pseudo" + " └─TableRowIDScan_12(Probe) 10.00 1110.00 cop[tikv] table:t keep order:false, stats:pseudo" ], "Warnings": [ "Note 1105 [t,g] remain after pruning paths for t given Prop{SortItems: [], TaskTp: rootTask}" @@ -1932,9 +1960,9 @@ "SQL": "select * from t where d = 3 order by c, e", "Plan": [ "IndexLookUp_15 10.00 57222.78 root ", - "├─Selection_14(Build) 10.00 0.00 cop[tikv] eq(test.t.d, 3)", + "├─Selection_14(Build) 10.00 855000.00 cop[tikv] eq(test.t.d, 3)", "│ └─IndexFullScan_12 10000.00 825000.00 cop[tikv] table:t, index:c_d_e(c, d, e) keep order:true, stats:pseudo", - "└─TableRowIDScan_13(Probe) 10.00 825000.00 cop[tikv] table:t keep order:false, stats:pseudo" + "└─TableRowIDScan_13(Probe) 10.00 1110.00 cop[tikv] table:t keep order:false, stats:pseudo" ], "Warnings": [ "Note 1105 [t,c_d_e] remain after pruning paths for t given Prop{SortItems: [{test.t.c asc} {test.t.e asc}], TaskTp: rootTask}" @@ -1991,7 +2019,7 @@ "Plan": [ "IndexLookUp_7 3.00 57.91 root ", "├─IndexRangeScan_5(Build) 3.00 171.00 cop[tikv] table:t, index:idx_b(b) range:(5,+inf], keep order:false", - "└─TableRowIDScan_6(Probe) 3.00 171.00 cop[tikv] table:t keep order:false" + "└─TableRowIDScan_6(Probe) 3.00 108.00 cop[tikv] table:t keep order:false" ], "Warnings": [ "Note 1105 [idx_b] remain after pruning paths for t given Prop{SortItems: [], TaskTp: rootTask}" @@ -2432,7 +2460,7 @@ "Plan": [ "TopN_7 1.00 13.22 root test.t3.a, offset:0, count:1", "└─TableReader_16 1.00 10.22 root data:TopN_15", - " └─TopN_15 1.00 0.00 cop[tikv] test.t3.a, offset:0, count:1", + " └─TopN_15 1.00 117.00 cop[tikv] test.t3.a, offset:0, count:1", " └─TableFullScan_14 3.00 108.00 cop[tikv] table:t3 keep order:false" ] }, @@ -2441,7 +2469,7 @@ "Plan": [ "TopN_7 1.00 13.22 root test.t3.b, offset:0, count:1", "└─TableReader_16 1.00 10.22 root data:TopN_15", - " └─TopN_15 1.00 0.00 cop[tikv] test.t3.b, offset:0, count:1", + " └─TopN_15 1.00 117.00 cop[tikv] test.t3.b, offset:0, count:1", " └─TableFullScan_14 3.00 108.00 cop[tikv] table:t3 keep order:false" ] }, @@ -2453,7 +2481,7 @@ " └─Projection_22 3.00 76.80 mpp[tiflash] Column#4", " └─HashAgg_8 3.00 57.00 mpp[tiflash] group by:test.t2.a, funcs:count(1)->Column#4", " └─ExchangeReceiver_21 3.00 48.00 mpp[tiflash] ", - " └─ExchangeSender_20 3.00 48.00 mpp[tiflash] ExchangeType: HashPartition, Hash Cols: [name: test.t2.a, collate: binary]", + " └─ExchangeSender_20 3.00 45.00 mpp[tiflash] ExchangeType: HashPartition, Hash Cols: [name: test.t2.a, collate: binary]", " └─TableFullScan_19 3.00 45.00 mpp[tiflash] table:t2 keep order:false" ] }, @@ -2503,7 +2531,7 @@ " └─ExchangeSender_45 3.00 195.38 mpp[tiflash] ExchangeType: PassThrough", " └─HashJoin_42 3.00 195.38 mpp[tiflash] inner join, equal:[eq(test.t1.a, test.t2.a)]", " ├─ExchangeReceiver_21(Build) 3.00 57.00 mpp[tiflash] ", - " │ └─ExchangeSender_20 3.00 57.00 mpp[tiflash] ExchangeType: Broadcast", + " │ └─ExchangeSender_20 3.00 54.00 mpp[tiflash] ExchangeType: Broadcast", " │ └─Selection_19 3.00 54.00 mpp[tiflash] not(isnull(test.t1.a))", " │ └─TableFullScan_18 3.00 45.00 mpp[tiflash] table:t1 keep order:false", " └─Selection_23(Probe) 3.00 54.00 mpp[tiflash] not(isnull(test.t2.a))", @@ -2521,7 +2549,7 @@ " └─ExchangeSender_38 3.00 204.38 mpp[tiflash] ExchangeType: PassThrough", " └─HashJoin_29 3.00 204.38 mpp[tiflash] inner join, equal:[eq(test.t1.a, test.t2.a)]", " ├─ExchangeReceiver_35(Build) 3.00 66.00 mpp[tiflash] ", - " │ └─ExchangeSender_34 3.00 66.00 mpp[tiflash] ExchangeType: Broadcast", + " │ └─ExchangeSender_34 3.00 63.00 mpp[tiflash] ExchangeType: Broadcast", " │ └─Selection_33 3.00 63.00 mpp[tiflash] not(isnull(test.t1.a)), not(isnull(test.t1.b))", " │ └─TableFullScan_32 3.00 54.00 mpp[tiflash] table:t1 keep order:false", " └─Selection_37(Probe) 3.00 54.00 mpp[tiflash] not(isnull(test.t2.a))", @@ -2533,10 +2561,10 @@ "Plan": [ "HashJoin_19 3.00 127.40 root CARTESIAN left outer semi join", "├─Selection_39(Build) 0.80 11.18 root eq(2, Column#18)", - "│ └─StreamAgg_60 1.00 8.18 root funcs:count(Column#32)->Column#18", - "│ └─TableReader_61 1.00 5.17 root data:StreamAgg_44", - "│ └─StreamAgg_44 1.00 49.50 batchCop[tiflash] funcs:count(1)->Column#32", - "│ └─TableFullScan_59 3.00 40.50 batchCop[tiflash] table:t1 keep order:false", + "│ └─StreamAgg_61 1.00 8.18 root funcs:count(Column#32)->Column#18", + "│ └─TableReader_62 1.00 5.17 root data:StreamAgg_45", + "│ └─StreamAgg_45 1.00 49.50 batchCop[tiflash] funcs:count(1)->Column#32", + "│ └─TableFullScan_60 3.00 40.50 batchCop[tiflash] table:t1 keep order:false", "└─Projection_20(Probe) 3.00 95.82 root 1->Column#28", " └─Apply_22 3.00 76.02 root CARTESIAN left outer join", " ├─TableReader_24(Build) 3.00 10.16 root data:TableFullScan_23", @@ -2832,6 +2860,31 @@ } ] }, + { + "Name": "TestPushDownToTiFlashWithKeepOrderInFastMode", + "Cases": [ + { + "SQL": "explain format = 'brief' select max(a) from t", + "Plan": [ + "StreamAgg 1.00 root funcs:max(test.t.a)->Column#3", + "└─TopN 1.00 root test.t.a:desc, offset:0, count:1", + " └─TableReader 1.00 root data:TopN", + " └─TopN 1.00 batchCop[tiflash] test.t.a:desc, offset:0, count:1", + " └─TableFullScan 10000.00 batchCop[tiflash] table:t keep order:false, stats:pseudo" + ] + }, + { + "SQL": "explain format = 'brief' select min(a) from t", + "Plan": [ + "StreamAgg 1.00 root funcs:min(test.t.a)->Column#3", + "└─TopN 1.00 root test.t.a, offset:0, count:1", + " └─TableReader 1.00 root data:TopN", + " └─TopN 1.00 batchCop[tiflash] test.t.a, offset:0, count:1", + " └─TableFullScan 10000.00 batchCop[tiflash] table:t keep order:false, stats:pseudo" + ] + } + ] + }, { "Name": "TestMPPJoin", "Cases": [ @@ -3019,6 +3072,40 @@ " └─TableFullScan 8.00 mpp[tiflash] table:fact_t keep order:false" ] }, + { + "SQL": "explain format = 'brief' select count(*) from fact_t where exists (select /*+ SEMI_JOIN_REWRITE() */ 1 from d1_t where d1_k = fact_t.d1_k)", + "Plan": [ + "StreamAgg 1.00 root funcs:count(1)->Column#12", + "└─TableReader 8.00 root data:ExchangeSender", + " └─ExchangeSender 8.00 mpp[tiflash] ExchangeType: PassThrough", + " └─HashJoin 8.00 mpp[tiflash] inner join, equal:[eq(test.fact_t.d1_k, test.d1_t.d1_k)]", + " ├─ExchangeReceiver(Build) 2.00 mpp[tiflash] ", + " │ └─ExchangeSender 2.00 mpp[tiflash] ExchangeType: Broadcast", + " │ └─Projection 2.00 mpp[tiflash] test.d1_t.d1_k", + " │ └─HashAgg 2.00 mpp[tiflash] group by:test.d1_t.d1_k, funcs:firstrow(test.d1_t.d1_k)->test.d1_t.d1_k", + " │ └─ExchangeReceiver 2.00 mpp[tiflash] ", + " │ └─ExchangeSender 2.00 mpp[tiflash] ExchangeType: HashPartition, Hash Cols: [name: test.d1_t.d1_k, collate: binary]", + " │ └─Selection 2.00 mpp[tiflash] not(isnull(test.d1_t.d1_k))", + " │ └─TableFullScan 2.00 mpp[tiflash] table:d1_t keep order:false", + " └─Selection(Probe) 8.00 mpp[tiflash] not(isnull(test.fact_t.d1_k))", + " └─TableFullScan 8.00 mpp[tiflash] table:fact_t keep order:false" + ] + }, + { + "SQL": "explain format = 'brief' select count(*) from fact_t where exists (select /*+ SEMI_JOIN_REWRITE() */ 1 from d1_t where d1_k = fact_t.d1_k and value > fact_t.col1)", + "Plan": [ + "StreamAgg 1.00 root funcs:count(1)->Column#12", + "└─TableReader 6.40 root data:ExchangeSender", + " └─ExchangeSender 6.40 mpp[tiflash] ExchangeType: PassThrough", + " └─HashJoin 6.40 mpp[tiflash] semi join, equal:[eq(test.fact_t.d1_k, test.d1_t.d1_k)], other cond:gt(test.d1_t.value, test.fact_t.col1)", + " ├─ExchangeReceiver(Build) 2.00 mpp[tiflash] ", + " │ └─ExchangeSender 2.00 mpp[tiflash] ExchangeType: Broadcast", + " │ └─Selection 2.00 mpp[tiflash] not(isnull(test.d1_t.d1_k)), not(isnull(test.d1_t.value))", + " │ └─TableFullScan 2.00 mpp[tiflash] table:d1_t keep order:false", + " └─Selection(Probe) 8.00 mpp[tiflash] not(isnull(test.fact_t.col1)), not(isnull(test.fact_t.d1_k))", + " └─TableFullScan 8.00 mpp[tiflash] table:fact_t keep order:false" + ] + }, { "SQL": "explain format = 'brief' select count(*) from fact_t where not exists (select 1 from d1_t where d1_k = fact_t.d1_k)", "Plan": [ @@ -5134,6 +5221,33 @@ } ] }, + { + "Name": "TestPushDownSelectionForMPP", + "Cases": [ + { + "SQL": "desc format = 'brief' select /*+ hash_agg()*/ count(*) c, id from t group by id having id >c", + "Plan": [ + "TableReader 6400.00 root data:ExchangeSender", + "└─ExchangeSender 6400.00 mpp[tiflash] ExchangeType: PassThrough", + " └─Selection 6400.00 mpp[tiflash] gt(test.t.id, Column#5)", + " └─Projection 8000.00 mpp[tiflash] Column#5, test.t.id", + " └─HashAgg 8000.00 mpp[tiflash] group by:test.t.id, funcs:count(1)->Column#5, funcs:firstrow(test.t.id)->test.t.id", + " └─ExchangeReceiver 10000.00 mpp[tiflash] ", + " └─ExchangeSender 10000.00 mpp[tiflash] ExchangeType: HashPartition, Hash Cols: [name: test.t.id, collate: binary]", + " └─TableFullScan 10000.00 mpp[tiflash] table:t keep order:false, stats:pseudo" + ] + }, + { + "SQL": "desc format = 'brief' select * from t where id < 2", + "Plan": [ + "TableReader 3323.33 root data:ExchangeSender", + "└─ExchangeSender 3323.33 mpp[tiflash] ExchangeType: PassThrough", + " └─Selection 3323.33 mpp[tiflash] lt(test.t.id, 2)", + " └─TableFullScan 10000.00 mpp[tiflash] table:t keep order:false, stats:pseudo" + ] + } + ] + }, { "Name": "TestMppUnionAll", "Cases": [ @@ -5518,11 +5632,11 @@ "SQL": "desc format = 'brief' select id from t group by id having avg(value)>0", "Plan": [ "Projection 6400.00 root test.t.id", - "└─Selection 6400.00 root gt(Column#4, 0)", - " └─TableReader 8000.00 root data:ExchangeSender", - " └─ExchangeSender 8000.00 mpp[tiflash] ExchangeType: PassThrough", - " └─Projection 8000.00 mpp[tiflash] div(Column#4, cast(case(eq(Column#9, 0), 1, Column#9), decimal(20,0) BINARY))->Column#4, test.t.id", - " └─HashAgg 8000.00 mpp[tiflash] group by:test.t.id, funcs:count(test.t.value)->Column#9, funcs:sum(test.t.value)->Column#4, funcs:firstrow(test.t.id)->test.t.id", + "└─TableReader 6400.00 root data:ExchangeSender", + " └─ExchangeSender 6400.00 mpp[tiflash] ExchangeType: PassThrough", + " └─Selection 6400.00 mpp[tiflash] gt(Column#4, 0)", + " └─Projection 8000.00 mpp[tiflash] div(Column#4, cast(case(eq(Column#17, 0), 1, Column#17), decimal(20,0) BINARY))->Column#4, test.t.id", + " └─HashAgg 8000.00 mpp[tiflash] group by:test.t.id, funcs:count(test.t.value)->Column#17, funcs:sum(test.t.value)->Column#4, funcs:firstrow(test.t.id)->test.t.id", " └─ExchangeReceiver 10000.00 mpp[tiflash] ", " └─ExchangeSender 10000.00 mpp[tiflash] ExchangeType: HashPartition, Hash Cols: [name: test.t.id, collate: binary]", " └─TableFullScan 10000.00 mpp[tiflash] table:t keep order:false, stats:pseudo" @@ -5531,11 +5645,11 @@ { "SQL": "desc format = 'brief' select avg(value),id from t group by id having avg(value)>0", "Plan": [ - "Selection 6400.00 root gt(Column#4, 0)", - "└─TableReader 8000.00 root data:ExchangeSender", - " └─ExchangeSender 8000.00 mpp[tiflash] ExchangeType: PassThrough", - " └─Projection 8000.00 mpp[tiflash] div(Column#4, cast(case(eq(Column#10, 0), 1, Column#10), decimal(20,0) BINARY))->Column#4, test.t.id", - " └─HashAgg 8000.00 mpp[tiflash] group by:test.t.id, funcs:count(test.t.value)->Column#10, funcs:sum(test.t.value)->Column#4, funcs:firstrow(test.t.id)->test.t.id", + "TableReader 6400.00 root data:ExchangeSender", + "└─ExchangeSender 6400.00 mpp[tiflash] ExchangeType: PassThrough", + " └─Selection 6400.00 mpp[tiflash] gt(Column#4, 0)", + " └─Projection 8000.00 mpp[tiflash] div(Column#4, cast(case(eq(Column#18, 0), 1, Column#18), decimal(20,0) BINARY))->Column#4, test.t.id", + " └─HashAgg 8000.00 mpp[tiflash] group by:test.t.id, funcs:count(test.t.value)->Column#18, funcs:sum(test.t.value)->Column#4, funcs:firstrow(test.t.id)->test.t.id", " └─ExchangeReceiver 10000.00 mpp[tiflash] ", " └─ExchangeSender 10000.00 mpp[tiflash] ExchangeType: HashPartition, Hash Cols: [name: test.t.id, collate: binary]", " └─TableFullScan 10000.00 mpp[tiflash] table:t keep order:false, stats:pseudo" @@ -5952,7 +6066,7 @@ " │ └─ExchangeSender 9990.00 mpp[tiflash] ExchangeType: Broadcast", " │ └─Selection 9990.00 mpp[tiflash] not(isnull(test.t.id))", " │ └─TableFullScan 10000.00 mpp[tiflash] table:t keep order:false, stats:pseudo", - " └─Selection(Probe) 9990.00 mpp[tiflash] not(isnull(test.t.id))", + " └─Selection(Probe) 0.80 mpp[tiflash] not(isnull(test.t.id))", " └─TableFullScan 0.80 mpp[tiflash] table:t1 keep order:false, stats:pseudo" ] }, @@ -5968,7 +6082,7 @@ " │ └─ExchangeSender 9990.00 mpp[tiflash] ExchangeType: Broadcast", " │ └─Selection 9990.00 mpp[tiflash] not(isnull(test.t.id))", " │ └─TableFullScan 10000.00 mpp[tiflash] table:t keep order:false, stats:pseudo", - " └─Selection(Probe) 9990.00 mpp[tiflash] not(isnull(test.t.id))", + " └─Selection(Probe) 0.80 mpp[tiflash] not(isnull(test.t.id))", " └─TableFullScan 0.80 mpp[tiflash] table:t1 keep order:false, stats:pseudo" ] }, @@ -5985,7 +6099,7 @@ " │ └─ExchangeSender 9990.00 mpp[tiflash] ExchangeType: Broadcast", " │ └─Selection 9990.00 mpp[tiflash] not(isnull(test.t.id))", " │ └─TableFullScan 10000.00 mpp[tiflash] table:t keep order:false, stats:pseudo", - " └─Selection(Probe) 9990.00 mpp[tiflash] not(isnull(test.t.id))", + " └─Selection(Probe) 16.00 mpp[tiflash] not(isnull(test.t.id))", " └─TableFullScan 16.02 mpp[tiflash] table:t1 keep order:false, stats:pseudo" ] } diff --git a/planner/core/testdata/join_reorder_suite_in.json b/planner/core/testdata/join_reorder_suite_in.json index 3145779cc69bf..5ef0edb64351b 100644 --- a/planner/core/testdata/join_reorder_suite_in.json +++ b/planner/core/testdata/join_reorder_suite_in.json @@ -121,7 +121,40 @@ "select /*+ straight_join() */ * from t, t1, t2 where t.a = t1.a and t1.b=t2.b;", "select /*+ straight_join() */ * from t, t1, t2, t3 where t.a = t1.a and t1.b=t2.b and t2.b=t3.b;", "select /*+ leading(t1) */ * from t, t1, t2, t3 where t.a = t1.a and t1.b=t2.b and t2.b=t3.b;", - "select /*+ leading(t1, t3) */ * from t, t1, t2, t3 where t.a = t1.a and t1.b=t2.b and t2.b=t3.b;" + "select /*+ leading(t1, t3) */ * from t, t1, t2, t3 where t.a = t1.a and t1.b=t2.b and t2.b=t3.b;", + + // outer join + // left join + "select /*+ leading(t1, t2) */ * from t4 join t on t4.a=t.a left join t1 on t.a = t1.a join t2 on t.b = t2.b join t3 on t2.b=t3.b;", + "select /*+ leading(t2, t3) */ * from t4 join t on t4.a=t.a left join t1 on t.a = t1.a join t2 on t.b = t2.b join t3 on t2.b=t3.b;", + "select /*+ leading(t4, t3, t2, t, t1) */ * from t4 join t on t4.a=t.a left join t1 on t.a = t1.a join t2 on t.b = t2.b join t3 on t2.b=t3.b;", + "select /*+ leading(t4, t3, t2, t) */ * from t4 join t on t4.a=t.a left join t1 on t.a = t1.a join t2 on t.b = t2.b join t3 on t2.b=t3.b;", + "select /*+ leading(t3, t2, t) */ * from t4 join t on t4.a=t.a left join t1 on t.a = t1.a join t2 on t.b = t2.b join t3 on t2.b=t3.b;", + + "select /*+ leading(t3) */ * from t2 left join (t1 left join t3 on t1.a=t3.a) on t2.b=t1.b;", + "select /*+ leading(t2, t1, t3) */ * from t2 left join (t1 left join t3 on t1.a=t3.a) on t2.b=t1.b;", + + "select /*+ leading(t2, t3) */ * from t2 left join (t1 join t3 on t1.a=t3.a join t4 on t3.b = t4.b) on t2.b=t1.b;", + "select /*+ leading(t3, t4) */ * from t2 left join (t1 join t3 on t1.a=t3.a join t4 on t3.b = t4.b) on t2.b=t1.b;", + + "select /*+ leading(t3, t4) */ * from t2 left join (t1 join t3 on t1.a=t3.a join t4 on t3.b = t4.b) on t2.b=t1.b join t5 on t2.a = t5.a join t6 on t5.b=t6.b;", + "select /*+ leading(t3, t4) leading(t5, t6) */ * from t2 left join (t1 join t3 on t1.a=t3.a join t4 on t3.b = t4.b) on t2.b=t1.b join t5 on t2.a = t5.a join t6 on t5.b=t6.b;", // should support this case later + "select /*+ leading(t5, t6, t3, t4) */ * from t2 left join (t1 join t3 on t1.a=t3.a join t4 on t3.b = t4.b) on t2.b=t1.b join t5 on t2.a = t5.a join t6 on t5.b=t6.b;", + + // right join + "select /*+ leading(t1, t2) */ * from t4 join t on t4.a=t.a right join t1 on t.a = t1.a join t2 on t1.b = t2.b join t3 on t2.b=t3.b;", + "select /*+ leading(t2, t3) */ * from t4 join t on t4.a=t.a right join t1 on t.a = t1.a join t2 on t1.b = t2.b join t3 on t2.b=t3.b;", + "select /*+ leading(t1, t3) */ * from t4 join t on t4.a=t.a right join t1 on t.a = t1.a join t2 on t1.b = t2.b join t3 on t2.b=t3.b;", + + "select /*+ leading(t3) */ * from t2 right join (t1 left join t3 on t1.a=t3.a) on t2.b=t1.b;", + "select /*+ leading(t2, t1, t3) */ * from t2 right join (t1 left join t3 on t1.a=t3.a) on t2.b=t1.b;", + + "select /*+ leading(t2, t3) */ * from t2 right join (t1 join t3 on t1.a=t3.a join t4 on t3.b = t4.b) on t2.b=t1.b;", + "select /*+ leading(t3, t4) */ * from t2 right join (t1 join t3 on t1.a=t3.a join t4 on t3.b = t4.b) on t2.b=t1.b;", + + "select /*+ leading(t3, t4) */ * from t2 right join (t1 join t3 on t1.a=t3.a join t4 on t3.b = t4.b) on t2.b=t1.b join t5 on t2.a = t5.a join t6 on t5.b=t6.b;", + "select /*+ leading(t3, t4) leading(t5, t6) */ * from t2 right join (t1 join t3 on t1.a=t3.a join t4 on t3.b = t4.b) on t2.b=t1.b join t5 on t2.a = t5.a join t6 on t5.b=t6.b;", + "select /*+ leading(t3, t4, t5, t6) */ * from t2 right join (t1 join t3 on t1.a=t3.a join t4 on t3.b = t4.b) on t2.b=t1.b join t5 on t2.a = t5.a join t6 on t5.b=t6.b;" ] }, { @@ -130,7 +163,40 @@ "select /*+ straight_join() */ * from t, t1, t2 where t.a = t1.a and t1.b=t2.b;", "select /*+ straight_join() */ * from t, t1, t2, t3 where t.a = t1.a and t1.b=t2.b and t2.b=t3.b;", "select /*+ leading(t1) */ * from t, t1, t2, t3 where t.a = t1.a and t1.b=t2.b and t2.b=t3.b;", - "select /*+ leading(t1, t3) */ * from t, t1, t2, t3 where t.a = t1.a and t1.b=t2.b and t2.b=t3.b;" + "select /*+ leading(t1, t3) */ * from t, t1, t2, t3 where t.a = t1.a and t1.b=t2.b and t2.b=t3.b;", + + // outer join + // left join + "select /*+ leading(t1, t2) */ * from t4 join t on t4.a=t.a left join t1 on t.a = t1.a join t2 on t.b = t2.b join t3 on t2.b=t3.b;", + "select /*+ leading(t2, t3) */ * from t4 join t on t4.a=t.a left join t1 on t.a = t1.a join t2 on t.b = t2.b join t3 on t2.b=t3.b;", + "select /*+ leading(t4, t3, t2, t, t1) */ * from t4 join t on t4.a=t.a left join t1 on t.a = t1.a join t2 on t.b = t2.b join t3 on t2.b=t3.b;", + "select /*+ leading(t4, t3, t2, t) */ * from t4 join t on t4.a=t.a left join t1 on t.a = t1.a join t2 on t.b = t2.b join t3 on t2.b=t3.b;", + "select /*+ leading(t3, t2, t) */ * from t4 join t on t4.a=t.a left join t1 on t.a = t1.a join t2 on t.b = t2.b join t3 on t2.b=t3.b;", + + "select /*+ leading(t3) */ * from t2 left join (t1 left join t3 on t1.a=t3.a) on t2.b=t1.b;", + "select /*+ leading(t2, t1, t3) */ * from t2 left join (t1 left join t3 on t1.a=t3.a) on t2.b=t1.b;", + + "select /*+ leading(t2, t3) */ * from t2 left join (t1 join t3 on t1.a=t3.a join t4 on t3.b = t4.b) on t2.b=t1.b;", + "select /*+ leading(t3, t4) */ * from t2 left join (t1 join t3 on t1.a=t3.a join t4 on t3.b = t4.b) on t2.b=t1.b;", + + "select /*+ leading(t3, t4) */ * from t2 left join (t1 join t3 on t1.a=t3.a join t4 on t3.b = t4.b) on t2.b=t1.b join t5 on t2.a = t5.a join t6 on t5.b=t6.b;", + "select /*+ leading(t3, t4) leading(t5, t6) */ * from t2 left join (t1 join t3 on t1.a=t3.a join t4 on t3.b = t4.b) on t2.b=t1.b join t5 on t2.a = t5.a join t6 on t5.b=t6.b;", // should support this case ;ater + "select /*+ leading(t5, t6, t3, t4) */ * from t2 left join (t1 join t3 on t1.a=t3.a join t4 on t3.b = t4.b) on t2.b=t1.b join t5 on t2.a = t5.a join t6 on t5.b=t6.b;", + + // right join + "select /*+ leading(t1, t2) */ * from t4 join t on t4.a=t.a right join t1 on t.a = t1.a join t2 on t1.b = t2.b join t3 on t2.b=t3.b;", + "select /*+ leading(t2, t3) */ * from t4 join t on t4.a=t.a right join t1 on t.a = t1.a join t2 on t1.b = t2.b join t3 on t2.b=t3.b;", + "select /*+ leading(t1, t3) */ * from t4 join t on t4.a=t.a right join t1 on t.a = t1.a join t2 on t1.b = t2.b join t3 on t2.b=t3.b;", + + "select /*+ leading(t3) */ * from t2 right join (t1 left join t3 on t1.a=t3.a) on t2.b=t1.b;", + "select /*+ leading(t2, t1, t3) */ * from t2 right join (t1 left join t3 on t1.a=t3.a) on t2.b=t1.b;", + + "select /*+ leading(t2, t3) */ * from t2 right join (t1 join t3 on t1.a=t3.a join t4 on t3.b = t4.b) on t2.b=t1.b;", + "select /*+ leading(t3, t4) */ * from t2 right join (t1 join t3 on t1.a=t3.a join t4 on t3.b = t4.b) on t2.b=t1.b;", + + "select /*+ leading(t3, t4) */ * from t2 right join (t1 join t3 on t1.a=t3.a join t4 on t3.b = t4.b) on t2.b=t1.b join t5 on t2.a = t5.a join t6 on t5.b=t6.b;", + "select /*+ leading(t3, t4) leading(t5, t6) */ * from t2 right join (t1 join t3 on t1.a=t3.a join t4 on t3.b = t4.b) on t2.b=t1.b join t5 on t2.a = t5.a join t6 on t5.b=t6.b;", + "select /*+ leading(t3, t4, t5, t6) */ * from t2 right join (t1 join t3 on t1.a=t3.a join t4 on t3.b = t4.b) on t2.b=t1.b join t5 on t2.a = t5.a join t6 on t5.b=t6.b;" ] }, { @@ -175,7 +241,16 @@ "select /*+ leading(t3) */ * from t1 join t2 on t1.a=t2.a cross join t3", "select /*+ leading(t2, t3) */ * from t1 join t2 on t1.a=t2.a cross join t3", "select /*+ leading(t3, t2) */ * from t1 join t2 on t1.a=t2.a cross join t3", - "select /*+ leading(t3, t1) */ * from t1 join t2 on t1.a=t2.a cross join t3" + "select /*+ leading(t3, t1) */ * from t1 join t2 on t1.a=t2.a cross join t3", + + // outer join + outer join types + "select /*+ leading(t2, t1) */ * from t1 left join t2 on t1.a=t2.a cross join t3", + "select /*+ leading(t2, t1) */ * from t1 right join t2 on t1.a=t2.a cross join t3", + "select /*+ leading(t3, t1) */ * from t1 right join t2 on t1.a=t2.a right join t3 on t2.b=t3.b", + "select /*+ leading(t1) */ * from t1 left join t2 on t1.a=t2.a straight_join t3", + "select /*+ leading(t1) */ * from t1 right join t2 on t1.a=t2.a straight_join t3", + "select /*+ leading(t1) */ * from t1 left join t2 on t1.a=t2.a cross join t3", + "select /*+ leading(t1) */ * from t1 right join t2 on t1.a=t2.a cross join t3" ] }, { @@ -186,7 +261,40 @@ "select /*+ leading(t3) */ * from t1 join t2 on t1.a=t2.a join t3 on t2.b=t3.b", "select /*+ leading(t2, t3) */ * from t1 join t2 on t1.a=t2.a join t3 on t2.b=t3.b", "select /*+ leading(t3, t2) */ * from t1 join t2 on t1.a=t2.a join t3 on t2.b=t3.b", - "select /*+ leading(t3, t1) */ * from t1 join t2 on t1.a=t2.a join t3 on t2.b=t3.b" + "select /*+ leading(t3, t1) */ * from t1 join t2 on t1.a=t2.a join t3 on t2.b=t3.b", + + // outer join + // left join + "select /*+ leading(t1, t2) */ * from t4 join t on t4.a=t.a left join t1 on t.a = t1.a join t2 on t.b = t2.b join t3 on t2.b=t3.b;", + "select /*+ leading(t2, t3) */ * from t4 join t on t4.a=t.a left join t1 on t.a = t1.a join t2 on t.b = t2.b join t3 on t2.b=t3.b;", + "select /*+ leading(t4, t3, t2, t, t1) */ * from t4 join t on t4.a=t.a left join t1 on t.a = t1.a join t2 on t.b = t2.b join t3 on t2.b=t3.b;", + "select /*+ leading(t4, t3, t2, t) */ * from t4 join t on t4.a=t.a left join t1 on t.a = t1.a join t2 on t.b = t2.b join t3 on t2.b=t3.b;", + "select /*+ leading(t3, t2, t) */ * from t4 join t on t4.a=t.a left join t1 on t.a = t1.a join t2 on t.b = t2.b join t3 on t2.b=t3.b;", + + "select /*+ leading(t3) */ * from t2 left join (t1 left join t3 on t1.a=t3.a) on t2.b=t1.b;", + "select /*+ leading(t2, t1, t3) */ * from t2 left join (t1 left join t3 on t1.a=t3.a) on t2.b=t1.b;", + + "select /*+ leading(t2, t3) */ * from t2 left join (t1 join t3 on t1.a=t3.a join t4 on t3.b = t4.b) on t2.b=t1.b;", + "select /*+ leading(t3, t4) */ * from t2 left join (t1 join t3 on t1.a=t3.a join t4 on t3.b = t4.b) on t2.b=t1.b;", + + "select /*+ leading(t3, t4) */ * from t2 left join (t1 join t3 on t1.a=t3.a join t4 on t3.b = t4.b) on t2.b=t1.b join t5 on t2.a = t5.a join t6 on t5.b=t6.b;", + "select /*+ leading(t3, t4) leading(t5, t6) */ * from t2 left join (t1 join t3 on t1.a=t3.a join t4 on t3.b = t4.b) on t2.b=t1.b join t5 on t2.a = t5.a join t6 on t5.b=t6.b;", // should support this case ;ater + "select /*+ leading(t5, t6, t3, t4) */ * from t2 left join (t1 join t3 on t1.a=t3.a join t4 on t3.b = t4.b) on t2.b=t1.b join t5 on t2.a = t5.a join t6 on t5.b=t6.b;", + + // right join + "select /*+ leading(t1, t2) */ * from t4 join t on t4.a=t.a right join t1 on t.a = t1.a join t2 on t1.b = t2.b join t3 on t2.b=t3.b;", + "select /*+ leading(t2, t3) */ * from t4 join t on t4.a=t.a right join t1 on t.a = t1.a join t2 on t1.b = t2.b join t3 on t2.b=t3.b;", + "select /*+ leading(t1, t3) */ * from t4 join t on t4.a=t.a right join t1 on t.a = t1.a join t2 on t1.b = t2.b join t3 on t2.b=t3.b;", + + "select /*+ leading(t3) */ * from t2 right join (t1 left join t3 on t1.a=t3.a) on t2.b=t1.b;", + "select /*+ leading(t2, t1, t3) */ * from t2 right join (t1 left join t3 on t1.a=t3.a) on t2.b=t1.b;", + + "select /*+ leading(t2, t3) */ * from t2 right join (t1 join t3 on t1.a=t3.a join t4 on t3.b = t4.b) on t2.b=t1.b;", + "select /*+ leading(t3, t4) */ * from t2 right join (t1 join t3 on t1.a=t3.a join t4 on t3.b = t4.b) on t2.b=t1.b;", + + "select /*+ leading(t3, t4) */ * from t2 right join (t1 join t3 on t1.a=t3.a join t4 on t3.b = t4.b) on t2.b=t1.b join t5 on t2.a = t5.a join t6 on t5.b=t6.b;", + "select /*+ leading(t3, t4) leading(t5, t6) */ * from t2 right join (t1 join t3 on t1.a=t3.a join t4 on t3.b = t4.b) on t2.b=t1.b join t5 on t2.a = t5.a join t6 on t5.b=t6.b;", + "select /*+ leading(t3, t4, t5, t6) */ * from t2 right join (t1 join t3 on t1.a=t3.a join t4 on t3.b = t4.b) on t2.b=t1.b join t5 on t2.a = t5.a join t6 on t5.b=t6.b;" ] }, { @@ -302,62 +410,117 @@ { "name": "TestLeadingJoinHint4OuterJoin", "cases": [ - "select /*+ leading(t3, t2) */ * from t2 left join t1 on t2.a=t1.a left join t3 on t1.b=t3.b;", - "select /*+ leading(t3, t1) */ * from t2 left join t1 on t2.a=t1.a left join t3 on t1.b=t3.b;", - "select /*+ leading(t1, t2) */ * from t2 left join t1 on t2.a=t1.a left join t3 on t1.b=t3.b;", - "select /*+ leading(t3) */ * from t2 left join t1 on t2.a=t1.a left join t3 on t1.b=t3.b;", - "select /*+ leading(t2) */ * from t2 left join t1 on t2.a=t1.a left join t3 on t1.b=t3.b;", - "select /*+ leading(t1) */ * from t2 left join t1 on t2.a=t1.a left join t3 on t1.b=t3.b;", - "select /*+ leading(t3, t2, t1) */ * from t2 left join t1 on t2.a=t1.a left join t3 on t1.b=t3.b;", - "select /*+ leading(t1, t2, t3) */ * from t2 left join t1 on t2.a=t1.a left join t3 on t1.b=t3.b;", - "select /*+ leading(t3, t1, t2) */ * from t2 left join t1 on t2.a=t1.a left join t3 on t1.b=t3.b;", - "select /*+ leading(t2) */ * from t2 left join (t1 left join t3 on t1.a=t3.a) on t2.a=1;", - "select /*+ leading(t1) */ * from t2 left join (t1 left join t3 on t1.a=t3.a) on t2.a=1;", - "select /*+ leading(t3) */ * from t2 left join (t1 left join t3 on t1.a=t3.a) on t2.a=1;", - "select /*+ leading(t2, t1) */ * from t2 left join (t1 left join t3 on t1.a=t3.a) on t2.a=1;", - "select /*+ leading(t2, t3) */ * from t2 left join (t1 left join t3 on t1.a=t3.a) on t2.a=1;", - "select /*+ leading(t3, t1) */ * from t2 left join (t1 left join t3 on t1.a=t3.a) on t2.a=1;", - "select /*+ leading(t2, t1, t3) */ * from t2 left join (t1 left join t3 on t1.a=t3.a) on t2.a=1;", - "select /*+ leading(t1, t3, t2) */ * from t2 left join (t1 left join t3 on t1.a=t3.a) on t2.a=1;", - "select /*+ leading(t2, t3, t1) */ * from t2 left join (t1 left join t3 on t1.a=t3.a) on t2.a=1;", - "select /*+ leading(t1) */ * from t2 left join (t1 left join t3 on t1.a=t3.a) on t2.a=t3.a;", - "select /*+ leading(t2) */ * from t2 left join (t1 left join t3 on t1.a=t3.a) on t2.a=t3.a;", - "select /*+ leading(t3) */ * from t2 left join (t1 left join t3 on t1.a=t3.a) on t2.a=t3.a;", - "select /*+ leading(t1, t2) */ * from t2 left join (t1 left join t3 on t1.a=t3.a) on t2.a=t3.a;", - "select /*+ leading(t3, t2) */ * from t2 left join (t1 left join t3 on t1.a=t3.a) on t2.a=t3.a;", - "select /*+ leading(t1, t3) */ * from t2 left join (t1 left join t3 on t1.a=t3.a) on t2.a=t3.a;", - "select /*+ leading(t1, t2, t3) */ * from t2 left join (t1 left join t3 on t1.a=t3.a) on t2.a=t3.a;", - "select /*+ leading(t3, t1, t2) */ * from t2 left join (t1 left join t3 on t1.a=t3.a) on t2.a=t3.a;", - "select /*+ leading(t1) */ * from (t1 left join t2 on t1.a=t2.a) left join (t3 left join t4 on t3.a=t4.a) on t2.a=t4.a;", - "select /*+ leading(t2) */ * from (t1 left join t2 on t1.a=t2.a) left join (t3 left join t4 on t3.a=t4.a) on t2.a=t4.a;", - "select /*+ leading(t3) */ * from (t1 left join t2 on t1.a=t2.a) left join (t3 left join t4 on t3.a=t4.a) on t2.a=t4.a;", - "select /*+ leading(t4) */ * from (t1 left join t2 on t1.a=t2.a) left join (t3 left join t4 on t3.a=t4.a) on t2.a=t4.a;", - "select /*+ leading(t1, t2) */ * from (t1 left join t2 on t1.a=t2.a) left join (t3 left join t4 on t3.a=t4.a) on t2.a=t4.a;", - "select /*+ leading(t1, t3) */ * from (t1 left join t2 on t1.a=t2.a) left join (t3 left join t4 on t3.a=t4.a) on t2.a=t4.a;", - "select /*+ leading(t4, t1) */ * from (t1 left join t2 on t1.a=t2.a) left join (t3 left join t4 on t3.a=t4.a) on t2.a=t4.a;", - "select /*+ leading(t4, t2) */ * from (t1 left join t2 on t1.a=t2.a) left join (t3 left join t4 on t3.a=t4.a) on t2.a=t4.a;", - "select /*+ leading(t3, t2) */ * from (t1 left join t2 on t1.a=t2.a) left join (t3 left join t4 on t3.a=t4.a) on t2.a=t4.a;", - "select /*+ leading(t3, t4) */ * from (t1 left join t2 on t1.a=t2.a) left join (t3 left join t4 on t3.a=t4.a) on t2.a=t4.a;", - "select /*+ leading(t1, t2, t3) */ * from (t1 left join t2 on t1.a=t2.a) left join (t3 left join t4 on t3.a=t4.a) on t2.a=t4.a;", - "select /*+ leading(t1, t4, t3) */ * from (t1 left join t2 on t1.a=t2.a) left join (t3 left join t4 on t3.a=t4.a) on t2.a=t4.a;", - "select /*+ leading(t4, t2, t3) */ * from (t1 left join t2 on t1.a=t2.a) left join (t3 left join t4 on t3.a=t4.a) on t2.a=t4.a;", - "select /*+ leading(t1, t2, t3, t4) */ * from (t1 left join t2 on t1.a=t2.a) left join (t3 left join t4 on t3.a=t4.a) on t2.a=t4.a;", - "select /*+ leading(t1) */ * from ((select t8.a, t8.b from t8, t7, t6, t5 where t5.a = t6.a and t6.b=t7.b) t3 left join t4 on t3.a=t4.a) left join (t1 left join t2 on t1.a=t2.a) on t1.a=t4.a;", - "select /*+ leading(t2) */ * from ((select t8.a, t8.b from t8, t7, t6, t5 where t5.a = t6.a and t6.b=t7.b) t3 left join t4 on t3.a=t4.a) left join (t1 left join t2 on t1.a=t2.a) on t1.a=t4.a;", - "select /*+ leading(t3) */ * from ((select t8.a, t8.b from t8, t7, t6, t5 where t5.a = t6.a and t6.b=t7.b) t3 left join t4 on t3.a=t4.a) left join (t1 left join t2 on t1.a=t2.a) on t1.a=t4.a;", - "select /*+ leading(t4) */ * from ((select t8.a, t8.b from t8, t7, t6, t5 where t5.a = t6.a and t6.b=t7.b) t3 left join t4 on t3.a=t4.a) left join (t1 left join t2 on t1.a=t2.a) on t1.a=t4.a;", - "select /*+ leading(t2, t1) */ * from ((select t8.a, t8.b from t8, t7, t6, t5 where t5.a = t6.a and t6.b=t7.b) t3 left join t4 on t3.a=t4.a) left join (t1 left join t2 on t1.a=t2.a) on t1.a=t4.a;", - "select /*+ leading(t2, t3) */ * from ((select t8.a, t8.b from t8, t7, t6, t5 where t5.a = t6.a and t6.b=t7.b) t3 left join t4 on t3.a=t4.a) left join (t1 left join t2 on t1.a=t2.a) on t1.a=t4.a;", - "select /*+ leading(t4, t1) */ * from ((select t8.a, t8.b from t8, t7, t6, t5 where t5.a = t6.a and t6.b=t7.b) t3 left join t4 on t3.a=t4.a) left join (t1 left join t2 on t1.a=t2.a) on t1.a=t4.a;", - "select /*+ leading(t3, t1) */ * from ((select t8.a, t8.b from t8, t7, t6, t5 where t5.a = t6.a and t6.b=t7.b) t3 left join t4 on t3.a=t4.a) left join (t1 left join t2 on t1.a=t2.a) on t1.a=t4.a;", - "select * from ((select /*+ leading(t5) */ t8.a, t8.b from t8, t7, t6, t5 where t5.a = t6.a and t6.b=t7.b) t3 left join t4 on t3.a=t4.a) left join (t1 left join t2 on t1.a=t2.a) on t1.a=t4.a;", - "select * from ((select /*+ leading(t6) */ t8.a, t8.b from t8, t7, t6, t5 where t5.a = t6.a and t6.b=t7.b) t3 left join t4 on t3.a=t4.a) left join (t1 left join t2 on t1.a=t2.a) on t1.a=t4.a;", - "select * from ((select /*+ leading(t5, t7) */ t8.a, t8.b from t8, t7, t6, t5 where t5.a = t6.a and t6.b=t7.b) t3 left join t4 on t3.a=t4.a) left join (t1 left join t2 on t1.a=t2.a) on t1.a=t4.a;", - "select * from ((select /*+ leading(t6, t8, t7) */ t8.a, t8.b from t8, t7, t6, t5 where t5.a = t6.a and t6.b=t7.b) t3 left join t4 on t3.a=t4.a) left join (t1 left join t2 on t1.a=t2.a) on t1.a=t4.a;", - "select /*+ leading(t3) */ * from ((select /*+ leading(t5) */ t8.a, t8.b from t8, t7, t6, t5 where t5.a = t6.a and t6.b=t7.b) t3 left join t4 on t3.a=t4.a) left join (t1 left join t2 on t1.a=t2.a) on t1.a=t4.a;", - "select /*+ leading(t3, t1) */ * from ((select /*+ leading(t7) */ t8.a, t8.b from t8, t7, t6, t5 where t5.a = t6.a and t6.b=t7.b) t3 left join t4 on t3.a=t4.a) left join (t1 left join t2 on t1.a=t2.a) on t1.a=t4.a;", - "select /*+ leading(t3, t1, t2) */ * from ((select /*+ leading(t6, t7) */ t8.a, t8.b from t8, t7, t6, t5 where t5.a = t6.a and t6.b=t7.b) t3 left join t4 on t3.a=t4.a) left join (t1 left join t2 on t1.a=t2.a) on t1.a=t4.a;", - "select /*+ leading(t3, t4) */ * from ((select /*+ leading(t5, t7, t8) */ t8.a, t8.b from t8, t7, t6, t5 where t5.a = t6.a and t6.b=t7.b) t3 left join t4 on t3.a=t4.a) left join (t1 left join t2 on t1.a=t2.a) on t1.a=t4.a;" + // left join + // left join + "select /*+ leading(t1, t2) */ * from t4 join t on t4.a=t.a left join t1 on t.a = t1.a join t2 on t.b = t2.b join t3 on t2.b=t3.b;", + "select /*+ leading(t2, t3) */ * from t4 join t on t4.a=t.a left join t1 on t.a = t1.a join t2 on t.b = t2.b join t3 on t2.b=t3.b;", + "select /*+ leading(t4, t3, t2, t, t1) */ * from t4 join t on t4.a=t.a left join t1 on t.a = t1.a join t2 on t.b = t2.b join t3 on t2.b=t3.b;", + "select /*+ leading(t4, t3, t2, t) */ * from t4 join t on t4.a=t.a left join t1 on t.a = t1.a join t2 on t.b = t2.b join t3 on t2.b=t3.b;", + "select /*+ leading(t3, t2, t) */ * from t4 join t on t4.a=t.a left join t1 on t.a = t1.a join t2 on t.b = t2.b join t3 on t2.b=t3.b;", + + "select /*+ leading(t3) */ * from t2 left join (t1 left join t3 on t1.a=t3.a) on t2.b=t1.b;", + "select /*+ leading(t2, t1, t3) */ * from t2 left join (t1 left join t3 on t1.a=t3.a) on t2.b=t1.b;", + + "select /*+ leading(t2, t3) */ * from t2 left join (t1 join t3 on t1.a=t3.a join t4 on t3.b = t4.b) on t2.b=t1.b;", + "select /*+ leading(t3, t4) */ * from t2 left join (t1 join t3 on t1.a=t3.a join t4 on t3.b = t4.b) on t2.b=t1.b;", + + "select /*+ leading(t3, t4) */ * from t2 left join (t1 join t3 on t1.a=t3.a join t4 on t3.b = t4.b) on t2.b=t1.b join t5 on t2.a = t5.a join t6 on t5.b=t6.b;", + "select /*+ leading(t3, t4) leading(t5, t6) */ * from t2 left join (t1 join t3 on t1.a=t3.a join t4 on t3.b = t4.b) on t2.b=t1.b join t5 on t2.a = t5.a join t6 on t5.b=t6.b;", // should support this case ;ater + "select /*+ leading(t5, t6, t3, t4) */ * from t2 left join (t1 join t3 on t1.a=t3.a join t4 on t3.b = t4.b) on t2.b=t1.b join t5 on t2.a = t5.a join t6 on t5.b=t6.b;", + + // right join + "select /*+ leading(t1, t2) */ * from t4 join t on t4.a=t.a right join t1 on t.a = t1.a join t2 on t1.b = t2.b join t3 on t2.b=t3.b;", + "select /*+ leading(t2, t3) */ * from t4 join t on t4.a=t.a right join t1 on t.a = t1.a join t2 on t1.b = t2.b join t3 on t2.b=t3.b;", + "select /*+ leading(t1, t3) */ * from t4 join t on t4.a=t.a right join t1 on t.a = t1.a join t2 on t1.b = t2.b join t3 on t2.b=t3.b;", + + "select /*+ leading(t3) */ * from t2 right join (t1 left join t3 on t1.a=t3.a) on t2.b=t1.b;", + "select /*+ leading(t2, t1, t3) */ * from t2 right join (t1 left join t3 on t1.a=t3.a) on t2.b=t1.b;", + + "select /*+ leading(t2, t3) */ * from t2 right join (t1 join t3 on t1.a=t3.a join t4 on t3.b = t4.b) on t2.b=t1.b;", + "select /*+ leading(t3, t4) */ * from t2 right join (t1 join t3 on t1.a=t3.a join t4 on t3.b = t4.b) on t2.b=t1.b;", + + "select /*+ leading(t3, t4) */ * from t2 right join (t1 join t3 on t1.a=t3.a join t4 on t3.b = t4.b) on t2.b=t1.b join t5 on t2.a = t5.a join t6 on t5.b=t6.b;", + "select /*+ leading(t3, t4) leading(t5, t6) */ * from t2 right join (t1 join t3 on t1.a=t3.a join t4 on t3.b = t4.b) on t2.b=t1.b join t5 on t2.a = t5.a join t6 on t5.b=t6.b;", + "select /*+ leading(t3, t4, t5, t6) */ * from t2 right join (t1 join t3 on t1.a=t3.a join t4 on t3.b = t4.b) on t2.b=t1.b join t5 on t2.a = t5.a join t6 on t5.b=t6.b;", + + // test cases for using the join order hint and join algorithm hint + "select /*+ leading(t2) hash_join(t2) */ * from t left join t1 on t.a = t1.a right join t2 on t1.b = t2.b join t3 on t2.b = t3.b ;", + "select /*+ leading(t2) hash_join(t1) */ * from t left join t1 on t.a = t1.a right join t2 on t1.b = t2.b join t3 on t2.b = t3.b ;", + "select /*+ leading(t2) hash_join(t3) */ * from t left join t1 on t.a = t1.a right join t2 on t1.b = t2.b join t3 on t2.b = t3.b ;", + "select /*+ leading(t) hash_join(t2) */ * from t left join t1 on t.a = t1.a left join t2 on t1.b = t2.b join t3 on t2.b = t3.b ;", + "select /*+ leading(t) hash_join(t1) */ * from t left join t1 on t.a = t1.a left join t2 on t1.b = t2.b join t3 on t2.b = t3.b ;", + "select /*+ leading(t) hash_join(t3) */ * from t left join t1 on t.a = t1.a left join t2 on t1.b = t2.b join t3 on t2.b = t3.b ;", + "select /*+ leading(t2) INL_JOIN(t1) */ * from t left join t1 on t.a = t1.a right join t2 on t1.b = t2.b join t3 on t2.b = t3.b ;", + "select /*+ leading(t2) INL_JOIN(t3) */ * from t left join t1 on t.a = t1.a right join t2 on t1.b = t2.b join t3 on t2.b = t3.b ;", + "select /*+ leading(t3) INL_JOIN(t1) */ * from t left join t1 on t.a = t1.a right join t2 on t1.b = t2.b join t3 on t2.b = t3.b ;", + "select /*+ leading(t3) INL_JOIN(t3) */ * from t left join t1 on t.a = t1.a right join t2 on t1.b = t2.b join t3 on t2.b = t3.b ;", + "select /*+ leading(t2) merge_join(t2) */ * from t left join t1 on t.a = t1.a right join t2 on t1.b = t2.b join t3 on t2.b = t3.b ;", + "select /*+ leading(t1) merge_join(t2) */ * from t join t1 on t.a = t1.a left join t2 on t1.b = t2.b join t3 on t2.b = t3.b ;", + "select /*+ leading(t2) merge_join(t3) */ * from t left join t1 on t.a = t1.a right join t2 on t1.b = t2.b join t3 on t2.b = t3.b ;", + "select /*+ leading(t3) merge_join(t3) */ * from t join t1 on t.a = t1.a join t2 on t1.b = t2.b join t3 on t2.b = t3.b ;", + "select /*+ leading(t3) merge_join(t2) */ * from t right join t1 on t.a = t1.a join t2 on t1.b = t2.b join t3 on t2.b = t3.b ;", + "select /*+ leading(t3) merge_join(t2) */ * from t right join t1 on t.a = t1.a join t2 on t1.b = t2.b join t3 on t2.b = t3.b ;", + "select /*+ leading(t3) merge_join(t3) */ * from t right join t1 on t.a = t1.a join t2 on t1.b = t2.b join t3 on t2.b = t3.b ;", + "select /*+ leading(t3) merge_join(t3) */ * from t left join t1 on t.a = t1.a left join t2 on t1.b = t2.b join t3 on t2.b = t3.b ;", + "select /*+ leading(t2) INL_JOIN(t1) */ * from t join t1 on t.a = t1.a left join t2 on t1.b = t2.b join t3 on t2.b = t3.b ;", + + // leading hint + correlated subquery + "select /*+ leading(t4) */ * from t1 join t2 on t1.a=t2.a right join t4 on t1.b = t4.b where t1.a in (select t3.a from t3 where t1.b = t3.b)", + "select /*+ leading(t3@sel_2) */ * from t1 left join t2 on t1.a=t2.a where t1.a in (select t3.a from t3 where t1.b = t3.b)", + "select /*+ leading(t2, t3@sel_2) */ * from t1 right join t2 on t1.a=t2.a where t1.a in (select t3.a from t3 where t1.b = t3.b)", + + "select /*+ leading(t4) */ * from t1 join t2 on t1.a=t2.a right join t4 on t1.b = t4.b where t1.a not in (select t3.a from t3 where t1.b = t3.b)", + "select /*+ leading(t3@sel_2) */ * from t1 left join t2 on t1.a=t2.a where t1.a not in (select t3.a from t3 where t1.b = t3.b)", + "select /*+ leading(t2, t3@sel_2) */ * from t1 right join t2 on t1.a=t2.a where t1.a not in (select t3.a from t3 where t1.b = t3.b)", + + "select /*+ leading(t4) */ * from t1 join t2 on t1.a=t2.a right join t4 on t1.b = t4.b where exists (select t3.a from t3 where t1.b = t3.b)", + "select /*+ leading(t3@sel_2) */ * from t1 left join t2 on t1.a=t2.a where exists (select t3.a from t3 where t1.b = t3.b)", + "select /*+ leading(t2, t3@sel_2) */ * from t1 right join t2 on t1.a=t2.a where exists (select t3.a from t3 where t1.b = t3.b)", + + "select /*+ leading(t4) */ * from t1 join t2 on t1.a=t2.a right join t4 on t1.b = t4.b where not exists (select t3.a from t3 where t1.b = t3.b)", + "select /*+ leading(t3@sel_2) */ * from t1 left join t2 on t1.a=t2.a where not exists (select t3.a from t3 where t1.b = t3.b)", + "select /*+ leading(t2, t3@sel_2) */ * from t1 right join t2 on t1.a=t2.a where not exists (select t3.a from t3 where t1.b = t3.b)", + + "select /*+ leading(t1) */ t1.a, (select min(t1.a) from t2 where t2.a > t1.a) from t1 join t3 on t1.a = t3.a;", + "select /*+ leading(t3@sel_2) */ t1.a, (select min(t1.a) from t2 where t2.a > t1.a) from t1 join t3 on t1.a = t3.a;", + "select /*+ leading(t2, t3@sel_2) */ t1.a, (select min(t1.a) from t2 where t2.a > t1.a) from t1 join t3 on t1.a = t3.a;", + + "select /*+ leading(t4, t3@sel_2) */ * from t1 right join t2 on t1.a=t2.a join t4 on t1.b = t4.b where t1.a = (select max(t3.a) from t3 where t1.b = t3.b)", + "select /*+ leading(t4) */ * from t1 right join t2 on t1.a=t2.a join t4 on t1.b = t4.b where t1.a = (select max(t3.a) from t3 where t1.b = t3.b)", + "select /*+ leading(t3@sel_2) */ * from t1 left join t2 on t1.a=t2.a join t4 on t1.b = t4.b where t1.a = (select max(t3.a) from t3 where t1.b = t3.b)", + "select /*+ leading(t3@sel_2, t1) */ * from t1 left join t2 on t1.a=t2.a join t4 on t1.b = t4.b where t1.a = (select max(t3.a) from t3 where t1.b = t3.b)", + + "select /*+ leading(t4, t3@sel_2) */ * from t1 left join t2 on t1.a=t2.a right join t4 on t1.b = t4.b where t1.a > (select min(t3.a) from t3 where t1.b = t3.b)", + "select /*+ leading(t4) */ * from t1 left join t2 on t1.a=t2.a right join t4 on t1.b = t4.b where t1.a > (select min(t3.a) from t3 where t1.b = t3.b)", + "select /*+ leading(t3@sel_2) */ * from t1 left join t2 on t1.a=t2.a join t4 on t1.b = t4.b where t1.a > (select min(t3.a) from t3 where t1.b = t3.b)", + "select /*+ leading(t3@sel_2, t2) */ * from t1 right join t2 on t1.a=t2.a join t4 on t1.b = t4.b where t1.a > (select min(t3.a) from t3 where t1.b = t3.b)", + + // leading hint + uncorrelated subquery + "select /*+ leading(t4) */ * from t1 join t2 on t1.a=t2.a right join t4 on t1.b = t4.b where t1.a in (select t3.a from t3)", + "select /*+ leading(t3@sel_2) */ * from t1 left join t2 on t1.a=t2.a where t1.a in (select t3.a from t3)", + "select /*+ leading(t2, t3@sel_2) */ * from t1 join t2 on t1.a=t2.a where t1.a in (select t3.a from t3)", + + "select /*+ leading(t4) */ * from t1 left join t2 on t1.a=t2.a right join t4 on t1.b = t4.b where t1.a not in (select t3.a from t3)", + "select /*+ leading(t3@sel_2) */ * from t1 left join t2 on t1.a=t2.a where t1.a not in (select t3.a from t3)", + "select /*+ leading(t2, t3@sel_2) */ * from t1 join t2 on t1.a=t2.a where t1.a not in (select t3.a from t3)", + + "select /*+ leading(t4) */ * from t1 left join t2 on t1.a=t2.a right join t4 on t1.b = t4.b where exists (select t3.a from t3)", + "select /*+ leading(t3@sel_2) */ * from t1 left join t2 on t1.a=t2.a where exists (select t3.a from t3)", + "select /*+ leading(t2, t3@sel_2) */ * from t1 join t2 on t1.a=t2.a where exists (select t3.a from t3)", + + "select /*+ leading(t4) */ * from t1 join t2 on t1.a=t2.a right join t4 on t1.b = t4.b where not exists (select t3.a from t3)", + "select /*+ leading(t3@sel_2) */ * from t1 left join t2 on t1.a=t2.a where not exists (select t3.a from t3)", + "select /*+ leading(t2, t3@sel_2) */ * from t1 join t2 on t1.a=t2.a where not exists (select t3.a from t3)", + + "select /*+ leading(t4@sel_2, t1) */ * from t1 join (select * from t4) t2 on t1.a=t2.a join t3 on t2.b=t3.b;", + "select /*+ leading(t2, t4@sel_2) */ * from (select * from t4) t1 right join t2 on t1.a=t2.a join t3 on t2.b=t3.b;", + "select /*+ leading(t3) */ * from t1 join t2 on t1.a=t2.a right join (select * from t4) t3 on t2.b=t3.b;", + + "select /*+ leading(t1) */ t1.a, (select min(t2.a) from t2) from t1 join t3 on t1.a = t3.a;", + "select /*+ leading(t1, t2@sel_2) */ t1.a, (select min(t2.a) from t2) from t1 join t3 on t1.a = t3.a;", + "select /*+ leading(t1, t3) */ t1.a, (select min(t2.a) from t2) from t1 join t3 on t1.a = t3.a;", + "select /*+ leading(t2@sel_2, t1) */ t1.a, (select min(t2.a) from t2) from t1 left join t3 on t1.a = t3.a;", + "select /*+ leading(t3, t2@sel_2) */ t1.a, (select min(t2.a) from t2) from t1 right join t3 on t1.a = t3.a;" ] } ] diff --git a/planner/core/testdata/join_reorder_suite_out.json b/planner/core/testdata/join_reorder_suite_out.json index f82b504714a2d..41ed45dcb3cd4 100644 --- a/planner/core/testdata/join_reorder_suite_out.json +++ b/planner/core/testdata/join_reorder_suite_out.json @@ -2516,6 +2516,1591 @@ "Warning": [ "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" ] + }, + { + "SQL": "select /*+ leading(t1, t2) */ * from t4 join t on t4.a=t.a left join t1 on t.a = t1.a join t2 on t.b = t2.b join t3 on t2.b=t3.b;", + "Plan": [ + "Projection 43857.47 root test.t4.a, test.t4.b, test.t.a, test.t.b, test.t1.a, test.t1.b, test.t2.a, test.t2.b, test.t3.a, test.t3.b", + "└─HashJoin 43857.47 root inner join, equal:[eq(test.t2.b, test.t3.b)]", + " ├─PartitionUnion(Build) 29970.00 root ", + " │ ├─TableReader 9990.00 root data:Selection", + " │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.b))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t3, partition:p0 keep order:false, stats:pseudo", + " │ ├─TableReader 9990.00 root data:Selection", + " │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.b))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t3, partition:p1 keep order:false, stats:pseudo", + " │ └─TableReader 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t3, partition:p2 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 58476.62 root inner join, equal:[eq(test.t.b, test.t2.b)]", + " ├─HashJoin(Build) 46781.30 root left outer join, equal:[eq(test.t.a, test.t1.a)]", + " │ ├─PartitionUnion(Build) 39960.00 root ", + " │ │ ├─TableReader 9990.00 root data:Selection", + " │ │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", + " │ │ │ └─TableFullScan 10000.00 cop[tikv] table:t1, partition:p0 keep order:false, stats:pseudo", + " │ │ ├─TableReader 9990.00 root data:Selection", + " │ │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", + " │ │ │ └─TableFullScan 10000.00 cop[tikv] table:t1, partition:p1 keep order:false, stats:pseudo", + " │ │ ├─TableReader 9990.00 root data:Selection", + " │ │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", + " │ │ │ └─TableFullScan 10000.00 cop[tikv] table:t1, partition:p2 keep order:false, stats:pseudo", + " │ │ └─TableReader 9990.00 root data:Selection", + " │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t1, partition:p3 keep order:false, stats:pseudo", + " │ └─HashJoin(Probe) 37425.04 root inner join, equal:[eq(test.t.a, test.t4.a)]", + " │ ├─PartitionUnion(Build) 29940.03 root ", + " │ │ ├─TableReader 9980.01 root data:Selection", + " │ │ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t.a)), not(isnull(test.t.b))", + " │ │ │ └─TableFullScan 10000.00 cop[tikv] table:t, partition:p0 keep order:false, stats:pseudo", + " │ │ ├─TableReader 9980.01 root data:Selection", + " │ │ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t.a)), not(isnull(test.t.b))", + " │ │ │ └─TableFullScan 10000.00 cop[tikv] table:t, partition:p1 keep order:false, stats:pseudo", + " │ │ └─TableReader 9980.01 root data:Selection", + " │ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t.a)), not(isnull(test.t.b))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t, partition:p2 keep order:false, stats:pseudo", + " │ └─PartitionUnion(Probe) 39960.00 root ", + " │ ├─TableReader 9990.00 root data:Selection", + " │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.a))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t4, partition:p0 keep order:false, stats:pseudo", + " │ ├─TableReader 9990.00 root data:Selection", + " │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.a))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t4, partition:p1 keep order:false, stats:pseudo", + " │ ├─TableReader 9990.00 root data:Selection", + " │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.a))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t4, partition:p2 keep order:false, stats:pseudo", + " │ └─TableReader 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.a))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t4, partition:p3 keep order:false, stats:pseudo", + " └─PartitionUnion(Probe) 49950.00 root ", + " ├─TableReader 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2, partition:p0 keep order:false, stats:pseudo", + " ├─TableReader 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2, partition:p1 keep order:false, stats:pseudo", + " ├─TableReader 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2, partition:p2 keep order:false, stats:pseudo", + " ├─TableReader 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2, partition:p3 keep order:false, stats:pseudo", + " └─TableReader 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t2.b))", + " └─TableFullScan 10000.00 cop[tikv] table:t2, partition:p4 keep order:false, stats:pseudo" + ], + "Warning": [ + "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" + ] + }, + { + "SQL": "select /*+ leading(t2, t3) */ * from t4 join t on t4.a=t.a left join t1 on t.a = t1.a join t2 on t.b = t2.b join t3 on t2.b=t3.b;", + "Plan": [ + "Projection 43857.47 root test.t4.a, test.t4.b, test.t.a, test.t.b, test.t1.a, test.t1.b, test.t2.a, test.t2.b, test.t3.a, test.t3.b", + "└─HashJoin 43857.47 root inner join, equal:[eq(test.t2.b, test.t3.b)]", + " ├─PartitionUnion(Build) 29970.00 root ", + " │ ├─TableReader 9990.00 root data:Selection", + " │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.b))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t3, partition:p0 keep order:false, stats:pseudo", + " │ ├─TableReader 9990.00 root data:Selection", + " │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.b))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t3, partition:p1 keep order:false, stats:pseudo", + " │ └─TableReader 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t3, partition:p2 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 58476.62 root inner join, equal:[eq(test.t.b, test.t2.b)]", + " ├─HashJoin(Build) 46781.30 root left outer join, equal:[eq(test.t.a, test.t1.a)]", + " │ ├─PartitionUnion(Build) 39960.00 root ", + " │ │ ├─TableReader 9990.00 root data:Selection", + " │ │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", + " │ │ │ └─TableFullScan 10000.00 cop[tikv] table:t1, partition:p0 keep order:false, stats:pseudo", + " │ │ ├─TableReader 9990.00 root data:Selection", + " │ │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", + " │ │ │ └─TableFullScan 10000.00 cop[tikv] table:t1, partition:p1 keep order:false, stats:pseudo", + " │ │ ├─TableReader 9990.00 root data:Selection", + " │ │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", + " │ │ │ └─TableFullScan 10000.00 cop[tikv] table:t1, partition:p2 keep order:false, stats:pseudo", + " │ │ └─TableReader 9990.00 root data:Selection", + " │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t1, partition:p3 keep order:false, stats:pseudo", + " │ └─HashJoin(Probe) 37425.04 root inner join, equal:[eq(test.t.a, test.t4.a)]", + " │ ├─PartitionUnion(Build) 29940.03 root ", + " │ │ ├─TableReader 9980.01 root data:Selection", + " │ │ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t.a)), not(isnull(test.t.b))", + " │ │ │ └─TableFullScan 10000.00 cop[tikv] table:t, partition:p0 keep order:false, stats:pseudo", + " │ │ ├─TableReader 9980.01 root data:Selection", + " │ │ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t.a)), not(isnull(test.t.b))", + " │ │ │ └─TableFullScan 10000.00 cop[tikv] table:t, partition:p1 keep order:false, stats:pseudo", + " │ │ └─TableReader 9980.01 root data:Selection", + " │ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t.a)), not(isnull(test.t.b))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t, partition:p2 keep order:false, stats:pseudo", + " │ └─PartitionUnion(Probe) 39960.00 root ", + " │ ├─TableReader 9990.00 root data:Selection", + " │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.a))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t4, partition:p0 keep order:false, stats:pseudo", + " │ ├─TableReader 9990.00 root data:Selection", + " │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.a))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t4, partition:p1 keep order:false, stats:pseudo", + " │ ├─TableReader 9990.00 root data:Selection", + " │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.a))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t4, partition:p2 keep order:false, stats:pseudo", + " │ └─TableReader 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.a))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t4, partition:p3 keep order:false, stats:pseudo", + " └─PartitionUnion(Probe) 49950.00 root ", + " ├─TableReader 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2, partition:p0 keep order:false, stats:pseudo", + " ├─TableReader 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2, partition:p1 keep order:false, stats:pseudo", + " ├─TableReader 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2, partition:p2 keep order:false, stats:pseudo", + " ├─TableReader 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2, partition:p3 keep order:false, stats:pseudo", + " └─TableReader 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t2.b))", + " └─TableFullScan 10000.00 cop[tikv] table:t2, partition:p4 keep order:false, stats:pseudo" + ], + "Warning": [ + "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" + ] + }, + { + "SQL": "select /*+ leading(t4, t3, t2, t, t1) */ * from t4 join t on t4.a=t.a left join t1 on t.a = t1.a join t2 on t.b = t2.b join t3 on t2.b=t3.b;", + "Plan": [ + "Projection 43857.47 root test.t4.a, test.t4.b, test.t.a, test.t.b, test.t1.a, test.t1.b, test.t2.a, test.t2.b, test.t3.a, test.t3.b", + "└─HashJoin 43857.47 root inner join, equal:[eq(test.t2.b, test.t3.b)]", + " ├─PartitionUnion(Build) 29970.00 root ", + " │ ├─TableReader 9990.00 root data:Selection", + " │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.b))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t3, partition:p0 keep order:false, stats:pseudo", + " │ ├─TableReader 9990.00 root data:Selection", + " │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.b))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t3, partition:p1 keep order:false, stats:pseudo", + " │ └─TableReader 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t3, partition:p2 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 58476.62 root inner join, equal:[eq(test.t.b, test.t2.b)]", + " ├─HashJoin(Build) 46781.30 root left outer join, equal:[eq(test.t.a, test.t1.a)]", + " │ ├─PartitionUnion(Build) 39960.00 root ", + " │ │ ├─TableReader 9990.00 root data:Selection", + " │ │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", + " │ │ │ └─TableFullScan 10000.00 cop[tikv] table:t1, partition:p0 keep order:false, stats:pseudo", + " │ │ ├─TableReader 9990.00 root data:Selection", + " │ │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", + " │ │ │ └─TableFullScan 10000.00 cop[tikv] table:t1, partition:p1 keep order:false, stats:pseudo", + " │ │ ├─TableReader 9990.00 root data:Selection", + " │ │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", + " │ │ │ └─TableFullScan 10000.00 cop[tikv] table:t1, partition:p2 keep order:false, stats:pseudo", + " │ │ └─TableReader 9990.00 root data:Selection", + " │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t1, partition:p3 keep order:false, stats:pseudo", + " │ └─HashJoin(Probe) 37425.04 root inner join, equal:[eq(test.t.a, test.t4.a)]", + " │ ├─PartitionUnion(Build) 29940.03 root ", + " │ │ ├─TableReader 9980.01 root data:Selection", + " │ │ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t.a)), not(isnull(test.t.b))", + " │ │ │ └─TableFullScan 10000.00 cop[tikv] table:t, partition:p0 keep order:false, stats:pseudo", + " │ │ ├─TableReader 9980.01 root data:Selection", + " │ │ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t.a)), not(isnull(test.t.b))", + " │ │ │ └─TableFullScan 10000.00 cop[tikv] table:t, partition:p1 keep order:false, stats:pseudo", + " │ │ └─TableReader 9980.01 root data:Selection", + " │ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t.a)), not(isnull(test.t.b))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t, partition:p2 keep order:false, stats:pseudo", + " │ └─PartitionUnion(Probe) 39960.00 root ", + " │ ├─TableReader 9990.00 root data:Selection", + " │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.a))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t4, partition:p0 keep order:false, stats:pseudo", + " │ ├─TableReader 9990.00 root data:Selection", + " │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.a))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t4, partition:p1 keep order:false, stats:pseudo", + " │ ├─TableReader 9990.00 root data:Selection", + " │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.a))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t4, partition:p2 keep order:false, stats:pseudo", + " │ └─TableReader 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.a))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t4, partition:p3 keep order:false, stats:pseudo", + " └─PartitionUnion(Probe) 49950.00 root ", + " ├─TableReader 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2, partition:p0 keep order:false, stats:pseudo", + " ├─TableReader 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2, partition:p1 keep order:false, stats:pseudo", + " ├─TableReader 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2, partition:p2 keep order:false, stats:pseudo", + " ├─TableReader 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2, partition:p3 keep order:false, stats:pseudo", + " └─TableReader 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t2.b))", + " └─TableFullScan 10000.00 cop[tikv] table:t2, partition:p4 keep order:false, stats:pseudo" + ], + "Warning": [ + "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" + ] + }, + { + "SQL": "select /*+ leading(t4, t3, t2, t) */ * from t4 join t on t4.a=t.a left join t1 on t.a = t1.a join t2 on t.b = t2.b join t3 on t2.b=t3.b;", + "Plan": [ + "Projection 43857.47 root test.t4.a, test.t4.b, test.t.a, test.t.b, test.t1.a, test.t1.b, test.t2.a, test.t2.b, test.t3.a, test.t3.b", + "└─HashJoin 43857.47 root inner join, equal:[eq(test.t2.b, test.t3.b)]", + " ├─PartitionUnion(Build) 29970.00 root ", + " │ ├─TableReader 9990.00 root data:Selection", + " │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.b))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t3, partition:p0 keep order:false, stats:pseudo", + " │ ├─TableReader 9990.00 root data:Selection", + " │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.b))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t3, partition:p1 keep order:false, stats:pseudo", + " │ └─TableReader 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t3, partition:p2 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 58476.62 root inner join, equal:[eq(test.t.b, test.t2.b)]", + " ├─HashJoin(Build) 46781.30 root left outer join, equal:[eq(test.t.a, test.t1.a)]", + " │ ├─PartitionUnion(Build) 39960.00 root ", + " │ │ ├─TableReader 9990.00 root data:Selection", + " │ │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", + " │ │ │ └─TableFullScan 10000.00 cop[tikv] table:t1, partition:p0 keep order:false, stats:pseudo", + " │ │ ├─TableReader 9990.00 root data:Selection", + " │ │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", + " │ │ │ └─TableFullScan 10000.00 cop[tikv] table:t1, partition:p1 keep order:false, stats:pseudo", + " │ │ ├─TableReader 9990.00 root data:Selection", + " │ │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", + " │ │ │ └─TableFullScan 10000.00 cop[tikv] table:t1, partition:p2 keep order:false, stats:pseudo", + " │ │ └─TableReader 9990.00 root data:Selection", + " │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t1, partition:p3 keep order:false, stats:pseudo", + " │ └─HashJoin(Probe) 37425.04 root inner join, equal:[eq(test.t.a, test.t4.a)]", + " │ ├─PartitionUnion(Build) 29940.03 root ", + " │ │ ├─TableReader 9980.01 root data:Selection", + " │ │ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t.a)), not(isnull(test.t.b))", + " │ │ │ └─TableFullScan 10000.00 cop[tikv] table:t, partition:p0 keep order:false, stats:pseudo", + " │ │ ├─TableReader 9980.01 root data:Selection", + " │ │ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t.a)), not(isnull(test.t.b))", + " │ │ │ └─TableFullScan 10000.00 cop[tikv] table:t, partition:p1 keep order:false, stats:pseudo", + " │ │ └─TableReader 9980.01 root data:Selection", + " │ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t.a)), not(isnull(test.t.b))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t, partition:p2 keep order:false, stats:pseudo", + " │ └─PartitionUnion(Probe) 39960.00 root ", + " │ ├─TableReader 9990.00 root data:Selection", + " │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.a))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t4, partition:p0 keep order:false, stats:pseudo", + " │ ├─TableReader 9990.00 root data:Selection", + " │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.a))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t4, partition:p1 keep order:false, stats:pseudo", + " │ ├─TableReader 9990.00 root data:Selection", + " │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.a))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t4, partition:p2 keep order:false, stats:pseudo", + " │ └─TableReader 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.a))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t4, partition:p3 keep order:false, stats:pseudo", + " └─PartitionUnion(Probe) 49950.00 root ", + " ├─TableReader 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2, partition:p0 keep order:false, stats:pseudo", + " ├─TableReader 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2, partition:p1 keep order:false, stats:pseudo", + " ├─TableReader 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2, partition:p2 keep order:false, stats:pseudo", + " ├─TableReader 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2, partition:p3 keep order:false, stats:pseudo", + " └─TableReader 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t2.b))", + " └─TableFullScan 10000.00 cop[tikv] table:t2, partition:p4 keep order:false, stats:pseudo" + ], + "Warning": [ + "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" + ] + }, + { + "SQL": "select /*+ leading(t3, t2, t) */ * from t4 join t on t4.a=t.a left join t1 on t.a = t1.a join t2 on t.b = t2.b join t3 on t2.b=t3.b;", + "Plan": [ + "Projection 43857.47 root test.t4.a, test.t4.b, test.t.a, test.t.b, test.t1.a, test.t1.b, test.t2.a, test.t2.b, test.t3.a, test.t3.b", + "└─HashJoin 43857.47 root inner join, equal:[eq(test.t2.b, test.t3.b)]", + " ├─PartitionUnion(Build) 29970.00 root ", + " │ ├─TableReader 9990.00 root data:Selection", + " │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.b))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t3, partition:p0 keep order:false, stats:pseudo", + " │ ├─TableReader 9990.00 root data:Selection", + " │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.b))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t3, partition:p1 keep order:false, stats:pseudo", + " │ └─TableReader 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t3, partition:p2 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 58476.62 root inner join, equal:[eq(test.t.b, test.t2.b)]", + " ├─HashJoin(Build) 46781.30 root left outer join, equal:[eq(test.t.a, test.t1.a)]", + " │ ├─PartitionUnion(Build) 39960.00 root ", + " │ │ ├─TableReader 9990.00 root data:Selection", + " │ │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", + " │ │ │ └─TableFullScan 10000.00 cop[tikv] table:t1, partition:p0 keep order:false, stats:pseudo", + " │ │ ├─TableReader 9990.00 root data:Selection", + " │ │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", + " │ │ │ └─TableFullScan 10000.00 cop[tikv] table:t1, partition:p1 keep order:false, stats:pseudo", + " │ │ ├─TableReader 9990.00 root data:Selection", + " │ │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", + " │ │ │ └─TableFullScan 10000.00 cop[tikv] table:t1, partition:p2 keep order:false, stats:pseudo", + " │ │ └─TableReader 9990.00 root data:Selection", + " │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t1, partition:p3 keep order:false, stats:pseudo", + " │ └─HashJoin(Probe) 37425.04 root inner join, equal:[eq(test.t.a, test.t4.a)]", + " │ ├─PartitionUnion(Build) 29940.03 root ", + " │ │ ├─TableReader 9980.01 root data:Selection", + " │ │ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t.a)), not(isnull(test.t.b))", + " │ │ │ └─TableFullScan 10000.00 cop[tikv] table:t, partition:p0 keep order:false, stats:pseudo", + " │ │ ├─TableReader 9980.01 root data:Selection", + " │ │ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t.a)), not(isnull(test.t.b))", + " │ │ │ └─TableFullScan 10000.00 cop[tikv] table:t, partition:p1 keep order:false, stats:pseudo", + " │ │ └─TableReader 9980.01 root data:Selection", + " │ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t.a)), not(isnull(test.t.b))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t, partition:p2 keep order:false, stats:pseudo", + " │ └─PartitionUnion(Probe) 39960.00 root ", + " │ ├─TableReader 9990.00 root data:Selection", + " │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.a))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t4, partition:p0 keep order:false, stats:pseudo", + " │ ├─TableReader 9990.00 root data:Selection", + " │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.a))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t4, partition:p1 keep order:false, stats:pseudo", + " │ ├─TableReader 9990.00 root data:Selection", + " │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.a))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t4, partition:p2 keep order:false, stats:pseudo", + " │ └─TableReader 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.a))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t4, partition:p3 keep order:false, stats:pseudo", + " └─PartitionUnion(Probe) 49950.00 root ", + " ├─TableReader 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2, partition:p0 keep order:false, stats:pseudo", + " ├─TableReader 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2, partition:p1 keep order:false, stats:pseudo", + " ├─TableReader 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2, partition:p2 keep order:false, stats:pseudo", + " ├─TableReader 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2, partition:p3 keep order:false, stats:pseudo", + " └─TableReader 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t2.b))", + " └─TableFullScan 10000.00 cop[tikv] table:t2, partition:p4 keep order:false, stats:pseudo" + ], + "Warning": [ + "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" + ] + }, + { + "SQL": "select /*+ leading(t3) */ * from t2 left join (t1 left join t3 on t1.a=t3.a) on t2.b=t1.b;", + "Plan": [ + "HashJoin 50000.00 root left outer join, equal:[eq(test.t2.b, test.t1.b)]", + "├─HashJoin(Build) 39960.00 root left outer join, equal:[eq(test.t1.a, test.t3.a)]", + "│ ├─PartitionUnion(Build) 29970.00 root ", + "│ │ ├─TableReader 9990.00 root data:Selection", + "│ │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.a))", + "│ │ │ └─TableFullScan 10000.00 cop[tikv] table:t3, partition:p0 keep order:false, stats:pseudo", + "│ │ ├─TableReader 9990.00 root data:Selection", + "│ │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.a))", + "│ │ │ └─TableFullScan 10000.00 cop[tikv] table:t3, partition:p1 keep order:false, stats:pseudo", + "│ │ └─TableReader 9990.00 root data:Selection", + "│ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.a))", + "│ │ └─TableFullScan 10000.00 cop[tikv] table:t3, partition:p2 keep order:false, stats:pseudo", + "│ └─PartitionUnion(Probe) 39960.00 root ", + "│ ├─TableReader 9990.00 root data:Selection", + "│ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t1.b))", + "│ │ └─TableFullScan 10000.00 cop[tikv] table:t1, partition:p0 keep order:false, stats:pseudo", + "│ ├─TableReader 9990.00 root data:Selection", + "│ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t1.b))", + "│ │ └─TableFullScan 10000.00 cop[tikv] table:t1, partition:p1 keep order:false, stats:pseudo", + "│ ├─TableReader 9990.00 root data:Selection", + "│ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t1.b))", + "│ │ └─TableFullScan 10000.00 cop[tikv] table:t1, partition:p2 keep order:false, stats:pseudo", + "│ └─TableReader 9990.00 root data:Selection", + "│ └─Selection 9990.00 cop[tikv] not(isnull(test.t1.b))", + "│ └─TableFullScan 10000.00 cop[tikv] table:t1, partition:p3 keep order:false, stats:pseudo", + "└─PartitionUnion(Probe) 50000.00 root ", + " ├─TableReader 10000.00 root data:TableFullScan", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2, partition:p0 keep order:false, stats:pseudo", + " ├─TableReader 10000.00 root data:TableFullScan", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2, partition:p1 keep order:false, stats:pseudo", + " ├─TableReader 10000.00 root data:TableFullScan", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2, partition:p2 keep order:false, stats:pseudo", + " ├─TableReader 10000.00 root data:TableFullScan", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2, partition:p3 keep order:false, stats:pseudo", + " └─TableReader 10000.00 root data:TableFullScan", + " └─TableFullScan 10000.00 cop[tikv] table:t2, partition:p4 keep order:false, stats:pseudo" + ], + "Warning": [ + "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" + ] + }, + { + "SQL": "select /*+ leading(t2, t1, t3) */ * from t2 left join (t1 left join t3 on t1.a=t3.a) on t2.b=t1.b;", + "Plan": [ + "HashJoin 50000.00 root left outer join, equal:[eq(test.t2.b, test.t1.b)]", + "├─HashJoin(Build) 39960.00 root left outer join, equal:[eq(test.t1.a, test.t3.a)]", + "│ ├─PartitionUnion(Build) 29970.00 root ", + "│ │ ├─TableReader 9990.00 root data:Selection", + "│ │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.a))", + "│ │ │ └─TableFullScan 10000.00 cop[tikv] table:t3, partition:p0 keep order:false, stats:pseudo", + "│ │ ├─TableReader 9990.00 root data:Selection", + "│ │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.a))", + "│ │ │ └─TableFullScan 10000.00 cop[tikv] table:t3, partition:p1 keep order:false, stats:pseudo", + "│ │ └─TableReader 9990.00 root data:Selection", + "│ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.a))", + "│ │ └─TableFullScan 10000.00 cop[tikv] table:t3, partition:p2 keep order:false, stats:pseudo", + "│ └─PartitionUnion(Probe) 39960.00 root ", + "│ ├─TableReader 9990.00 root data:Selection", + "│ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t1.b))", + "│ │ └─TableFullScan 10000.00 cop[tikv] table:t1, partition:p0 keep order:false, stats:pseudo", + "│ ├─TableReader 9990.00 root data:Selection", + "│ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t1.b))", + "│ │ └─TableFullScan 10000.00 cop[tikv] table:t1, partition:p1 keep order:false, stats:pseudo", + "│ ├─TableReader 9990.00 root data:Selection", + "│ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t1.b))", + "│ │ └─TableFullScan 10000.00 cop[tikv] table:t1, partition:p2 keep order:false, stats:pseudo", + "│ └─TableReader 9990.00 root data:Selection", + "│ └─Selection 9990.00 cop[tikv] not(isnull(test.t1.b))", + "│ └─TableFullScan 10000.00 cop[tikv] table:t1, partition:p3 keep order:false, stats:pseudo", + "└─PartitionUnion(Probe) 50000.00 root ", + " ├─TableReader 10000.00 root data:TableFullScan", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2, partition:p0 keep order:false, stats:pseudo", + " ├─TableReader 10000.00 root data:TableFullScan", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2, partition:p1 keep order:false, stats:pseudo", + " ├─TableReader 10000.00 root data:TableFullScan", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2, partition:p2 keep order:false, stats:pseudo", + " ├─TableReader 10000.00 root data:TableFullScan", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2, partition:p3 keep order:false, stats:pseudo", + " └─TableReader 10000.00 root data:TableFullScan", + " └─TableFullScan 10000.00 cop[tikv] table:t2, partition:p4 keep order:false, stats:pseudo" + ], + "Warning": [ + "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid", + "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" + ] + }, + { + "SQL": "select /*+ leading(t2, t3) */ * from t2 left join (t1 join t3 on t1.a=t3.a join t4 on t3.b = t4.b) on t2.b=t1.b;", + "Plan": [ + "HashJoin 58476.62 root left outer join, equal:[eq(test.t2.b, test.t1.b)]", + "├─Projection(Build) 46781.30 root test.t1.a, test.t1.b, test.t3.a, test.t3.b, test.t4.a, test.t4.b", + "│ └─HashJoin 46781.30 root inner join, equal:[eq(test.t3.b, test.t4.b)]", + "│ ├─HashJoin(Build) 37425.04 root inner join, equal:[eq(test.t3.a, test.t1.a)]", + "│ │ ├─PartitionUnion(Build) 29940.03 root ", + "│ │ │ ├─TableReader 9980.01 root data:Selection", + "│ │ │ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t3.a)), not(isnull(test.t3.b))", + "│ │ │ │ └─TableFullScan 10000.00 cop[tikv] table:t3, partition:p0 keep order:false, stats:pseudo", + "│ │ │ ├─TableReader 9980.01 root data:Selection", + "│ │ │ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t3.a)), not(isnull(test.t3.b))", + "│ │ │ │ └─TableFullScan 10000.00 cop[tikv] table:t3, partition:p1 keep order:false, stats:pseudo", + "│ │ │ └─TableReader 9980.01 root data:Selection", + "│ │ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t3.a)), not(isnull(test.t3.b))", + "│ │ │ └─TableFullScan 10000.00 cop[tikv] table:t3, partition:p2 keep order:false, stats:pseudo", + "│ │ └─PartitionUnion(Probe) 39920.04 root ", + "│ │ ├─TableReader 9980.01 root data:Selection", + "│ │ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t1.a)), not(isnull(test.t1.b))", + "│ │ │ └─TableFullScan 10000.00 cop[tikv] table:t1, partition:p0 keep order:false, stats:pseudo", + "│ │ ├─TableReader 9980.01 root data:Selection", + "│ │ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t1.a)), not(isnull(test.t1.b))", + "│ │ │ └─TableFullScan 10000.00 cop[tikv] table:t1, partition:p1 keep order:false, stats:pseudo", + "│ │ ├─TableReader 9980.01 root data:Selection", + "│ │ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t1.a)), not(isnull(test.t1.b))", + "│ │ │ └─TableFullScan 10000.00 cop[tikv] table:t1, partition:p2 keep order:false, stats:pseudo", + "│ │ └─TableReader 9980.01 root data:Selection", + "│ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t1.a)), not(isnull(test.t1.b))", + "│ │ └─TableFullScan 10000.00 cop[tikv] table:t1, partition:p3 keep order:false, stats:pseudo", + "│ └─PartitionUnion(Probe) 39960.00 root ", + "│ ├─TableReader 9990.00 root data:Selection", + "│ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.b))", + "│ │ └─TableFullScan 10000.00 cop[tikv] table:t4, partition:p0 keep order:false, stats:pseudo", + "│ ├─TableReader 9990.00 root data:Selection", + "│ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.b))", + "│ │ └─TableFullScan 10000.00 cop[tikv] table:t4, partition:p1 keep order:false, stats:pseudo", + "│ ├─TableReader 9990.00 root data:Selection", + "│ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.b))", + "│ │ └─TableFullScan 10000.00 cop[tikv] table:t4, partition:p2 keep order:false, stats:pseudo", + "│ └─TableReader 9990.00 root data:Selection", + "│ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.b))", + "│ └─TableFullScan 10000.00 cop[tikv] table:t4, partition:p3 keep order:false, stats:pseudo", + "└─PartitionUnion(Probe) 50000.00 root ", + " ├─TableReader 10000.00 root data:TableFullScan", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2, partition:p0 keep order:false, stats:pseudo", + " ├─TableReader 10000.00 root data:TableFullScan", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2, partition:p1 keep order:false, stats:pseudo", + " ├─TableReader 10000.00 root data:TableFullScan", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2, partition:p2 keep order:false, stats:pseudo", + " ├─TableReader 10000.00 root data:TableFullScan", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2, partition:p3 keep order:false, stats:pseudo", + " └─TableReader 10000.00 root data:TableFullScan", + " └─TableFullScan 10000.00 cop[tikv] table:t2, partition:p4 keep order:false, stats:pseudo" + ], + "Warning": [ + "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid", + "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" + ] + }, + { + "SQL": "select /*+ leading(t3, t4) */ * from t2 left join (t1 join t3 on t1.a=t3.a join t4 on t3.b = t4.b) on t2.b=t1.b;", + "Plan": [ + "HashJoin 58476.62 root left outer join, equal:[eq(test.t2.b, test.t1.b)]", + "├─Projection(Build) 46781.30 root test.t1.a, test.t1.b, test.t3.a, test.t3.b, test.t4.a, test.t4.b", + "│ └─HashJoin 46781.30 root inner join, equal:[eq(test.t3.b, test.t4.b)]", + "│ ├─HashJoin(Build) 37425.04 root inner join, equal:[eq(test.t3.a, test.t1.a)]", + "│ │ ├─PartitionUnion(Build) 29940.03 root ", + "│ │ │ ├─TableReader 9980.01 root data:Selection", + "│ │ │ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t3.a)), not(isnull(test.t3.b))", + "│ │ │ │ └─TableFullScan 10000.00 cop[tikv] table:t3, partition:p0 keep order:false, stats:pseudo", + "│ │ │ ├─TableReader 9980.01 root data:Selection", + "│ │ │ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t3.a)), not(isnull(test.t3.b))", + "│ │ │ │ └─TableFullScan 10000.00 cop[tikv] table:t3, partition:p1 keep order:false, stats:pseudo", + "│ │ │ └─TableReader 9980.01 root data:Selection", + "│ │ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t3.a)), not(isnull(test.t3.b))", + "│ │ │ └─TableFullScan 10000.00 cop[tikv] table:t3, partition:p2 keep order:false, stats:pseudo", + "│ │ └─PartitionUnion(Probe) 39920.04 root ", + "│ │ ├─TableReader 9980.01 root data:Selection", + "│ │ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t1.a)), not(isnull(test.t1.b))", + "│ │ │ └─TableFullScan 10000.00 cop[tikv] table:t1, partition:p0 keep order:false, stats:pseudo", + "│ │ ├─TableReader 9980.01 root data:Selection", + "│ │ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t1.a)), not(isnull(test.t1.b))", + "│ │ │ └─TableFullScan 10000.00 cop[tikv] table:t1, partition:p1 keep order:false, stats:pseudo", + "│ │ ├─TableReader 9980.01 root data:Selection", + "│ │ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t1.a)), not(isnull(test.t1.b))", + "│ │ │ └─TableFullScan 10000.00 cop[tikv] table:t1, partition:p2 keep order:false, stats:pseudo", + "│ │ └─TableReader 9980.01 root data:Selection", + "│ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t1.a)), not(isnull(test.t1.b))", + "│ │ └─TableFullScan 10000.00 cop[tikv] table:t1, partition:p3 keep order:false, stats:pseudo", + "│ └─PartitionUnion(Probe) 39960.00 root ", + "│ ├─TableReader 9990.00 root data:Selection", + "│ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.b))", + "│ │ └─TableFullScan 10000.00 cop[tikv] table:t4, partition:p0 keep order:false, stats:pseudo", + "│ ├─TableReader 9990.00 root data:Selection", + "│ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.b))", + "│ │ └─TableFullScan 10000.00 cop[tikv] table:t4, partition:p1 keep order:false, stats:pseudo", + "│ ├─TableReader 9990.00 root data:Selection", + "│ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.b))", + "│ │ └─TableFullScan 10000.00 cop[tikv] table:t4, partition:p2 keep order:false, stats:pseudo", + "│ └─TableReader 9990.00 root data:Selection", + "│ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.b))", + "│ └─TableFullScan 10000.00 cop[tikv] table:t4, partition:p3 keep order:false, stats:pseudo", + "└─PartitionUnion(Probe) 50000.00 root ", + " ├─TableReader 10000.00 root data:TableFullScan", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2, partition:p0 keep order:false, stats:pseudo", + " ├─TableReader 10000.00 root data:TableFullScan", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2, partition:p1 keep order:false, stats:pseudo", + " ├─TableReader 10000.00 root data:TableFullScan", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2, partition:p2 keep order:false, stats:pseudo", + " ├─TableReader 10000.00 root data:TableFullScan", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2, partition:p3 keep order:false, stats:pseudo", + " └─TableReader 10000.00 root data:TableFullScan", + " └─TableFullScan 10000.00 cop[tikv] table:t2, partition:p4 keep order:false, stats:pseudo" + ], + "Warning": [ + "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" + ] + }, + { + "SQL": "select /*+ leading(t3, t4) */ * from t2 left join (t1 join t3 on t1.a=t3.a join t4 on t3.b = t4.b) on t2.b=t1.b join t5 on t2.a = t5.a join t6 on t5.b=t6.b;", + "Plan": [ + "Projection 54821.83 root test.t2.a, test.t2.b, test.t1.a, test.t1.b, test.t3.a, test.t3.b, test.t4.a, test.t4.b, test.t5.a, test.t5.b, test.t6.a, test.t6.b", + "└─HashJoin 54821.83 root left outer join, equal:[eq(test.t2.b, test.t1.b)]", + " ├─Projection(Build) 46781.30 root test.t1.a, test.t1.b, test.t3.a, test.t3.b, test.t4.a, test.t4.b", + " │ └─HashJoin 46781.30 root inner join, equal:[eq(test.t3.b, test.t4.b)]", + " │ ├─HashJoin(Build) 37425.04 root inner join, equal:[eq(test.t3.a, test.t1.a)]", + " │ │ ├─PartitionUnion(Build) 29940.03 root ", + " │ │ │ ├─TableReader 9980.01 root data:Selection", + " │ │ │ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t3.a)), not(isnull(test.t3.b))", + " │ │ │ │ └─TableFullScan 10000.00 cop[tikv] table:t3, partition:p0 keep order:false, stats:pseudo", + " │ │ │ ├─TableReader 9980.01 root data:Selection", + " │ │ │ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t3.a)), not(isnull(test.t3.b))", + " │ │ │ │ └─TableFullScan 10000.00 cop[tikv] table:t3, partition:p1 keep order:false, stats:pseudo", + " │ │ │ └─TableReader 9980.01 root data:Selection", + " │ │ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t3.a)), not(isnull(test.t3.b))", + " │ │ │ └─TableFullScan 10000.00 cop[tikv] table:t3, partition:p2 keep order:false, stats:pseudo", + " │ │ └─PartitionUnion(Probe) 39920.04 root ", + " │ │ ├─TableReader 9980.01 root data:Selection", + " │ │ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t1.a)), not(isnull(test.t1.b))", + " │ │ │ └─TableFullScan 10000.00 cop[tikv] table:t1, partition:p0 keep order:false, stats:pseudo", + " │ │ ├─TableReader 9980.01 root data:Selection", + " │ │ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t1.a)), not(isnull(test.t1.b))", + " │ │ │ └─TableFullScan 10000.00 cop[tikv] table:t1, partition:p1 keep order:false, stats:pseudo", + " │ │ ├─TableReader 9980.01 root data:Selection", + " │ │ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t1.a)), not(isnull(test.t1.b))", + " │ │ │ └─TableFullScan 10000.00 cop[tikv] table:t1, partition:p2 keep order:false, stats:pseudo", + " │ │ └─TableReader 9980.01 root data:Selection", + " │ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t1.a)), not(isnull(test.t1.b))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t1, partition:p3 keep order:false, stats:pseudo", + " │ └─PartitionUnion(Probe) 39960.00 root ", + " │ ├─TableReader 9990.00 root data:Selection", + " │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.b))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t4, partition:p0 keep order:false, stats:pseudo", + " │ ├─TableReader 9990.00 root data:Selection", + " │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.b))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t4, partition:p1 keep order:false, stats:pseudo", + " │ ├─TableReader 9990.00 root data:Selection", + " │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.b))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t4, partition:p2 keep order:false, stats:pseudo", + " │ └─TableReader 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t4, partition:p3 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 46828.12 root inner join, equal:[eq(test.t5.a, test.t2.a)]", + " ├─HashJoin(Build) 37462.50 root inner join, equal:[eq(test.t6.b, test.t5.b)]", + " │ ├─PartitionUnion(Build) 29970.00 root ", + " │ │ ├─TableReader 9990.00 root data:Selection", + " │ │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t6.b))", + " │ │ │ └─TableFullScan 10000.00 cop[tikv] table:t6, partition:p0 keep order:false, stats:pseudo", + " │ │ ├─TableReader 9990.00 root data:Selection", + " │ │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t6.b))", + " │ │ │ └─TableFullScan 10000.00 cop[tikv] table:t6, partition:p1 keep order:false, stats:pseudo", + " │ │ └─TableReader 9990.00 root data:Selection", + " │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t6.b))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t6, partition:p2 keep order:false, stats:pseudo", + " │ └─PartitionUnion(Probe) 49900.05 root ", + " │ ├─TableReader 9980.01 root data:Selection", + " │ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t5.a)), not(isnull(test.t5.b))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t5, partition:p0 keep order:false, stats:pseudo", + " │ ├─TableReader 9980.01 root data:Selection", + " │ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t5.a)), not(isnull(test.t5.b))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t5, partition:p1 keep order:false, stats:pseudo", + " │ ├─TableReader 9980.01 root data:Selection", + " │ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t5.a)), not(isnull(test.t5.b))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t5, partition:p2 keep order:false, stats:pseudo", + " │ ├─TableReader 9980.01 root data:Selection", + " │ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t5.a)), not(isnull(test.t5.b))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t5, partition:p3 keep order:false, stats:pseudo", + " │ └─TableReader 9980.01 root data:Selection", + " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t5.a)), not(isnull(test.t5.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t5, partition:p4 keep order:false, stats:pseudo", + " └─PartitionUnion(Probe) 49950.00 root ", + " ├─TableReader 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2, partition:p0 keep order:false, stats:pseudo", + " ├─TableReader 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2, partition:p1 keep order:false, stats:pseudo", + " ├─TableReader 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2, partition:p2 keep order:false, stats:pseudo", + " ├─TableReader 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2, partition:p3 keep order:false, stats:pseudo", + " └─TableReader 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", + " └─TableFullScan 10000.00 cop[tikv] table:t2, partition:p4 keep order:false, stats:pseudo" + ], + "Warning": [ + "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" + ] + }, + { + "SQL": "select /*+ leading(t3, t4) leading(t5, t6) */ * from t2 left join (t1 join t3 on t1.a=t3.a join t4 on t3.b = t4.b) on t2.b=t1.b join t5 on t2.a = t5.a join t6 on t5.b=t6.b;", + "Plan": [ + "Projection 54821.83 root test.t2.a, test.t2.b, test.t1.a, test.t1.b, test.t3.a, test.t3.b, test.t4.a, test.t4.b, test.t5.a, test.t5.b, test.t6.a, test.t6.b", + "└─HashJoin 54821.83 root left outer join, equal:[eq(test.t2.b, test.t1.b)]", + " ├─Projection(Build) 46781.30 root test.t1.a, test.t1.b, test.t3.a, test.t3.b, test.t4.a, test.t4.b", + " │ └─HashJoin 46781.30 root inner join, equal:[eq(test.t3.b, test.t4.b)]", + " │ ├─HashJoin(Build) 37425.04 root inner join, equal:[eq(test.t3.a, test.t1.a)]", + " │ │ ├─PartitionUnion(Build) 29940.03 root ", + " │ │ │ ├─TableReader 9980.01 root data:Selection", + " │ │ │ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t3.a)), not(isnull(test.t3.b))", + " │ │ │ │ └─TableFullScan 10000.00 cop[tikv] table:t3, partition:p0 keep order:false, stats:pseudo", + " │ │ │ ├─TableReader 9980.01 root data:Selection", + " │ │ │ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t3.a)), not(isnull(test.t3.b))", + " │ │ │ │ └─TableFullScan 10000.00 cop[tikv] table:t3, partition:p1 keep order:false, stats:pseudo", + " │ │ │ └─TableReader 9980.01 root data:Selection", + " │ │ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t3.a)), not(isnull(test.t3.b))", + " │ │ │ └─TableFullScan 10000.00 cop[tikv] table:t3, partition:p2 keep order:false, stats:pseudo", + " │ │ └─PartitionUnion(Probe) 39920.04 root ", + " │ │ ├─TableReader 9980.01 root data:Selection", + " │ │ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t1.a)), not(isnull(test.t1.b))", + " │ │ │ └─TableFullScan 10000.00 cop[tikv] table:t1, partition:p0 keep order:false, stats:pseudo", + " │ │ ├─TableReader 9980.01 root data:Selection", + " │ │ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t1.a)), not(isnull(test.t1.b))", + " │ │ │ └─TableFullScan 10000.00 cop[tikv] table:t1, partition:p1 keep order:false, stats:pseudo", + " │ │ ├─TableReader 9980.01 root data:Selection", + " │ │ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t1.a)), not(isnull(test.t1.b))", + " │ │ │ └─TableFullScan 10000.00 cop[tikv] table:t1, partition:p2 keep order:false, stats:pseudo", + " │ │ └─TableReader 9980.01 root data:Selection", + " │ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t1.a)), not(isnull(test.t1.b))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t1, partition:p3 keep order:false, stats:pseudo", + " │ └─PartitionUnion(Probe) 39960.00 root ", + " │ ├─TableReader 9990.00 root data:Selection", + " │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.b))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t4, partition:p0 keep order:false, stats:pseudo", + " │ ├─TableReader 9990.00 root data:Selection", + " │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.b))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t4, partition:p1 keep order:false, stats:pseudo", + " │ ├─TableReader 9990.00 root data:Selection", + " │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.b))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t4, partition:p2 keep order:false, stats:pseudo", + " │ └─TableReader 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t4, partition:p3 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 46828.12 root inner join, equal:[eq(test.t5.a, test.t2.a)]", + " ├─HashJoin(Build) 37462.50 root inner join, equal:[eq(test.t6.b, test.t5.b)]", + " │ ├─PartitionUnion(Build) 29970.00 root ", + " │ │ ├─TableReader 9990.00 root data:Selection", + " │ │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t6.b))", + " │ │ │ └─TableFullScan 10000.00 cop[tikv] table:t6, partition:p0 keep order:false, stats:pseudo", + " │ │ ├─TableReader 9990.00 root data:Selection", + " │ │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t6.b))", + " │ │ │ └─TableFullScan 10000.00 cop[tikv] table:t6, partition:p1 keep order:false, stats:pseudo", + " │ │ └─TableReader 9990.00 root data:Selection", + " │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t6.b))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t6, partition:p2 keep order:false, stats:pseudo", + " │ └─PartitionUnion(Probe) 49900.05 root ", + " │ ├─TableReader 9980.01 root data:Selection", + " │ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t5.a)), not(isnull(test.t5.b))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t5, partition:p0 keep order:false, stats:pseudo", + " │ ├─TableReader 9980.01 root data:Selection", + " │ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t5.a)), not(isnull(test.t5.b))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t5, partition:p1 keep order:false, stats:pseudo", + " │ ├─TableReader 9980.01 root data:Selection", + " │ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t5.a)), not(isnull(test.t5.b))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t5, partition:p2 keep order:false, stats:pseudo", + " │ ├─TableReader 9980.01 root data:Selection", + " │ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t5.a)), not(isnull(test.t5.b))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t5, partition:p3 keep order:false, stats:pseudo", + " │ └─TableReader 9980.01 root data:Selection", + " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t5.a)), not(isnull(test.t5.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t5, partition:p4 keep order:false, stats:pseudo", + " └─PartitionUnion(Probe) 49950.00 root ", + " ├─TableReader 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2, partition:p0 keep order:false, stats:pseudo", + " ├─TableReader 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2, partition:p1 keep order:false, stats:pseudo", + " ├─TableReader 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2, partition:p2 keep order:false, stats:pseudo", + " ├─TableReader 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2, partition:p3 keep order:false, stats:pseudo", + " └─TableReader 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", + " └─TableFullScan 10000.00 cop[tikv] table:t2, partition:p4 keep order:false, stats:pseudo" + ], + "Warning": [ + "Warning 1815 We can only use one leading hint at most, when multiple leading hints are used, all leading hints will be invalid" + ] + }, + { + "SQL": "select /*+ leading(t5, t6, t3, t4) */ * from t2 left join (t1 join t3 on t1.a=t3.a join t4 on t3.b = t4.b) on t2.b=t1.b join t5 on t2.a = t5.a join t6 on t5.b=t6.b;", + "Plan": [ + "Projection 54821.83 root test.t2.a, test.t2.b, test.t1.a, test.t1.b, test.t3.a, test.t3.b, test.t4.a, test.t4.b, test.t5.a, test.t5.b, test.t6.a, test.t6.b", + "└─HashJoin 54821.83 root left outer join, equal:[eq(test.t2.b, test.t1.b)]", + " ├─Projection(Build) 46781.30 root test.t1.a, test.t1.b, test.t3.a, test.t3.b, test.t4.a, test.t4.b", + " │ └─HashJoin 46781.30 root inner join, equal:[eq(test.t3.b, test.t4.b)]", + " │ ├─HashJoin(Build) 37425.04 root inner join, equal:[eq(test.t3.a, test.t1.a)]", + " │ │ ├─PartitionUnion(Build) 29940.03 root ", + " │ │ │ ├─TableReader 9980.01 root data:Selection", + " │ │ │ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t3.a)), not(isnull(test.t3.b))", + " │ │ │ │ └─TableFullScan 10000.00 cop[tikv] table:t3, partition:p0 keep order:false, stats:pseudo", + " │ │ │ ├─TableReader 9980.01 root data:Selection", + " │ │ │ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t3.a)), not(isnull(test.t3.b))", + " │ │ │ │ └─TableFullScan 10000.00 cop[tikv] table:t3, partition:p1 keep order:false, stats:pseudo", + " │ │ │ └─TableReader 9980.01 root data:Selection", + " │ │ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t3.a)), not(isnull(test.t3.b))", + " │ │ │ └─TableFullScan 10000.00 cop[tikv] table:t3, partition:p2 keep order:false, stats:pseudo", + " │ │ └─PartitionUnion(Probe) 39920.04 root ", + " │ │ ├─TableReader 9980.01 root data:Selection", + " │ │ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t1.a)), not(isnull(test.t1.b))", + " │ │ │ └─TableFullScan 10000.00 cop[tikv] table:t1, partition:p0 keep order:false, stats:pseudo", + " │ │ ├─TableReader 9980.01 root data:Selection", + " │ │ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t1.a)), not(isnull(test.t1.b))", + " │ │ │ └─TableFullScan 10000.00 cop[tikv] table:t1, partition:p1 keep order:false, stats:pseudo", + " │ │ ├─TableReader 9980.01 root data:Selection", + " │ │ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t1.a)), not(isnull(test.t1.b))", + " │ │ │ └─TableFullScan 10000.00 cop[tikv] table:t1, partition:p2 keep order:false, stats:pseudo", + " │ │ └─TableReader 9980.01 root data:Selection", + " │ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t1.a)), not(isnull(test.t1.b))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t1, partition:p3 keep order:false, stats:pseudo", + " │ └─PartitionUnion(Probe) 39960.00 root ", + " │ ├─TableReader 9990.00 root data:Selection", + " │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.b))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t4, partition:p0 keep order:false, stats:pseudo", + " │ ├─TableReader 9990.00 root data:Selection", + " │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.b))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t4, partition:p1 keep order:false, stats:pseudo", + " │ ├─TableReader 9990.00 root data:Selection", + " │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.b))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t4, partition:p2 keep order:false, stats:pseudo", + " │ └─TableReader 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t4, partition:p3 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 46828.12 root inner join, equal:[eq(test.t5.a, test.t2.a)]", + " ├─HashJoin(Build) 37462.50 root inner join, equal:[eq(test.t6.b, test.t5.b)]", + " │ ├─PartitionUnion(Build) 29970.00 root ", + " │ │ ├─TableReader 9990.00 root data:Selection", + " │ │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t6.b))", + " │ │ │ └─TableFullScan 10000.00 cop[tikv] table:t6, partition:p0 keep order:false, stats:pseudo", + " │ │ ├─TableReader 9990.00 root data:Selection", + " │ │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t6.b))", + " │ │ │ └─TableFullScan 10000.00 cop[tikv] table:t6, partition:p1 keep order:false, stats:pseudo", + " │ │ └─TableReader 9990.00 root data:Selection", + " │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t6.b))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t6, partition:p2 keep order:false, stats:pseudo", + " │ └─PartitionUnion(Probe) 49900.05 root ", + " │ ├─TableReader 9980.01 root data:Selection", + " │ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t5.a)), not(isnull(test.t5.b))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t5, partition:p0 keep order:false, stats:pseudo", + " │ ├─TableReader 9980.01 root data:Selection", + " │ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t5.a)), not(isnull(test.t5.b))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t5, partition:p1 keep order:false, stats:pseudo", + " │ ├─TableReader 9980.01 root data:Selection", + " │ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t5.a)), not(isnull(test.t5.b))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t5, partition:p2 keep order:false, stats:pseudo", + " │ ├─TableReader 9980.01 root data:Selection", + " │ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t5.a)), not(isnull(test.t5.b))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t5, partition:p3 keep order:false, stats:pseudo", + " │ └─TableReader 9980.01 root data:Selection", + " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t5.a)), not(isnull(test.t5.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t5, partition:p4 keep order:false, stats:pseudo", + " └─PartitionUnion(Probe) 49950.00 root ", + " ├─TableReader 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2, partition:p0 keep order:false, stats:pseudo", + " ├─TableReader 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2, partition:p1 keep order:false, stats:pseudo", + " ├─TableReader 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2, partition:p2 keep order:false, stats:pseudo", + " ├─TableReader 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2, partition:p3 keep order:false, stats:pseudo", + " └─TableReader 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", + " └─TableFullScan 10000.00 cop[tikv] table:t2, partition:p4 keep order:false, stats:pseudo" + ], + "Warning": [ + "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid", + "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" + ] + }, + { + "SQL": "select /*+ leading(t1, t2) */ * from t4 join t on t4.a=t.a right join t1 on t.a = t1.a join t2 on t1.b = t2.b join t3 on t2.b=t3.b;", + "Plan": [ + "Projection 46828.12 root test.t4.a, test.t4.b, test.t.a, test.t.b, test.t1.a, test.t1.b, test.t2.a, test.t2.b, test.t3.a, test.t3.b", + "└─HashJoin 46828.12 root right outer join, equal:[eq(test.t.a, test.t1.a)]", + " ├─Projection(Build) 37462.50 root test.t4.a, test.t4.b, test.t.a, test.t.b", + " │ └─HashJoin 37462.50 root inner join, equal:[eq(test.t.a, test.t4.a)]", + " │ ├─PartitionUnion(Build) 29970.00 root ", + " │ │ ├─TableReader 9990.00 root data:Selection", + " │ │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t.a))", + " │ │ │ └─TableFullScan 10000.00 cop[tikv] table:t, partition:p0 keep order:false, stats:pseudo", + " │ │ ├─TableReader 9990.00 root data:Selection", + " │ │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t.a))", + " │ │ │ └─TableFullScan 10000.00 cop[tikv] table:t, partition:p1 keep order:false, stats:pseudo", + " │ │ └─TableReader 9990.00 root data:Selection", + " │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t.a))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t, partition:p2 keep order:false, stats:pseudo", + " │ └─PartitionUnion(Probe) 39960.00 root ", + " │ ├─TableReader 9990.00 root data:Selection", + " │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.a))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t4, partition:p0 keep order:false, stats:pseudo", + " │ ├─TableReader 9990.00 root data:Selection", + " │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.a))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t4, partition:p1 keep order:false, stats:pseudo", + " │ ├─TableReader 9990.00 root data:Selection", + " │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.a))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t4, partition:p2 keep order:false, stats:pseudo", + " │ └─TableReader 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.a))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t4, partition:p3 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 39960.00 root inner join, equal:[eq(test.t2.b, test.t1.b)]", + " ├─HashJoin(Build) 37462.50 root inner join, equal:[eq(test.t3.b, test.t2.b)]", + " │ ├─PartitionUnion(Build) 29970.00 root ", + " │ │ ├─TableReader 9990.00 root data:Selection", + " │ │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.b))", + " │ │ │ └─TableFullScan 10000.00 cop[tikv] table:t3, partition:p0 keep order:false, stats:pseudo", + " │ │ ├─TableReader 9990.00 root data:Selection", + " │ │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.b))", + " │ │ │ └─TableFullScan 10000.00 cop[tikv] table:t3, partition:p1 keep order:false, stats:pseudo", + " │ │ └─TableReader 9990.00 root data:Selection", + " │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.b))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t3, partition:p2 keep order:false, stats:pseudo", + " │ └─PartitionUnion(Probe) 49950.00 root ", + " │ ├─TableReader 9990.00 root data:Selection", + " │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.b))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t2, partition:p0 keep order:false, stats:pseudo", + " │ ├─TableReader 9990.00 root data:Selection", + " │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.b))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t2, partition:p1 keep order:false, stats:pseudo", + " │ ├─TableReader 9990.00 root data:Selection", + " │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.b))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t2, partition:p2 keep order:false, stats:pseudo", + " │ ├─TableReader 9990.00 root data:Selection", + " │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.b))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t2, partition:p3 keep order:false, stats:pseudo", + " │ └─TableReader 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2, partition:p4 keep order:false, stats:pseudo", + " └─PartitionUnion(Probe) 39960.00 root ", + " ├─TableReader 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t1.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t1, partition:p0 keep order:false, stats:pseudo", + " ├─TableReader 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t1.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t1, partition:p1 keep order:false, stats:pseudo", + " ├─TableReader 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t1.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t1, partition:p2 keep order:false, stats:pseudo", + " └─TableReader 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t1.b))", + " └─TableFullScan 10000.00 cop[tikv] table:t1, partition:p3 keep order:false, stats:pseudo" + ], + "Warning": [ + "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" + ] + }, + { + "SQL": "select /*+ leading(t2, t3) */ * from t4 join t on t4.a=t.a right join t1 on t.a = t1.a join t2 on t1.b = t2.b join t3 on t2.b=t3.b;", + "Plan": [ + "Projection 46828.12 root test.t4.a, test.t4.b, test.t.a, test.t.b, test.t1.a, test.t1.b, test.t2.a, test.t2.b, test.t3.a, test.t3.b", + "└─HashJoin 46828.12 root right outer join, equal:[eq(test.t.a, test.t1.a)]", + " ├─Projection(Build) 37462.50 root test.t4.a, test.t4.b, test.t.a, test.t.b", + " │ └─HashJoin 37462.50 root inner join, equal:[eq(test.t.a, test.t4.a)]", + " │ ├─PartitionUnion(Build) 29970.00 root ", + " │ │ ├─TableReader 9990.00 root data:Selection", + " │ │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t.a))", + " │ │ │ └─TableFullScan 10000.00 cop[tikv] table:t, partition:p0 keep order:false, stats:pseudo", + " │ │ ├─TableReader 9990.00 root data:Selection", + " │ │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t.a))", + " │ │ │ └─TableFullScan 10000.00 cop[tikv] table:t, partition:p1 keep order:false, stats:pseudo", + " │ │ └─TableReader 9990.00 root data:Selection", + " │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t.a))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t, partition:p2 keep order:false, stats:pseudo", + " │ └─PartitionUnion(Probe) 39960.00 root ", + " │ ├─TableReader 9990.00 root data:Selection", + " │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.a))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t4, partition:p0 keep order:false, stats:pseudo", + " │ ├─TableReader 9990.00 root data:Selection", + " │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.a))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t4, partition:p1 keep order:false, stats:pseudo", + " │ ├─TableReader 9990.00 root data:Selection", + " │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.a))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t4, partition:p2 keep order:false, stats:pseudo", + " │ └─TableReader 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.a))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t4, partition:p3 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 39960.00 root inner join, equal:[eq(test.t2.b, test.t1.b)]", + " ├─HashJoin(Build) 37462.50 root inner join, equal:[eq(test.t3.b, test.t2.b)]", + " │ ├─PartitionUnion(Build) 29970.00 root ", + " │ │ ├─TableReader 9990.00 root data:Selection", + " │ │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.b))", + " │ │ │ └─TableFullScan 10000.00 cop[tikv] table:t3, partition:p0 keep order:false, stats:pseudo", + " │ │ ├─TableReader 9990.00 root data:Selection", + " │ │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.b))", + " │ │ │ └─TableFullScan 10000.00 cop[tikv] table:t3, partition:p1 keep order:false, stats:pseudo", + " │ │ └─TableReader 9990.00 root data:Selection", + " │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.b))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t3, partition:p2 keep order:false, stats:pseudo", + " │ └─PartitionUnion(Probe) 49950.00 root ", + " │ ├─TableReader 9990.00 root data:Selection", + " │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.b))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t2, partition:p0 keep order:false, stats:pseudo", + " │ ├─TableReader 9990.00 root data:Selection", + " │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.b))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t2, partition:p1 keep order:false, stats:pseudo", + " │ ├─TableReader 9990.00 root data:Selection", + " │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.b))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t2, partition:p2 keep order:false, stats:pseudo", + " │ ├─TableReader 9990.00 root data:Selection", + " │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.b))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t2, partition:p3 keep order:false, stats:pseudo", + " │ └─TableReader 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2, partition:p4 keep order:false, stats:pseudo", + " └─PartitionUnion(Probe) 39960.00 root ", + " ├─TableReader 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t1.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t1, partition:p0 keep order:false, stats:pseudo", + " ├─TableReader 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t1.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t1, partition:p1 keep order:false, stats:pseudo", + " ├─TableReader 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t1.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t1, partition:p2 keep order:false, stats:pseudo", + " └─TableReader 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t1.b))", + " └─TableFullScan 10000.00 cop[tikv] table:t1, partition:p3 keep order:false, stats:pseudo" + ], + "Warning": [ + "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" + ] + }, + { + "SQL": "select /*+ leading(t1, t3) */ * from t4 join t on t4.a=t.a right join t1 on t.a = t1.a join t2 on t1.b = t2.b join t3 on t2.b=t3.b;", + "Plan": [ + "Projection 46828.12 root test.t4.a, test.t4.b, test.t.a, test.t.b, test.t1.a, test.t1.b, test.t2.a, test.t2.b, test.t3.a, test.t3.b", + "└─HashJoin 46828.12 root right outer join, equal:[eq(test.t.a, test.t1.a)]", + " ├─Projection(Build) 37462.50 root test.t4.a, test.t4.b, test.t.a, test.t.b", + " │ └─HashJoin 37462.50 root inner join, equal:[eq(test.t.a, test.t4.a)]", + " │ ├─PartitionUnion(Build) 29970.00 root ", + " │ │ ├─TableReader 9990.00 root data:Selection", + " │ │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t.a))", + " │ │ │ └─TableFullScan 10000.00 cop[tikv] table:t, partition:p0 keep order:false, stats:pseudo", + " │ │ ├─TableReader 9990.00 root data:Selection", + " │ │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t.a))", + " │ │ │ └─TableFullScan 10000.00 cop[tikv] table:t, partition:p1 keep order:false, stats:pseudo", + " │ │ └─TableReader 9990.00 root data:Selection", + " │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t.a))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t, partition:p2 keep order:false, stats:pseudo", + " │ └─PartitionUnion(Probe) 39960.00 root ", + " │ ├─TableReader 9990.00 root data:Selection", + " │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.a))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t4, partition:p0 keep order:false, stats:pseudo", + " │ ├─TableReader 9990.00 root data:Selection", + " │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.a))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t4, partition:p1 keep order:false, stats:pseudo", + " │ ├─TableReader 9990.00 root data:Selection", + " │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.a))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t4, partition:p2 keep order:false, stats:pseudo", + " │ └─TableReader 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.a))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t4, partition:p3 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 39960.00 root inner join, equal:[eq(test.t2.b, test.t1.b)]", + " ├─HashJoin(Build) 37462.50 root inner join, equal:[eq(test.t3.b, test.t2.b)]", + " │ ├─PartitionUnion(Build) 29970.00 root ", + " │ │ ├─TableReader 9990.00 root data:Selection", + " │ │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.b))", + " │ │ │ └─TableFullScan 10000.00 cop[tikv] table:t3, partition:p0 keep order:false, stats:pseudo", + " │ │ ├─TableReader 9990.00 root data:Selection", + " │ │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.b))", + " │ │ │ └─TableFullScan 10000.00 cop[tikv] table:t3, partition:p1 keep order:false, stats:pseudo", + " │ │ └─TableReader 9990.00 root data:Selection", + " │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.b))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t3, partition:p2 keep order:false, stats:pseudo", + " │ └─PartitionUnion(Probe) 49950.00 root ", + " │ ├─TableReader 9990.00 root data:Selection", + " │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.b))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t2, partition:p0 keep order:false, stats:pseudo", + " │ ├─TableReader 9990.00 root data:Selection", + " │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.b))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t2, partition:p1 keep order:false, stats:pseudo", + " │ ├─TableReader 9990.00 root data:Selection", + " │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.b))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t2, partition:p2 keep order:false, stats:pseudo", + " │ ├─TableReader 9990.00 root data:Selection", + " │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.b))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t2, partition:p3 keep order:false, stats:pseudo", + " │ └─TableReader 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2, partition:p4 keep order:false, stats:pseudo", + " └─PartitionUnion(Probe) 39960.00 root ", + " ├─TableReader 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t1.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t1, partition:p0 keep order:false, stats:pseudo", + " ├─TableReader 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t1.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t1, partition:p1 keep order:false, stats:pseudo", + " ├─TableReader 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t1.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t1, partition:p2 keep order:false, stats:pseudo", + " └─TableReader 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t1.b))", + " └─TableFullScan 10000.00 cop[tikv] table:t1, partition:p3 keep order:false, stats:pseudo" + ], + "Warning": [ + "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" + ] + }, + { + "SQL": "select /*+ leading(t3) */ * from t2 right join (t1 left join t3 on t1.a=t3.a) on t2.b=t1.b;", + "Plan": [ + "HashJoin 50000.00 root right outer join, equal:[eq(test.t2.b, test.t1.b)]", + "├─HashJoin(Build) 40000.00 root left outer join, equal:[eq(test.t1.a, test.t3.a)]", + "│ ├─PartitionUnion(Build) 29970.00 root ", + "│ │ ├─TableReader 9990.00 root data:Selection", + "│ │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.a))", + "│ │ │ └─TableFullScan 10000.00 cop[tikv] table:t3, partition:p0 keep order:false, stats:pseudo", + "│ │ ├─TableReader 9990.00 root data:Selection", + "│ │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.a))", + "│ │ │ └─TableFullScan 10000.00 cop[tikv] table:t3, partition:p1 keep order:false, stats:pseudo", + "│ │ └─TableReader 9990.00 root data:Selection", + "│ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.a))", + "│ │ └─TableFullScan 10000.00 cop[tikv] table:t3, partition:p2 keep order:false, stats:pseudo", + "│ └─PartitionUnion(Probe) 40000.00 root ", + "│ ├─TableReader 10000.00 root data:TableFullScan", + "│ │ └─TableFullScan 10000.00 cop[tikv] table:t1, partition:p0 keep order:false, stats:pseudo", + "│ ├─TableReader 10000.00 root data:TableFullScan", + "│ │ └─TableFullScan 10000.00 cop[tikv] table:t1, partition:p1 keep order:false, stats:pseudo", + "│ ├─TableReader 10000.00 root data:TableFullScan", + "│ │ └─TableFullScan 10000.00 cop[tikv] table:t1, partition:p2 keep order:false, stats:pseudo", + "│ └─TableReader 10000.00 root data:TableFullScan", + "│ └─TableFullScan 10000.00 cop[tikv] table:t1, partition:p3 keep order:false, stats:pseudo", + "└─PartitionUnion(Probe) 49950.00 root ", + " ├─TableReader 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2, partition:p0 keep order:false, stats:pseudo", + " ├─TableReader 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2, partition:p1 keep order:false, stats:pseudo", + " ├─TableReader 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2, partition:p2 keep order:false, stats:pseudo", + " ├─TableReader 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2, partition:p3 keep order:false, stats:pseudo", + " └─TableReader 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t2.b))", + " └─TableFullScan 10000.00 cop[tikv] table:t2, partition:p4 keep order:false, stats:pseudo" + ], + "Warning": [ + "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" + ] + }, + { + "SQL": "select /*+ leading(t2, t1, t3) */ * from t2 right join (t1 left join t3 on t1.a=t3.a) on t2.b=t1.b;", + "Plan": [ + "HashJoin 50000.00 root right outer join, equal:[eq(test.t2.b, test.t1.b)]", + "├─HashJoin(Build) 40000.00 root left outer join, equal:[eq(test.t1.a, test.t3.a)]", + "│ ├─PartitionUnion(Build) 29970.00 root ", + "│ │ ├─TableReader 9990.00 root data:Selection", + "│ │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.a))", + "│ │ │ └─TableFullScan 10000.00 cop[tikv] table:t3, partition:p0 keep order:false, stats:pseudo", + "│ │ ├─TableReader 9990.00 root data:Selection", + "│ │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.a))", + "│ │ │ └─TableFullScan 10000.00 cop[tikv] table:t3, partition:p1 keep order:false, stats:pseudo", + "│ │ └─TableReader 9990.00 root data:Selection", + "│ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.a))", + "│ │ └─TableFullScan 10000.00 cop[tikv] table:t3, partition:p2 keep order:false, stats:pseudo", + "│ └─PartitionUnion(Probe) 40000.00 root ", + "│ ├─TableReader 10000.00 root data:TableFullScan", + "│ │ └─TableFullScan 10000.00 cop[tikv] table:t1, partition:p0 keep order:false, stats:pseudo", + "│ ├─TableReader 10000.00 root data:TableFullScan", + "│ │ └─TableFullScan 10000.00 cop[tikv] table:t1, partition:p1 keep order:false, stats:pseudo", + "│ ├─TableReader 10000.00 root data:TableFullScan", + "│ │ └─TableFullScan 10000.00 cop[tikv] table:t1, partition:p2 keep order:false, stats:pseudo", + "│ └─TableReader 10000.00 root data:TableFullScan", + "│ └─TableFullScan 10000.00 cop[tikv] table:t1, partition:p3 keep order:false, stats:pseudo", + "└─PartitionUnion(Probe) 49950.00 root ", + " ├─TableReader 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2, partition:p0 keep order:false, stats:pseudo", + " ├─TableReader 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2, partition:p1 keep order:false, stats:pseudo", + " ├─TableReader 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2, partition:p2 keep order:false, stats:pseudo", + " ├─TableReader 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2, partition:p3 keep order:false, stats:pseudo", + " └─TableReader 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t2.b))", + " └─TableFullScan 10000.00 cop[tikv] table:t2, partition:p4 keep order:false, stats:pseudo" + ], + "Warning": [ + "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" + ] + }, + { + "SQL": "select /*+ leading(t2, t3) */ * from t2 right join (t1 join t3 on t1.a=t3.a join t4 on t3.b = t4.b) on t2.b=t1.b;", + "Plan": [ + "Projection 58476.62 root test.t2.a, test.t2.b, test.t1.a, test.t1.b, test.t3.a, test.t3.b, test.t4.a, test.t4.b", + "└─HashJoin 58476.62 root right outer join, equal:[eq(test.t2.b, test.t1.b)]", + " ├─PartitionUnion(Build) 49950.00 root ", + " │ ├─TableReader 9990.00 root data:Selection", + " │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.b))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t2, partition:p0 keep order:false, stats:pseudo", + " │ ├─TableReader 9990.00 root data:Selection", + " │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.b))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t2, partition:p1 keep order:false, stats:pseudo", + " │ ├─TableReader 9990.00 root data:Selection", + " │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.b))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t2, partition:p2 keep order:false, stats:pseudo", + " │ ├─TableReader 9990.00 root data:Selection", + " │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.b))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t2, partition:p3 keep order:false, stats:pseudo", + " │ └─TableReader 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2, partition:p4 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 46781.30 root inner join, equal:[eq(test.t3.b, test.t4.b)]", + " ├─HashJoin(Build) 37425.04 root inner join, equal:[eq(test.t3.a, test.t1.a)]", + " │ ├─PartitionUnion(Build) 29940.03 root ", + " │ │ ├─TableReader 9980.01 root data:Selection", + " │ │ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t3.a)), not(isnull(test.t3.b))", + " │ │ │ └─TableFullScan 10000.00 cop[tikv] table:t3, partition:p0 keep order:false, stats:pseudo", + " │ │ ├─TableReader 9980.01 root data:Selection", + " │ │ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t3.a)), not(isnull(test.t3.b))", + " │ │ │ └─TableFullScan 10000.00 cop[tikv] table:t3, partition:p1 keep order:false, stats:pseudo", + " │ │ └─TableReader 9980.01 root data:Selection", + " │ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t3.a)), not(isnull(test.t3.b))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t3, partition:p2 keep order:false, stats:pseudo", + " │ └─PartitionUnion(Probe) 39960.00 root ", + " │ ├─TableReader 9990.00 root data:Selection", + " │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t1, partition:p0 keep order:false, stats:pseudo", + " │ ├─TableReader 9990.00 root data:Selection", + " │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t1, partition:p1 keep order:false, stats:pseudo", + " │ ├─TableReader 9990.00 root data:Selection", + " │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t1, partition:p2 keep order:false, stats:pseudo", + " │ └─TableReader 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t1, partition:p3 keep order:false, stats:pseudo", + " └─PartitionUnion(Probe) 39960.00 root ", + " ├─TableReader 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t4, partition:p0 keep order:false, stats:pseudo", + " ├─TableReader 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t4, partition:p1 keep order:false, stats:pseudo", + " ├─TableReader 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t4, partition:p2 keep order:false, stats:pseudo", + " └─TableReader 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t4.b))", + " └─TableFullScan 10000.00 cop[tikv] table:t4, partition:p3 keep order:false, stats:pseudo" + ], + "Warning": [ + "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" + ] + }, + { + "SQL": "select /*+ leading(t3, t4) */ * from t2 right join (t1 join t3 on t1.a=t3.a join t4 on t3.b = t4.b) on t2.b=t1.b;", + "Plan": [ + "Projection 58476.62 root test.t2.a, test.t2.b, test.t1.a, test.t1.b, test.t3.a, test.t3.b, test.t4.a, test.t4.b", + "└─HashJoin 58476.62 root right outer join, equal:[eq(test.t2.b, test.t1.b)]", + " ├─PartitionUnion(Build) 49950.00 root ", + " │ ├─TableReader 9990.00 root data:Selection", + " │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.b))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t2, partition:p0 keep order:false, stats:pseudo", + " │ ├─TableReader 9990.00 root data:Selection", + " │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.b))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t2, partition:p1 keep order:false, stats:pseudo", + " │ ├─TableReader 9990.00 root data:Selection", + " │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.b))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t2, partition:p2 keep order:false, stats:pseudo", + " │ ├─TableReader 9990.00 root data:Selection", + " │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.b))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t2, partition:p3 keep order:false, stats:pseudo", + " │ └─TableReader 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2, partition:p4 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 46781.30 root inner join, equal:[eq(test.t3.b, test.t4.b)]", + " ├─HashJoin(Build) 37425.04 root inner join, equal:[eq(test.t3.a, test.t1.a)]", + " │ ├─PartitionUnion(Build) 29940.03 root ", + " │ │ ├─TableReader 9980.01 root data:Selection", + " │ │ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t3.a)), not(isnull(test.t3.b))", + " │ │ │ └─TableFullScan 10000.00 cop[tikv] table:t3, partition:p0 keep order:false, stats:pseudo", + " │ │ ├─TableReader 9980.01 root data:Selection", + " │ │ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t3.a)), not(isnull(test.t3.b))", + " │ │ │ └─TableFullScan 10000.00 cop[tikv] table:t3, partition:p1 keep order:false, stats:pseudo", + " │ │ └─TableReader 9980.01 root data:Selection", + " │ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t3.a)), not(isnull(test.t3.b))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t3, partition:p2 keep order:false, stats:pseudo", + " │ └─PartitionUnion(Probe) 39960.00 root ", + " │ ├─TableReader 9990.00 root data:Selection", + " │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t1, partition:p0 keep order:false, stats:pseudo", + " │ ├─TableReader 9990.00 root data:Selection", + " │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t1, partition:p1 keep order:false, stats:pseudo", + " │ ├─TableReader 9990.00 root data:Selection", + " │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t1, partition:p2 keep order:false, stats:pseudo", + " │ └─TableReader 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t1, partition:p3 keep order:false, stats:pseudo", + " └─PartitionUnion(Probe) 39960.00 root ", + " ├─TableReader 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t4, partition:p0 keep order:false, stats:pseudo", + " ├─TableReader 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t4, partition:p1 keep order:false, stats:pseudo", + " ├─TableReader 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t4, partition:p2 keep order:false, stats:pseudo", + " └─TableReader 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t4.b))", + " └─TableFullScan 10000.00 cop[tikv] table:t4, partition:p3 keep order:false, stats:pseudo" + ], + "Warning": [ + "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" + ] + }, + { + "SQL": "select /*+ leading(t3, t4) */ * from t2 right join (t1 join t3 on t1.a=t3.a join t4 on t3.b = t4.b) on t2.b=t1.b join t5 on t2.a = t5.a join t6 on t5.b=t6.b;", + "Plan": [ + "Projection 54876.71 root test.t2.a, test.t2.b, test.t1.a, test.t1.b, test.t3.a, test.t3.b, test.t4.a, test.t4.b, test.t5.a, test.t5.b, test.t6.a, test.t6.b", + "└─HashJoin 54876.71 root inner join, equal:[eq(test.t5.b, test.t6.b)]", + " ├─PartitionUnion(Build) 29970.00 root ", + " │ ├─TableReader 9990.00 root data:Selection", + " │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t6.b))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t6, partition:p0 keep order:false, stats:pseudo", + " │ ├─TableReader 9990.00 root data:Selection", + " │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t6.b))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t6, partition:p1 keep order:false, stats:pseudo", + " │ └─TableReader 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t6.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t6, partition:p2 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 73095.78 root inner join, equal:[eq(test.t2.a, test.t5.a)]", + " ├─PartitionUnion(Build) 49900.05 root ", + " │ ├─TableReader 9980.01 root data:Selection", + " │ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t5.a)), not(isnull(test.t5.b))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t5, partition:p0 keep order:false, stats:pseudo", + " │ ├─TableReader 9980.01 root data:Selection", + " │ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t5.a)), not(isnull(test.t5.b))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t5, partition:p1 keep order:false, stats:pseudo", + " │ ├─TableReader 9980.01 root data:Selection", + " │ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t5.a)), not(isnull(test.t5.b))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t5, partition:p2 keep order:false, stats:pseudo", + " │ ├─TableReader 9980.01 root data:Selection", + " │ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t5.a)), not(isnull(test.t5.b))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t5, partition:p3 keep order:false, stats:pseudo", + " │ └─TableReader 9980.01 root data:Selection", + " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t5.a)), not(isnull(test.t5.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t5, partition:p4 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 58476.62 root inner join, equal:[eq(test.t1.b, test.t2.b)]", + " ├─HashJoin(Build) 46781.30 root inner join, equal:[eq(test.t3.b, test.t4.b)]", + " │ ├─HashJoin(Build) 37425.04 root inner join, equal:[eq(test.t3.a, test.t1.a)]", + " │ │ ├─PartitionUnion(Build) 29940.03 root ", + " │ │ │ ├─TableReader 9980.01 root data:Selection", + " │ │ │ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t3.a)), not(isnull(test.t3.b))", + " │ │ │ │ └─TableFullScan 10000.00 cop[tikv] table:t3, partition:p0 keep order:false, stats:pseudo", + " │ │ │ ├─TableReader 9980.01 root data:Selection", + " │ │ │ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t3.a)), not(isnull(test.t3.b))", + " │ │ │ │ └─TableFullScan 10000.00 cop[tikv] table:t3, partition:p1 keep order:false, stats:pseudo", + " │ │ │ └─TableReader 9980.01 root data:Selection", + " │ │ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t3.a)), not(isnull(test.t3.b))", + " │ │ │ └─TableFullScan 10000.00 cop[tikv] table:t3, partition:p2 keep order:false, stats:pseudo", + " │ │ └─PartitionUnion(Probe) 39920.04 root ", + " │ │ ├─TableReader 9980.01 root data:Selection", + " │ │ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t1.a)), not(isnull(test.t1.b))", + " │ │ │ └─TableFullScan 10000.00 cop[tikv] table:t1, partition:p0 keep order:false, stats:pseudo", + " │ │ ├─TableReader 9980.01 root data:Selection", + " │ │ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t1.a)), not(isnull(test.t1.b))", + " │ │ │ └─TableFullScan 10000.00 cop[tikv] table:t1, partition:p1 keep order:false, stats:pseudo", + " │ │ ├─TableReader 9980.01 root data:Selection", + " │ │ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t1.a)), not(isnull(test.t1.b))", + " │ │ │ └─TableFullScan 10000.00 cop[tikv] table:t1, partition:p2 keep order:false, stats:pseudo", + " │ │ └─TableReader 9980.01 root data:Selection", + " │ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t1.a)), not(isnull(test.t1.b))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t1, partition:p3 keep order:false, stats:pseudo", + " │ └─PartitionUnion(Probe) 39960.00 root ", + " │ ├─TableReader 9990.00 root data:Selection", + " │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.b))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t4, partition:p0 keep order:false, stats:pseudo", + " │ ├─TableReader 9990.00 root data:Selection", + " │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.b))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t4, partition:p1 keep order:false, stats:pseudo", + " │ ├─TableReader 9990.00 root data:Selection", + " │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.b))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t4, partition:p2 keep order:false, stats:pseudo", + " │ └─TableReader 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t4, partition:p3 keep order:false, stats:pseudo", + " └─PartitionUnion(Probe) 49900.05 root ", + " ├─TableReader 9980.01 root data:Selection", + " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t2.a)), not(isnull(test.t2.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2, partition:p0 keep order:false, stats:pseudo", + " ├─TableReader 9980.01 root data:Selection", + " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t2.a)), not(isnull(test.t2.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2, partition:p1 keep order:false, stats:pseudo", + " ├─TableReader 9980.01 root data:Selection", + " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t2.a)), not(isnull(test.t2.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2, partition:p2 keep order:false, stats:pseudo", + " ├─TableReader 9980.01 root data:Selection", + " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t2.a)), not(isnull(test.t2.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2, partition:p3 keep order:false, stats:pseudo", + " └─TableReader 9980.01 root data:Selection", + " └─Selection 9980.01 cop[tikv] not(isnull(test.t2.a)), not(isnull(test.t2.b))", + " └─TableFullScan 10000.00 cop[tikv] table:t2, partition:p4 keep order:false, stats:pseudo" + ], + "Warning": [ + "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" + ] + }, + { + "SQL": "select /*+ leading(t3, t4) leading(t5, t6) */ * from t2 right join (t1 join t3 on t1.a=t3.a join t4 on t3.b = t4.b) on t2.b=t1.b join t5 on t2.a = t5.a join t6 on t5.b=t6.b;", + "Plan": [ + "Projection 54876.71 root test.t2.a, test.t2.b, test.t1.a, test.t1.b, test.t3.a, test.t3.b, test.t4.a, test.t4.b, test.t5.a, test.t5.b, test.t6.a, test.t6.b", + "└─HashJoin 54876.71 root inner join, equal:[eq(test.t5.b, test.t6.b)]", + " ├─PartitionUnion(Build) 29970.00 root ", + " │ ├─TableReader 9990.00 root data:Selection", + " │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t6.b))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t6, partition:p0 keep order:false, stats:pseudo", + " │ ├─TableReader 9990.00 root data:Selection", + " │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t6.b))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t6, partition:p1 keep order:false, stats:pseudo", + " │ └─TableReader 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t6.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t6, partition:p2 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 73095.78 root inner join, equal:[eq(test.t2.a, test.t5.a)]", + " ├─PartitionUnion(Build) 49900.05 root ", + " │ ├─TableReader 9980.01 root data:Selection", + " │ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t5.a)), not(isnull(test.t5.b))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t5, partition:p0 keep order:false, stats:pseudo", + " │ ├─TableReader 9980.01 root data:Selection", + " │ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t5.a)), not(isnull(test.t5.b))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t5, partition:p1 keep order:false, stats:pseudo", + " │ ├─TableReader 9980.01 root data:Selection", + " │ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t5.a)), not(isnull(test.t5.b))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t5, partition:p2 keep order:false, stats:pseudo", + " │ ├─TableReader 9980.01 root data:Selection", + " │ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t5.a)), not(isnull(test.t5.b))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t5, partition:p3 keep order:false, stats:pseudo", + " │ └─TableReader 9980.01 root data:Selection", + " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t5.a)), not(isnull(test.t5.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t5, partition:p4 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 58476.62 root inner join, equal:[eq(test.t1.b, test.t2.b)]", + " ├─HashJoin(Build) 46781.30 root inner join, equal:[eq(test.t3.b, test.t4.b)]", + " │ ├─HashJoin(Build) 37425.04 root inner join, equal:[eq(test.t3.a, test.t1.a)]", + " │ │ ├─PartitionUnion(Build) 29940.03 root ", + " │ │ │ ├─TableReader 9980.01 root data:Selection", + " │ │ │ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t3.a)), not(isnull(test.t3.b))", + " │ │ │ │ └─TableFullScan 10000.00 cop[tikv] table:t3, partition:p0 keep order:false, stats:pseudo", + " │ │ │ ├─TableReader 9980.01 root data:Selection", + " │ │ │ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t3.a)), not(isnull(test.t3.b))", + " │ │ │ │ └─TableFullScan 10000.00 cop[tikv] table:t3, partition:p1 keep order:false, stats:pseudo", + " │ │ │ └─TableReader 9980.01 root data:Selection", + " │ │ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t3.a)), not(isnull(test.t3.b))", + " │ │ │ └─TableFullScan 10000.00 cop[tikv] table:t3, partition:p2 keep order:false, stats:pseudo", + " │ │ └─PartitionUnion(Probe) 39920.04 root ", + " │ │ ├─TableReader 9980.01 root data:Selection", + " │ │ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t1.a)), not(isnull(test.t1.b))", + " │ │ │ └─TableFullScan 10000.00 cop[tikv] table:t1, partition:p0 keep order:false, stats:pseudo", + " │ │ ├─TableReader 9980.01 root data:Selection", + " │ │ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t1.a)), not(isnull(test.t1.b))", + " │ │ │ └─TableFullScan 10000.00 cop[tikv] table:t1, partition:p1 keep order:false, stats:pseudo", + " │ │ ├─TableReader 9980.01 root data:Selection", + " │ │ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t1.a)), not(isnull(test.t1.b))", + " │ │ │ └─TableFullScan 10000.00 cop[tikv] table:t1, partition:p2 keep order:false, stats:pseudo", + " │ │ └─TableReader 9980.01 root data:Selection", + " │ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t1.a)), not(isnull(test.t1.b))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t1, partition:p3 keep order:false, stats:pseudo", + " │ └─PartitionUnion(Probe) 39960.00 root ", + " │ ├─TableReader 9990.00 root data:Selection", + " │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.b))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t4, partition:p0 keep order:false, stats:pseudo", + " │ ├─TableReader 9990.00 root data:Selection", + " │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.b))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t4, partition:p1 keep order:false, stats:pseudo", + " │ ├─TableReader 9990.00 root data:Selection", + " │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.b))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t4, partition:p2 keep order:false, stats:pseudo", + " │ └─TableReader 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t4, partition:p3 keep order:false, stats:pseudo", + " └─PartitionUnion(Probe) 49900.05 root ", + " ├─TableReader 9980.01 root data:Selection", + " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t2.a)), not(isnull(test.t2.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2, partition:p0 keep order:false, stats:pseudo", + " ├─TableReader 9980.01 root data:Selection", + " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t2.a)), not(isnull(test.t2.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2, partition:p1 keep order:false, stats:pseudo", + " ├─TableReader 9980.01 root data:Selection", + " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t2.a)), not(isnull(test.t2.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2, partition:p2 keep order:false, stats:pseudo", + " ├─TableReader 9980.01 root data:Selection", + " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t2.a)), not(isnull(test.t2.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2, partition:p3 keep order:false, stats:pseudo", + " └─TableReader 9980.01 root data:Selection", + " └─Selection 9980.01 cop[tikv] not(isnull(test.t2.a)), not(isnull(test.t2.b))", + " └─TableFullScan 10000.00 cop[tikv] table:t2, partition:p4 keep order:false, stats:pseudo" + ], + "Warning": [ + "Warning 1815 We can only use one leading hint at most, when multiple leading hints are used, all leading hints will be invalid" + ] + }, + { + "SQL": "select /*+ leading(t3, t4, t5, t6) */ * from t2 right join (t1 join t3 on t1.a=t3.a join t4 on t3.b = t4.b) on t2.b=t1.b join t5 on t2.a = t5.a join t6 on t5.b=t6.b;", + "Plan": [ + "Projection 54876.71 root test.t2.a, test.t2.b, test.t1.a, test.t1.b, test.t3.a, test.t3.b, test.t4.a, test.t4.b, test.t5.a, test.t5.b, test.t6.a, test.t6.b", + "└─HashJoin 54876.71 root inner join, equal:[eq(test.t5.b, test.t6.b)]", + " ├─PartitionUnion(Build) 29970.00 root ", + " │ ├─TableReader 9990.00 root data:Selection", + " │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t6.b))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t6, partition:p0 keep order:false, stats:pseudo", + " │ ├─TableReader 9990.00 root data:Selection", + " │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t6.b))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t6, partition:p1 keep order:false, stats:pseudo", + " │ └─TableReader 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t6.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t6, partition:p2 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 73095.78 root inner join, equal:[eq(test.t2.a, test.t5.a)]", + " ├─PartitionUnion(Build) 49900.05 root ", + " │ ├─TableReader 9980.01 root data:Selection", + " │ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t5.a)), not(isnull(test.t5.b))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t5, partition:p0 keep order:false, stats:pseudo", + " │ ├─TableReader 9980.01 root data:Selection", + " │ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t5.a)), not(isnull(test.t5.b))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t5, partition:p1 keep order:false, stats:pseudo", + " │ ├─TableReader 9980.01 root data:Selection", + " │ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t5.a)), not(isnull(test.t5.b))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t5, partition:p2 keep order:false, stats:pseudo", + " │ ├─TableReader 9980.01 root data:Selection", + " │ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t5.a)), not(isnull(test.t5.b))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t5, partition:p3 keep order:false, stats:pseudo", + " │ └─TableReader 9980.01 root data:Selection", + " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t5.a)), not(isnull(test.t5.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t5, partition:p4 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 58476.62 root inner join, equal:[eq(test.t1.b, test.t2.b)]", + " ├─HashJoin(Build) 46781.30 root inner join, equal:[eq(test.t3.b, test.t4.b)]", + " │ ├─HashJoin(Build) 37425.04 root inner join, equal:[eq(test.t3.a, test.t1.a)]", + " │ │ ├─PartitionUnion(Build) 29940.03 root ", + " │ │ │ ├─TableReader 9980.01 root data:Selection", + " │ │ │ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t3.a)), not(isnull(test.t3.b))", + " │ │ │ │ └─TableFullScan 10000.00 cop[tikv] table:t3, partition:p0 keep order:false, stats:pseudo", + " │ │ │ ├─TableReader 9980.01 root data:Selection", + " │ │ │ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t3.a)), not(isnull(test.t3.b))", + " │ │ │ │ └─TableFullScan 10000.00 cop[tikv] table:t3, partition:p1 keep order:false, stats:pseudo", + " │ │ │ └─TableReader 9980.01 root data:Selection", + " │ │ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t3.a)), not(isnull(test.t3.b))", + " │ │ │ └─TableFullScan 10000.00 cop[tikv] table:t3, partition:p2 keep order:false, stats:pseudo", + " │ │ └─PartitionUnion(Probe) 39920.04 root ", + " │ │ ├─TableReader 9980.01 root data:Selection", + " │ │ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t1.a)), not(isnull(test.t1.b))", + " │ │ │ └─TableFullScan 10000.00 cop[tikv] table:t1, partition:p0 keep order:false, stats:pseudo", + " │ │ ├─TableReader 9980.01 root data:Selection", + " │ │ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t1.a)), not(isnull(test.t1.b))", + " │ │ │ └─TableFullScan 10000.00 cop[tikv] table:t1, partition:p1 keep order:false, stats:pseudo", + " │ │ ├─TableReader 9980.01 root data:Selection", + " │ │ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t1.a)), not(isnull(test.t1.b))", + " │ │ │ └─TableFullScan 10000.00 cop[tikv] table:t1, partition:p2 keep order:false, stats:pseudo", + " │ │ └─TableReader 9980.01 root data:Selection", + " │ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t1.a)), not(isnull(test.t1.b))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t1, partition:p3 keep order:false, stats:pseudo", + " │ └─PartitionUnion(Probe) 39960.00 root ", + " │ ├─TableReader 9990.00 root data:Selection", + " │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.b))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t4, partition:p0 keep order:false, stats:pseudo", + " │ ├─TableReader 9990.00 root data:Selection", + " │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.b))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t4, partition:p1 keep order:false, stats:pseudo", + " │ ├─TableReader 9990.00 root data:Selection", + " │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.b))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t4, partition:p2 keep order:false, stats:pseudo", + " │ └─TableReader 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t4, partition:p3 keep order:false, stats:pseudo", + " └─PartitionUnion(Probe) 49900.05 root ", + " ├─TableReader 9980.01 root data:Selection", + " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t2.a)), not(isnull(test.t2.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2, partition:p0 keep order:false, stats:pseudo", + " ├─TableReader 9980.01 root data:Selection", + " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t2.a)), not(isnull(test.t2.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2, partition:p1 keep order:false, stats:pseudo", + " ├─TableReader 9980.01 root data:Selection", + " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t2.a)), not(isnull(test.t2.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2, partition:p2 keep order:false, stats:pseudo", + " ├─TableReader 9980.01 root data:Selection", + " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t2.a)), not(isnull(test.t2.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2, partition:p3 keep order:false, stats:pseudo", + " └─TableReader 9980.01 root data:Selection", + " └─Selection 9980.01 cop[tikv] not(isnull(test.t2.a)), not(isnull(test.t2.b))", + " └─TableFullScan 10000.00 cop[tikv] table:t2, partition:p4 keep order:false, stats:pseudo" + ], + "Warning": [ + "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" + ] } ] }, @@ -2603,339 +4188,604 @@ " └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo" ], "Warning": null - } - ] - }, - { - "Name": "TestJoinOrderHint4DifferentJoinType", - "Cases": [ + }, { - "SQL": "select /*+ straight_join() */ * from t1 join t2 on t1.a=t2.a join t3 on t2.b=t3.b", + "SQL": "select /*+ leading(t1, t2) */ * from t4 join t on t4.a=t.a left join t1 on t.a = t1.a join t2 on t.b = t2.b join t3 on t2.b=t3.b;", "Plan": [ - "HashJoin 15593.77 root inner join, equal:[eq(test.t2.b, test.t3.b)]", - "├─TableReader(Build) 9990.00 root data:Selection", - "│ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.b))", - "│ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", - "└─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t1.a, test.t2.a)]", - " ├─TableReader(Build) 9980.01 root data:Selection", - " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t2.a)), not(isnull(test.t2.b))", - " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", - " └─TableReader(Probe) 9990.00 root data:Selection", - " └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", - " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" + "Projection 24365.26 root test.t4.a, test.t4.b, test.t.a, test.t.b, test.t1.a, test.t1.b, test.t2.a, test.t2.b, test.t3.a, test.t3.b", + "└─HashJoin 24365.26 root inner join, equal:[eq(test.t2.b, test.t3.b)]", + " ├─TableReader(Build) 9990.00 root partition:all data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 19492.21 root inner join, equal:[eq(test.t.b, test.t2.b)]", + " ├─TableReader(Build) 9990.00 root partition:all data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 15593.77 root left outer join, equal:[eq(test.t.a, test.t1.a)]", + " ├─TableReader(Build) 9990.00 root partition:all data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t.a, test.t4.a)]", + " ├─TableReader(Build) 9980.01 root partition:all data:Selection", + " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t.a)), not(isnull(test.t.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t keep order:false, stats:pseudo", + " └─TableReader(Probe) 9990.00 root partition:all data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t4.a))", + " └─TableFullScan 10000.00 cop[tikv] table:t4 keep order:false, stats:pseudo" ], - "Warning": null + "Warning": [ + "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" + ] }, { - "SQL": "select /*+ straight_join() */ * from t1 straight_join t2 straight_join t3", + "SQL": "select /*+ leading(t2, t3) */ * from t4 join t on t4.a=t.a left join t1 on t.a = t1.a join t2 on t.b = t2.b join t3 on t2.b=t3.b;", "Plan": [ - "HashJoin 1000000000000.00 root CARTESIAN inner join", - "├─TableReader(Build) 10000.00 root data:TableFullScan", - "│ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", - "└─HashJoin(Probe) 100000000.00 root CARTESIAN inner join", - " ├─TableReader(Build) 10000.00 root data:TableFullScan", - " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", - " └─TableReader(Probe) 10000.00 root data:TableFullScan", - " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" + "Projection 24365.26 root test.t4.a, test.t4.b, test.t.a, test.t.b, test.t1.a, test.t1.b, test.t2.a, test.t2.b, test.t3.a, test.t3.b", + "└─HashJoin 24365.26 root left outer join, equal:[eq(test.t.a, test.t1.a)]", + " ├─TableReader(Build) 9990.00 root partition:all data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 19492.21 root inner join, equal:[eq(test.t.a, test.t4.a)]", + " ├─TableReader(Build) 9990.00 root partition:all data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.a))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t4 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 15593.77 root inner join, equal:[eq(test.t2.b, test.t.b)]", + " ├─TableReader(Build) 9980.01 root partition:all data:Selection", + " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t.a)), not(isnull(test.t.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t keep order:false, stats:pseudo", + " └─HashJoin(Probe) 12487.50 root inner join, equal:[eq(test.t2.b, test.t3.b)]", + " ├─TableReader(Build) 9990.00 root partition:all data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", + " └─TableReader(Probe) 9990.00 root partition:all data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t2.b))", + " └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo" ], "Warning": null }, { - "SQL": "select /*+ straight_join() */ * from t1 join t2 on t1.a=t2.a left join t3 on t2.b=t3.b", + "SQL": "select /*+ leading(t4, t3, t2, t, t1) */ * from t4 join t on t4.a=t.a left join t1 on t.a = t1.a join t2 on t.b = t2.b join t3 on t2.b=t3.b;", "Plan": [ - "HashJoin 15609.38 root left outer join, equal:[eq(test.t2.b, test.t3.b)]", - "├─TableReader(Build) 9990.00 root data:Selection", - "│ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.b))", - "│ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", - "└─HashJoin(Probe) 12487.50 root inner join, equal:[eq(test.t1.a, test.t2.a)]", - " ├─TableReader(Build) 9990.00 root data:Selection", - " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", - " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", - " └─TableReader(Probe) 9990.00 root data:Selection", - " └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", - " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" + "Projection 24365.26 root test.t4.a, test.t4.b, test.t.a, test.t.b, test.t1.a, test.t1.b, test.t2.a, test.t2.b, test.t3.a, test.t3.b", + "└─HashJoin 24365.26 root inner join, equal:[eq(test.t2.b, test.t3.b)]", + " ├─TableReader(Build) 9990.00 root partition:all data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 19492.21 root inner join, equal:[eq(test.t.b, test.t2.b)]", + " ├─TableReader(Build) 9990.00 root partition:all data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 15593.77 root left outer join, equal:[eq(test.t.a, test.t1.a)]", + " ├─TableReader(Build) 9990.00 root partition:all data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t.a, test.t4.a)]", + " ├─TableReader(Build) 9980.01 root partition:all data:Selection", + " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t.a)), not(isnull(test.t.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t keep order:false, stats:pseudo", + " └─TableReader(Probe) 9990.00 root partition:all data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t4.a))", + " └─TableFullScan 10000.00 cop[tikv] table:t4 keep order:false, stats:pseudo" ], - "Warning": null + "Warning": [ + "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" + ] }, { - "SQL": "select /*+ straight_join() */ * from t1 join t2 on t1.a=t2.a right join t3 on t2.b=t3.b", + "SQL": "select /*+ leading(t4, t3, t2, t) */ * from t4 join t on t4.a=t.a left join t1 on t.a = t1.a join t2 on t.b = t2.b join t3 on t2.b=t3.b;", "Plan": [ - "HashJoin 15593.77 root right outer join, equal:[eq(test.t2.b, test.t3.b)]", - "├─TableReader(Build) 10000.00 root data:TableFullScan", - "│ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", - "└─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t1.a, test.t2.a)]", - " ├─TableReader(Build) 9980.01 root data:Selection", - " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t2.a)), not(isnull(test.t2.b))", - " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", - " └─TableReader(Probe) 9990.00 root data:Selection", - " └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", - " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" + "Projection 24365.26 root test.t4.a, test.t4.b, test.t.a, test.t.b, test.t1.a, test.t1.b, test.t2.a, test.t2.b, test.t3.a, test.t3.b", + "└─HashJoin 24365.26 root inner join, equal:[eq(test.t2.b, test.t3.b)]", + " ├─TableReader(Build) 9990.00 root partition:all data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 19492.21 root inner join, equal:[eq(test.t.b, test.t2.b)]", + " ├─TableReader(Build) 9990.00 root partition:all data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 15593.77 root left outer join, equal:[eq(test.t.a, test.t1.a)]", + " ├─TableReader(Build) 9990.00 root partition:all data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t.a, test.t4.a)]", + " ├─TableReader(Build) 9980.01 root partition:all data:Selection", + " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t.a)), not(isnull(test.t.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t keep order:false, stats:pseudo", + " └─TableReader(Probe) 9990.00 root partition:all data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t4.a))", + " └─TableFullScan 10000.00 cop[tikv] table:t4 keep order:false, stats:pseudo" ], - "Warning": null + "Warning": [ + "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" + ] }, { - "SQL": "select /*+ straight_join() */ * from t1 join t2 on t1.a=t2.a cross join t3", + "SQL": "select /*+ leading(t3, t2, t) */ * from t4 join t on t4.a=t.a left join t1 on t.a = t1.a join t2 on t.b = t2.b join t3 on t2.b=t3.b;", "Plan": [ - "HashJoin 124875000.00 root CARTESIAN inner join", - "├─TableReader(Build) 10000.00 root data:TableFullScan", - "│ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", - "└─HashJoin(Probe) 12487.50 root inner join, equal:[eq(test.t1.a, test.t2.a)]", - " ├─TableReader(Build) 9990.00 root data:Selection", - " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", - " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", - " └─TableReader(Probe) 9990.00 root data:Selection", - " └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", - " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" + "Projection 24365.26 root test.t4.a, test.t4.b, test.t.a, test.t.b, test.t1.a, test.t1.b, test.t2.a, test.t2.b, test.t3.a, test.t3.b", + "└─HashJoin 24365.26 root left outer join, equal:[eq(test.t.a, test.t1.a)]", + " ├─TableReader(Build) 9990.00 root partition:all data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 19492.21 root inner join, equal:[eq(test.t.a, test.t4.a)]", + " ├─TableReader(Build) 9990.00 root partition:all data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.a))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t4 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 15593.77 root inner join, equal:[eq(test.t2.b, test.t.b)]", + " ├─TableReader(Build) 9980.01 root partition:all data:Selection", + " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t.a)), not(isnull(test.t.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t keep order:false, stats:pseudo", + " └─HashJoin(Probe) 12487.50 root inner join, equal:[eq(test.t3.b, test.t2.b)]", + " ├─TableReader(Build) 9990.00 root partition:all data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", + " └─TableReader(Probe) 9990.00 root partition:all data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t3.b))", + " └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo" ], "Warning": null }, { - "SQL": "select /*+ leading(t2) */ * from t1 join t2 on t1.a=t2.a join t3 on t2.b=t3.b", + "SQL": "select /*+ leading(t3) */ * from t2 left join (t1 left join t3 on t1.a=t3.a) on t2.b=t1.b;", "Plan": [ - "Projection 15593.77 root test.t1.a, test.t1.b, test.t2.a, test.t2.b, test.t3.a, test.t3.b", - "└─HashJoin 15593.77 root inner join, equal:[eq(test.t2.b, test.t3.b)]", - " ├─TableReader(Build) 9990.00 root data:Selection", - " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.b))", + "HashJoin 15609.38 root left outer join, equal:[eq(test.t2.b, test.t1.b)]", + "├─TableReader(Build) 10000.00 root partition:all data:TableFullScan", + "│ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", + "└─HashJoin(Probe) 12487.50 root left outer join, equal:[eq(test.t1.a, test.t3.a)]", + " ├─TableReader(Build) 9990.00 root partition:all data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.a))", " │ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", - " └─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t2.a, test.t1.a)]", - " ├─TableReader(Build) 9980.01 root data:Selection", - " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t2.a)), not(isnull(test.t2.b))", - " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", - " └─TableReader(Probe) 9990.00 root data:Selection", - " └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", - " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" + " └─TableReader(Probe) 9990.00 root partition:all data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t1.b))", + " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" ], "Warning": null }, { - "SQL": "select /*+ leading(t3) */ * from t1 join t2 on t1.a=t2.a join t3 on t2.b=t3.b", + "SQL": "select /*+ leading(t2, t1, t3) */ * from t2 left join (t1 left join t3 on t1.a=t3.a) on t2.b=t1.b;", "Plan": [ - "Projection 15593.77 root test.t1.a, test.t1.b, test.t2.a, test.t2.b, test.t3.a, test.t3.b", - "└─HashJoin 15593.77 root inner join, equal:[eq(test.t2.a, test.t1.a)]", - " ├─TableReader(Build) 9990.00 root data:Selection", - " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", - " │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", - " └─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t3.b, test.t2.b)]", - " ├─TableReader(Build) 9980.01 root data:Selection", - " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t2.a)), not(isnull(test.t2.b))", - " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", - " └─TableReader(Probe) 9990.00 root data:Selection", - " └─Selection 9990.00 cop[tikv] not(isnull(test.t3.b))", - " └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo" + "HashJoin 15609.38 root left outer join, equal:[eq(test.t2.b, test.t1.b)]", + "├─TableReader(Build) 10000.00 root partition:all data:TableFullScan", + "│ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", + "└─HashJoin(Probe) 12487.50 root left outer join, equal:[eq(test.t1.a, test.t3.a)]", + " ├─TableReader(Build) 9990.00 root partition:all data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.a))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", + " └─TableReader(Probe) 9990.00 root partition:all data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t1.b))", + " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" ], - "Warning": null + "Warning": [ + "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid", + "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" + ] }, { - "SQL": "select /*+ leading(t2, t3) */ * from t1 join t2 on t1.a=t2.a join t3 on t2.b=t3.b", + "SQL": "select /*+ leading(t2, t3) */ * from t2 left join (t1 join t3 on t1.a=t3.a join t4 on t3.b = t4.b) on t2.b=t1.b;", "Plan": [ - "Projection 15593.77 root test.t1.a, test.t1.b, test.t2.a, test.t2.b, test.t3.a, test.t3.b", - "└─HashJoin 15593.77 root inner join, equal:[eq(test.t2.a, test.t1.a)]", - " ├─TableReader(Build) 9990.00 root data:Selection", - " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", - " │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", - " └─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t2.b, test.t3.b)]", - " ├─TableReader(Build) 9980.01 root data:Selection", - " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t2.a)), not(isnull(test.t2.b))", - " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", - " └─TableReader(Probe) 9990.00 root data:Selection", - " └─Selection 9990.00 cop[tikv] not(isnull(test.t3.b))", - " └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo" + "HashJoin 19492.21 root left outer join, equal:[eq(test.t2.b, test.t1.b)]", + "├─TableReader(Build) 10000.00 root partition:all data:TableFullScan", + "│ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", + "└─HashJoin(Probe) 15593.77 root inner join, equal:[eq(test.t3.b, test.t4.b)]", + " ├─TableReader(Build) 9990.00 root partition:all data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t4 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t1.a, test.t3.a)]", + " ├─TableReader(Build) 9980.01 root partition:all data:Selection", + " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t3.a)), not(isnull(test.t3.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", + " └─TableReader(Probe) 9980.01 root partition:all data:Selection", + " └─Selection 9980.01 cop[tikv] not(isnull(test.t1.a)), not(isnull(test.t1.b))", + " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" ], - "Warning": null + "Warning": [ + "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid", + "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" + ] }, { - "SQL": "select /*+ leading(t3, t2) */ * from t1 join t2 on t1.a=t2.a join t3 on t2.b=t3.b", + "SQL": "select /*+ leading(t3, t4) */ * from t2 left join (t1 join t3 on t1.a=t3.a join t4 on t3.b = t4.b) on t2.b=t1.b;", "Plan": [ - "Projection 15593.77 root test.t1.a, test.t1.b, test.t2.a, test.t2.b, test.t3.a, test.t3.b", - "└─HashJoin 15593.77 root inner join, equal:[eq(test.t2.a, test.t1.a)]", - " ├─TableReader(Build) 9990.00 root data:Selection", - " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", - " │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", - " └─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t3.b, test.t2.b)]", - " ├─TableReader(Build) 9980.01 root data:Selection", - " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t2.a)), not(isnull(test.t2.b))", - " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", - " └─TableReader(Probe) 9990.00 root data:Selection", - " └─Selection 9990.00 cop[tikv] not(isnull(test.t3.b))", - " └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo" + "HashJoin 19492.21 root left outer join, equal:[eq(test.t2.b, test.t1.b)]", + "├─TableReader(Build) 10000.00 root partition:all data:TableFullScan", + "│ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", + "└─Projection(Probe) 15593.77 root test.t1.a, test.t1.b, test.t3.a, test.t3.b, test.t4.a, test.t4.b", + " └─HashJoin 15593.77 root inner join, equal:[eq(test.t3.a, test.t1.a)]", + " ├─TableReader(Build) 9980.01 root partition:all data:Selection", + " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t1.a)), not(isnull(test.t1.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t3.b, test.t4.b)]", + " ├─TableReader(Build) 9980.01 root partition:all data:Selection", + " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t3.a)), not(isnull(test.t3.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", + " └─TableReader(Probe) 9990.00 root partition:all data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t4.b))", + " └─TableFullScan 10000.00 cop[tikv] table:t4 keep order:false, stats:pseudo" ], "Warning": null }, { - "SQL": "select /*+ leading(t3, t1) */ * from t1 join t2 on t1.a=t2.a join t3 on t2.b=t3.b", + "SQL": "select /*+ leading(t3, t4) */ * from t2 left join (t1 join t3 on t1.a=t3.a join t4 on t3.b = t4.b) on t2.b=t1.b join t5 on t2.a = t5.a join t6 on t5.b=t6.b;", "Plan": [ - "Projection 124625374.88 root test.t1.a, test.t1.b, test.t2.a, test.t2.b, test.t3.a, test.t3.b", - "└─HashJoin 124625374.88 root inner join, equal:[eq(test.t1.a, test.t2.a) eq(test.t3.b, test.t2.b)]", - " ├─TableReader(Build) 9980.01 root data:Selection", - " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t2.a)), not(isnull(test.t2.b))", - " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", - " └─HashJoin(Probe) 99800100.00 root CARTESIAN inner join", - " ├─TableReader(Build) 9990.00 root data:Selection", - " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", - " │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", - " └─TableReader(Probe) 9990.00 root data:Selection", - " └─Selection 9990.00 cop[tikv] not(isnull(test.t3.b))", - " └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo" + "Projection 30426.12 root test.t2.a, test.t2.b, test.t1.a, test.t1.b, test.t3.a, test.t3.b, test.t4.a, test.t4.b, test.t5.a, test.t5.b, test.t6.a, test.t6.b", + "└─HashJoin 30426.12 root left outer join, equal:[eq(test.t2.b, test.t1.b)]", + " ├─Projection(Build) 15593.77 root test.t1.a, test.t1.b, test.t3.a, test.t3.b, test.t4.a, test.t4.b", + " │ └─HashJoin 15593.77 root inner join, equal:[eq(test.t3.a, test.t1.a)]", + " │ ├─TableReader(Build) 9980.01 root partition:all data:Selection", + " │ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t1.a)), not(isnull(test.t1.b))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", + " │ └─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t3.b, test.t4.b)]", + " │ ├─TableReader(Build) 9980.01 root partition:all data:Selection", + " │ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t3.a)), not(isnull(test.t3.b))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", + " │ └─TableReader(Probe) 9990.00 root partition:all data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t4 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 15593.77 root inner join, equal:[eq(test.t5.b, test.t6.b)]", + " ├─TableReader(Build) 9990.00 root partition:all data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t6.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t6 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t5.a, test.t2.a)]", + " ├─TableReader(Build) 9980.01 root partition:all data:Selection", + " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t5.a)), not(isnull(test.t5.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t5 keep order:false, stats:pseudo", + " └─TableReader(Probe) 9990.00 root partition:all data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", + " └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo" ], "Warning": null }, { - "SQL": "select /*+ leading(t2) */ * from t1 straight_join t2 straight_join t3", + "SQL": "select /*+ leading(t3, t4) leading(t5, t6) */ * from t2 left join (t1 join t3 on t1.a=t3.a join t4 on t3.b = t4.b) on t2.b=t1.b join t5 on t2.a = t5.a join t6 on t5.b=t6.b;", "Plan": [ - "HashJoin 1000000000000.00 root CARTESIAN inner join", - "├─TableReader(Build) 10000.00 root data:TableFullScan", - "│ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", - "└─HashJoin(Probe) 100000000.00 root CARTESIAN inner join", - " ├─TableReader(Build) 10000.00 root data:TableFullScan", - " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", - " └─TableReader(Probe) 10000.00 root data:TableFullScan", - " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" + "Projection 30426.12 root test.t2.a, test.t2.b, test.t1.a, test.t1.b, test.t3.a, test.t3.b, test.t4.a, test.t4.b, test.t5.a, test.t5.b, test.t6.a, test.t6.b", + "└─HashJoin 30426.12 root left outer join, equal:[eq(test.t2.b, test.t1.b)]", + " ├─HashJoin(Build) 15593.77 root inner join, equal:[eq(test.t3.b, test.t4.b)]", + " │ ├─TableReader(Build) 9990.00 root partition:all data:Selection", + " │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.b))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t4 keep order:false, stats:pseudo", + " │ └─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t1.a, test.t3.a)]", + " │ ├─TableReader(Build) 9980.01 root partition:all data:Selection", + " │ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t3.a)), not(isnull(test.t3.b))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", + " │ └─TableReader(Probe) 9980.01 root partition:all data:Selection", + " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t1.a)), not(isnull(test.t1.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 15593.77 root inner join, equal:[eq(test.t5.b, test.t6.b)]", + " ├─TableReader(Build) 9990.00 root partition:all data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t6.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t6 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t5.a, test.t2.a)]", + " ├─TableReader(Build) 9980.01 root partition:all data:Selection", + " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t5.a)), not(isnull(test.t5.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t5 keep order:false, stats:pseudo", + " └─TableReader(Probe) 9990.00 root partition:all data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", + " └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo" ], "Warning": [ - "Warning 1815 leading hint is inapplicable, check the join type or the join algorithm hint" + "Warning 1815 We can only use one leading hint at most, when multiple leading hints are used, all leading hints will be invalid" ] }, { - "SQL": "select /*+ leading(t3) */ * from t1 straight_join t2 straight_join t3", + "SQL": "select /*+ leading(t5, t6, t3, t4) */ * from t2 left join (t1 join t3 on t1.a=t3.a join t4 on t3.b = t4.b) on t2.b=t1.b join t5 on t2.a = t5.a join t6 on t5.b=t6.b;", "Plan": [ - "HashJoin 1000000000000.00 root CARTESIAN inner join", - "├─TableReader(Build) 10000.00 root data:TableFullScan", - "│ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", - "└─HashJoin(Probe) 100000000.00 root CARTESIAN inner join", - " ├─TableReader(Build) 10000.00 root data:TableFullScan", - " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", - " └─TableReader(Probe) 10000.00 root data:TableFullScan", - " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" + "Projection 30426.12 root test.t2.a, test.t2.b, test.t1.a, test.t1.b, test.t3.a, test.t3.b, test.t4.a, test.t4.b, test.t5.a, test.t5.b, test.t6.a, test.t6.b", + "└─HashJoin 30426.12 root left outer join, equal:[eq(test.t2.b, test.t1.b)]", + " ├─HashJoin(Build) 15593.77 root inner join, equal:[eq(test.t3.b, test.t4.b)]", + " │ ├─TableReader(Build) 9990.00 root partition:all data:Selection", + " │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.b))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t4 keep order:false, stats:pseudo", + " │ └─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t1.a, test.t3.a)]", + " │ ├─TableReader(Build) 9980.01 root partition:all data:Selection", + " │ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t3.a)), not(isnull(test.t3.b))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", + " │ └─TableReader(Probe) 9980.01 root partition:all data:Selection", + " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t1.a)), not(isnull(test.t1.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 15593.77 root inner join, equal:[eq(test.t5.b, test.t6.b)]", + " ├─TableReader(Build) 9990.00 root partition:all data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t6.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t6 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t5.a, test.t2.a)]", + " ├─TableReader(Build) 9980.01 root partition:all data:Selection", + " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t5.a)), not(isnull(test.t5.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t5 keep order:false, stats:pseudo", + " └─TableReader(Probe) 9990.00 root partition:all data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", + " └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo" ], "Warning": [ - "Warning 1815 leading hint is inapplicable, check the join type or the join algorithm hint" + "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid", + "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" ] }, { - "SQL": "select /*+ leading(t2, t3) */ * from t1 straight_join t2 straight_join t3", + "SQL": "select /*+ leading(t1, t2) */ * from t4 join t on t4.a=t.a right join t1 on t.a = t1.a join t2 on t1.b = t2.b join t3 on t2.b=t3.b;", "Plan": [ - "HashJoin 1000000000000.00 root CARTESIAN inner join", - "├─TableReader(Build) 10000.00 root data:TableFullScan", - "│ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", - "└─HashJoin(Probe) 100000000.00 root CARTESIAN inner join", - " ├─TableReader(Build) 10000.00 root data:TableFullScan", - " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", - " └─TableReader(Probe) 10000.00 root data:TableFullScan", - " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" + "HashJoin 24389.65 root right outer join, equal:[eq(test.t.a, test.t1.a)]", + "├─HashJoin(Build) 12487.50 root inner join, equal:[eq(test.t4.a, test.t.a)]", + "│ ├─TableReader(Build) 9990.00 root partition:all data:Selection", + "│ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t.a))", + "│ │ └─TableFullScan 10000.00 cop[tikv] table:t keep order:false, stats:pseudo", + "│ └─TableReader(Probe) 9990.00 root partition:all data:Selection", + "│ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.a))", + "│ └─TableFullScan 10000.00 cop[tikv] table:t4 keep order:false, stats:pseudo", + "└─HashJoin(Probe) 15609.38 root inner join, equal:[eq(test.t2.b, test.t3.b)]", + " ├─TableReader(Build) 9990.00 root partition:all data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 12487.50 root inner join, equal:[eq(test.t1.b, test.t2.b)]", + " ├─TableReader(Build) 9990.00 root partition:all data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", + " └─TableReader(Probe) 9990.00 root partition:all data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t1.b))", + " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" + ], + "Warning": null + }, + { + "SQL": "select /*+ leading(t2, t3) */ * from t4 join t on t4.a=t.a right join t1 on t.a = t1.a join t2 on t1.b = t2.b join t3 on t2.b=t3.b;", + "Plan": [ + "Projection 24389.65 root test.t4.a, test.t4.b, test.t.a, test.t.b, test.t1.a, test.t1.b, test.t2.a, test.t2.b, test.t3.a, test.t3.b", + "└─HashJoin 24389.65 root right outer join, equal:[eq(test.t.a, test.t1.a)]", + " ├─HashJoin(Build) 12487.50 root inner join, equal:[eq(test.t4.a, test.t.a)]", + " │ ├─TableReader(Build) 9990.00 root partition:all data:Selection", + " │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t.a))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t keep order:false, stats:pseudo", + " │ └─TableReader(Probe) 9990.00 root partition:all data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.a))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t4 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 15609.38 root inner join, equal:[eq(test.t2.b, test.t1.b)]", + " ├─TableReader(Build) 9990.00 root partition:all data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t1.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 12487.50 root inner join, equal:[eq(test.t2.b, test.t3.b)]", + " ├─TableReader(Build) 9990.00 root partition:all data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", + " └─TableReader(Probe) 9990.00 root partition:all data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t2.b))", + " └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo" + ], + "Warning": null + }, + { + "SQL": "select /*+ leading(t1, t3) */ * from t4 join t on t4.a=t.a right join t1 on t.a = t1.a join t2 on t1.b = t2.b join t3 on t2.b=t3.b;", + "Plan": [ + "HashJoin 24389.65 root right outer join, equal:[eq(test.t.a, test.t1.a)]", + "├─HashJoin(Build) 12487.50 root inner join, equal:[eq(test.t4.a, test.t.a)]", + "│ ├─TableReader(Build) 9990.00 root partition:all data:Selection", + "│ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t.a))", + "│ │ └─TableFullScan 10000.00 cop[tikv] table:t keep order:false, stats:pseudo", + "│ └─TableReader(Probe) 9990.00 root partition:all data:Selection", + "│ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.a))", + "│ └─TableFullScan 10000.00 cop[tikv] table:t4 keep order:false, stats:pseudo", + "└─HashJoin(Probe) 15609.38 root inner join, equal:[eq(test.t2.b, test.t3.b)]", + " ├─TableReader(Build) 9990.00 root partition:all data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 12487.50 root inner join, equal:[eq(test.t1.b, test.t2.b)]", + " ├─TableReader(Build) 9990.00 root partition:all data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", + " └─TableReader(Probe) 9990.00 root partition:all data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t1.b))", + " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" ], "Warning": [ - "Warning 1815 leading hint is inapplicable, check the join type or the join algorithm hint", - "Warning 1815 leading hint is inapplicable, check the join type or the join algorithm hint" + "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" ] }, { - "SQL": "select /*+ leading(t3, t2) */ * from t1 straight_join t2 straight_join t3", + "SQL": "select /*+ leading(t3) */ * from t2 right join (t1 left join t3 on t1.a=t3.a) on t2.b=t1.b;", "Plan": [ - "HashJoin 1000000000000.00 root CARTESIAN inner join", - "├─TableReader(Build) 10000.00 root data:TableFullScan", - "│ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", - "└─HashJoin(Probe) 100000000.00 root CARTESIAN inner join", - " ├─TableReader(Build) 10000.00 root data:TableFullScan", - " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", - " └─TableReader(Probe) 10000.00 root data:TableFullScan", + "HashJoin 15593.77 root right outer join, equal:[eq(test.t2.b, test.t1.b)]", + "├─TableReader(Build) 9990.00 root partition:all data:Selection", + "│ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.b))", + "│ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", + "└─HashJoin(Probe) 12487.50 root left outer join, equal:[eq(test.t1.a, test.t3.a)]", + " ├─TableReader(Build) 9990.00 root partition:all data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.a))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", + " └─TableReader(Probe) 10000.00 root partition:all data:TableFullScan", " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" ], - "Warning": [ - "Warning 1815 leading hint is inapplicable, check the join type or the join algorithm hint", - "Warning 1815 leading hint is inapplicable, check the join type or the join algorithm hint" - ] + "Warning": null }, { - "SQL": "select /*+ leading(t3, t1) */ * from t1 straight_join t2 straight_join t3", + "SQL": "select /*+ leading(t2, t1, t3) */ * from t2 right join (t1 left join t3 on t1.a=t3.a) on t2.b=t1.b;", "Plan": [ - "HashJoin 1000000000000.00 root CARTESIAN inner join", - "├─TableReader(Build) 10000.00 root data:TableFullScan", - "│ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", - "└─HashJoin(Probe) 100000000.00 root CARTESIAN inner join", - " ├─TableReader(Build) 10000.00 root data:TableFullScan", - " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", - " └─TableReader(Probe) 10000.00 root data:TableFullScan", + "HashJoin 15593.77 root left outer join, equal:[eq(test.t1.a, test.t3.a)]", + "├─TableReader(Build) 9990.00 root partition:all data:Selection", + "│ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.a))", + "│ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", + "└─HashJoin(Probe) 12487.50 root right outer join, equal:[eq(test.t2.b, test.t1.b)]", + " ├─TableReader(Build) 9990.00 root partition:all data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", + " └─TableReader(Probe) 10000.00 root partition:all data:TableFullScan", " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" ], + "Warning": null + }, + { + "SQL": "select /*+ leading(t2, t3) */ * from t2 right join (t1 join t3 on t1.a=t3.a join t4 on t3.b = t4.b) on t2.b=t1.b;", + "Plan": [ + "Projection 19492.21 root test.t2.a, test.t2.b, test.t1.a, test.t1.b, test.t3.a, test.t3.b, test.t4.a, test.t4.b", + "└─HashJoin 19492.21 root inner join, equal:[eq(test.t3.b, test.t4.b)]", + " ├─TableReader(Build) 9990.00 root partition:all data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t4 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 15593.77 root right outer join, equal:[eq(test.t2.b, test.t1.b)]", + " ├─TableReader(Build) 9990.00 root partition:all data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t3.a, test.t1.a)]", + " ├─TableReader(Build) 9980.01 root partition:all data:Selection", + " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t3.a)), not(isnull(test.t3.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", + " └─TableReader(Probe) 9990.00 root partition:all data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", + " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" + ], "Warning": [ - "Warning 1815 leading hint is inapplicable, check the join type or the join algorithm hint", - "Warning 1815 leading hint is inapplicable, check the join type or the join algorithm hint" + "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" ] }, { - "SQL": "select /*+ leading(t2) */ * from t1 join t2 on t1.a=t2.a left join t3 on t2.b=t3.b", + "SQL": "select /*+ leading(t3, t4) */ * from t2 right join (t1 join t3 on t1.a=t3.a join t4 on t3.b = t4.b) on t2.b=t1.b;", "Plan": [ - "Projection 15609.38 root test.t1.a, test.t1.b, test.t2.a, test.t2.b, test.t3.a, test.t3.b", - "└─HashJoin 15609.38 root left outer join, equal:[eq(test.t2.b, test.t3.b)]", - " ├─TableReader(Build) 9990.00 root data:Selection", - " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.b))", - " │ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", - " └─HashJoin(Probe) 12487.50 root inner join, equal:[eq(test.t2.a, test.t1.a)]", - " ├─TableReader(Build) 9990.00 root data:Selection", + "Projection 19492.21 root test.t2.a, test.t2.b, test.t1.a, test.t1.b, test.t3.a, test.t3.b, test.t4.a, test.t4.b", + "└─HashJoin 19492.21 root right outer join, equal:[eq(test.t2.b, test.t1.b)]", + " ├─TableReader(Build) 9990.00 root partition:all data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 15593.77 root inner join, equal:[eq(test.t3.a, test.t1.a)]", + " ├─TableReader(Build) 9990.00 root partition:all data:Selection", " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", " │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", - " └─TableReader(Probe) 9990.00 root data:Selection", - " └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", - " └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo" + " └─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t3.b, test.t4.b)]", + " ├─TableReader(Build) 9980.01 root partition:all data:Selection", + " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t3.a)), not(isnull(test.t3.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", + " └─TableReader(Probe) 9990.00 root partition:all data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t4.b))", + " └─TableFullScan 10000.00 cop[tikv] table:t4 keep order:false, stats:pseudo" ], "Warning": null }, { - "SQL": "select /*+ leading(t3) */ * from t1 join t2 on t1.a=t2.a left join t3 on t2.b=t3.b", + "SQL": "select /*+ leading(t3, t4) */ * from t2 right join (t1 join t3 on t1.a=t3.a join t4 on t3.b = t4.b) on t2.b=t1.b join t5 on t2.a = t5.a join t6 on t5.b=t6.b;", "Plan": [ - "Projection 15609.38 root test.t1.a, test.t1.b, test.t2.a, test.t2.b, test.t3.a, test.t3.b", - "└─HashJoin 15609.38 root inner join, equal:[eq(test.t2.a, test.t1.a)]", - " ├─TableReader(Build) 9990.00 root data:Selection", - " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", - " │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", - " └─HashJoin(Probe) 12487.50 root left outer join, equal:[eq(test.t2.b, test.t3.b)]", - " ├─TableReader(Build) 9990.00 root data:Selection", - " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.b))", - " │ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", - " └─TableReader(Probe) 9990.00 root data:Selection", - " └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", - " └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo" + "Projection 30456.57 root test.t2.a, test.t2.b, test.t1.a, test.t1.b, test.t3.a, test.t3.b, test.t4.a, test.t4.b, test.t5.a, test.t5.b, test.t6.a, test.t6.b", + "└─HashJoin 30456.57 root inner join, equal:[eq(test.t5.b, test.t6.b)]", + " ├─TableReader(Build) 9990.00 root partition:all data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t6.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t6 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 24365.26 root inner join, equal:[eq(test.t2.a, test.t5.a)]", + " ├─TableReader(Build) 9980.01 root partition:all data:Selection", + " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t5.a)), not(isnull(test.t5.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t5 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 19492.21 root inner join, equal:[eq(test.t1.b, test.t2.b)]", + " ├─TableReader(Build) 9980.01 root partition:all data:Selection", + " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t2.a)), not(isnull(test.t2.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 15593.77 root inner join, equal:[eq(test.t3.a, test.t1.a)]", + " ├─TableReader(Build) 9980.01 root partition:all data:Selection", + " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t1.a)), not(isnull(test.t1.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t3.b, test.t4.b)]", + " ├─TableReader(Build) 9980.01 root partition:all data:Selection", + " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t3.a)), not(isnull(test.t3.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", + " └─TableReader(Probe) 9990.00 root partition:all data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t4.b))", + " └─TableFullScan 10000.00 cop[tikv] table:t4 keep order:false, stats:pseudo" ], "Warning": null }, { - "SQL": "select /*+ leading(t2, t3) */ * from t1 join t2 on t1.a=t2.a left join t3 on t2.b=t3.b", + "SQL": "select /*+ leading(t3, t4) leading(t5, t6) */ * from t2 right join (t1 join t3 on t1.a=t3.a join t4 on t3.b = t4.b) on t2.b=t1.b join t5 on t2.a = t5.a join t6 on t5.b=t6.b;", "Plan": [ - "Projection 15609.38 root test.t1.a, test.t1.b, test.t2.a, test.t2.b, test.t3.a, test.t3.b", - "└─HashJoin 15609.38 root inner join, equal:[eq(test.t2.a, test.t1.a)]", - " ├─TableReader(Build) 9990.00 root data:Selection", - " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", + "Projection 30456.57 root test.t2.a, test.t2.b, test.t1.a, test.t1.b, test.t3.a, test.t3.b, test.t4.a, test.t4.b, test.t5.a, test.t5.b, test.t6.a, test.t6.b", + "└─HashJoin 30456.57 root inner join, equal:[eq(test.t5.b, test.t6.b)]", + " ├─TableReader(Build) 9990.00 root partition:all data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t6.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t6 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 24365.26 root inner join, equal:[eq(test.t3.b, test.t4.b)]", + " ├─TableReader(Build) 9990.00 root partition:all data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t4 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 19492.21 root inner join, equal:[eq(test.t2.a, test.t5.a)]", + " ├─TableReader(Build) 9980.01 root partition:all data:Selection", + " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t5.a)), not(isnull(test.t5.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t5 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 15593.77 root inner join, equal:[eq(test.t1.a, test.t3.a)]", + " ├─TableReader(Build) 9980.01 root partition:all data:Selection", + " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t3.a)), not(isnull(test.t3.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t2.b, test.t1.b)]", + " ├─TableReader(Build) 9980.01 root partition:all data:Selection", + " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t1.a)), not(isnull(test.t1.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", + " └─TableReader(Probe) 9980.01 root partition:all data:Selection", + " └─Selection 9980.01 cop[tikv] not(isnull(test.t2.a)), not(isnull(test.t2.b))", + " └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo" + ], + "Warning": [ + "Warning 1815 We can only use one leading hint at most, when multiple leading hints are used, all leading hints will be invalid" + ] + }, + { + "SQL": "select /*+ leading(t3, t4, t5, t6) */ * from t2 right join (t1 join t3 on t1.a=t3.a join t4 on t3.b = t4.b) on t2.b=t1.b join t5 on t2.a = t5.a join t6 on t5.b=t6.b;", + "Plan": [ + "Projection 243165526.37 root test.t2.a, test.t2.b, test.t1.a, test.t1.b, test.t3.a, test.t3.b, test.t4.a, test.t4.b, test.t5.a, test.t5.b, test.t6.a, test.t6.b", + "└─HashJoin 243165526.37 root inner join, equal:[eq(test.t3.a, test.t1.a) eq(test.t2.b, test.t1.b)]", + " ├─TableReader(Build) 9980.01 root partition:all data:Selection", + " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t1.a)), not(isnull(test.t1.b))", " │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", - " └─HashJoin(Probe) 12487.50 root left outer join, equal:[eq(test.t2.b, test.t3.b)]", - " ├─TableReader(Build) 9990.00 root data:Selection", - " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.b))", - " │ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", - " └─TableReader(Probe) 9990.00 root data:Selection", - " └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", - " └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo" + " └─HashJoin(Probe) 194532421.09 root inner join, equal:[eq(test.t5.a, test.t2.a)]", + " ├─TableReader(Build) 9980.01 root partition:all data:Selection", + " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t2.a)), not(isnull(test.t2.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 155625936.88 root inner join, equal:[eq(test.t5.b, test.t6.b)]", + " ├─TableReader(Build) 9990.00 root partition:all data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t6.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t6 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 124500749.50 root CARTESIAN inner join", + " ├─TableReader(Build) 9980.01 root partition:all data:Selection", + " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t5.a)), not(isnull(test.t5.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t5 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t3.b, test.t4.b)]", + " ├─TableReader(Build) 9980.01 root partition:all data:Selection", + " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t3.a)), not(isnull(test.t3.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", + " └─TableReader(Probe) 9990.00 root partition:all data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t4.b))", + " └─TableFullScan 10000.00 cop[tikv] table:t4 keep order:false, stats:pseudo" + ], + "Warning": null + } + ] + }, + { + "Name": "TestJoinOrderHint4DifferentJoinType", + "Cases": [ + { + "SQL": "select /*+ straight_join() */ * from t1 join t2 on t1.a=t2.a join t3 on t2.b=t3.b", + "Plan": [ + "HashJoin 15593.77 root inner join, equal:[eq(test.t2.b, test.t3.b)]", + "├─TableReader(Build) 9990.00 root data:Selection", + "│ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.b))", + "│ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", + "└─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t1.a, test.t2.a)]", + " ├─TableReader(Build) 9980.01 root data:Selection", + " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t2.a)), not(isnull(test.t2.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", + " └─TableReader(Probe) 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", + " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" ], "Warning": null }, { - "SQL": "select /*+ leading(t3, t2) */ * from t1 join t2 on t1.a=t2.a left join t3 on t2.b=t3.b", + "SQL": "select /*+ straight_join() */ * from t1 straight_join t2 straight_join t3", "Plan": [ - "Projection 15609.38 root test.t1.a, test.t1.b, test.t2.a, test.t2.b, test.t3.a, test.t3.b", - "└─HashJoin 15609.38 root inner join, equal:[eq(test.t2.a, test.t1.a)]", - " ├─TableReader(Build) 9990.00 root data:Selection", - " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", - " │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", - " └─HashJoin(Probe) 12487.50 root left outer join, equal:[eq(test.t2.b, test.t3.b)]", - " ├─TableReader(Build) 9990.00 root data:Selection", - " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.b))", - " │ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", - " └─TableReader(Probe) 9990.00 root data:Selection", - " └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", - " └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo" + "HashJoin 1000000000000.00 root CARTESIAN inner join", + "├─TableReader(Build) 10000.00 root data:TableFullScan", + "│ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", + "└─HashJoin(Probe) 100000000.00 root CARTESIAN inner join", + " ├─TableReader(Build) 10000.00 root data:TableFullScan", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", + " └─TableReader(Probe) 10000.00 root data:TableFullScan", + " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" ], "Warning": null }, { - "SQL": "select /*+ leading(t3, t1) */ * from t1 join t2 on t1.a=t2.a left join t3 on t2.b=t3.b", + "SQL": "select /*+ straight_join() */ * from t1 join t2 on t1.a=t2.a left join t3 on t2.b=t3.b", "Plan": [ "HashJoin 15609.38 root left outer join, equal:[eq(test.t2.b, test.t3.b)]", "├─TableReader(Build) 9990.00 root data:Selection", @@ -2949,35 +4799,49 @@ " └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" ], - "Warning": [ - "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" - ] + "Warning": null }, { - "SQL": "select /*+ leading(t2) */ * from t1 join t2 on t1.a=t2.a right join t3 on t2.b=t3.b", + "SQL": "select /*+ straight_join() */ * from t1 join t2 on t1.a=t2.a right join t3 on t2.b=t3.b", "Plan": [ "HashJoin 15593.77 root right outer join, equal:[eq(test.t2.b, test.t3.b)]", "├─TableReader(Build) 10000.00 root data:TableFullScan", "│ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", - "└─Projection(Probe) 12475.01 root test.t1.a, test.t1.b, test.t2.a, test.t2.b", - " └─HashJoin 12475.01 root inner join, equal:[eq(test.t2.a, test.t1.a)]", - " ├─TableReader(Build) 9980.01 root data:Selection", - " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t2.a)), not(isnull(test.t2.b))", - " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", - " └─TableReader(Probe) 9990.00 root data:Selection", - " └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", - " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" + "└─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t1.a, test.t2.a)]", + " ├─TableReader(Build) 9980.01 root data:Selection", + " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t2.a)), not(isnull(test.t2.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", + " └─TableReader(Probe) 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", + " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" ], "Warning": null }, { - "SQL": "select /*+ leading(t3) */ * from t1 join t2 on t1.a=t2.a right join t3 on t2.b=t3.b", + "SQL": "select /*+ straight_join() */ * from t1 join t2 on t1.a=t2.a cross join t3", "Plan": [ - "HashJoin 15593.77 root right outer join, equal:[eq(test.t2.b, test.t3.b)]", + "HashJoin 124875000.00 root CARTESIAN inner join", "├─TableReader(Build) 10000.00 root data:TableFullScan", "│ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", - "└─Projection(Probe) 12475.01 root test.t1.a, test.t1.b, test.t2.a, test.t2.b", - " └─HashJoin 12475.01 root inner join, equal:[eq(test.t2.a, test.t1.a)]", + "└─HashJoin(Probe) 12487.50 root inner join, equal:[eq(test.t1.a, test.t2.a)]", + " ├─TableReader(Build) 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", + " └─TableReader(Probe) 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", + " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" + ], + "Warning": null + }, + { + "SQL": "select /*+ leading(t2) */ * from t1 join t2 on t1.a=t2.a join t3 on t2.b=t3.b", + "Plan": [ + "Projection 15593.77 root test.t1.a, test.t1.b, test.t2.a, test.t2.b, test.t3.a, test.t3.b", + "└─HashJoin 15593.77 root inner join, equal:[eq(test.t2.b, test.t3.b)]", + " ├─TableReader(Build) 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t2.a, test.t1.a)]", " ├─TableReader(Build) 9980.01 root data:Selection", " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t2.a)), not(isnull(test.t2.b))", " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", @@ -2988,72 +4852,168 @@ "Warning": null }, { - "SQL": "select /*+ leading(t2, t3) */ * from t1 join t2 on t1.a=t2.a right join t3 on t2.b=t3.b", + "SQL": "select /*+ leading(t3) */ * from t1 join t2 on t1.a=t2.a join t3 on t2.b=t3.b", "Plan": [ - "HashJoin 15593.77 root right outer join, equal:[eq(test.t2.b, test.t3.b)]", - "├─TableReader(Build) 10000.00 root data:TableFullScan", - "│ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", - "└─Projection(Probe) 12475.01 root test.t1.a, test.t1.b, test.t2.a, test.t2.b", - " └─HashJoin 12475.01 root inner join, equal:[eq(test.t2.a, test.t1.a)]", + "Projection 15593.77 root test.t1.a, test.t1.b, test.t2.a, test.t2.b, test.t3.a, test.t3.b", + "└─HashJoin 15593.77 root inner join, equal:[eq(test.t2.a, test.t1.a)]", + " ├─TableReader(Build) 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t3.b, test.t2.b)]", " ├─TableReader(Build) 9980.01 root data:Selection", " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t2.a)), not(isnull(test.t2.b))", " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", " └─TableReader(Probe) 9990.00 root data:Selection", - " └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", - " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" + " └─Selection 9990.00 cop[tikv] not(isnull(test.t3.b))", + " └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo" ], - "Warning": [ - "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid", - "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" - ] + "Warning": null }, { - "SQL": "select /*+ leading(t3, t2) */ * from t1 join t2 on t1.a=t2.a right join t3 on t2.b=t3.b", + "SQL": "select /*+ leading(t2, t3) */ * from t1 join t2 on t1.a=t2.a join t3 on t2.b=t3.b", "Plan": [ - "HashJoin 15593.77 root right outer join, equal:[eq(test.t2.b, test.t3.b)]", - "├─TableReader(Build) 10000.00 root data:TableFullScan", - "│ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", - "└─Projection(Probe) 12475.01 root test.t1.a, test.t1.b, test.t2.a, test.t2.b", - " └─HashJoin 12475.01 root inner join, equal:[eq(test.t2.a, test.t1.a)]", + "Projection 15593.77 root test.t1.a, test.t1.b, test.t2.a, test.t2.b, test.t3.a, test.t3.b", + "└─HashJoin 15593.77 root inner join, equal:[eq(test.t2.a, test.t1.a)]", + " ├─TableReader(Build) 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t2.b, test.t3.b)]", " ├─TableReader(Build) 9980.01 root data:Selection", " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t2.a)), not(isnull(test.t2.b))", " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", " └─TableReader(Probe) 9990.00 root data:Selection", - " └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", - " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" + " └─Selection 9990.00 cop[tikv] not(isnull(test.t3.b))", + " └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo" ], - "Warning": [ - "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid", - "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" - ] + "Warning": null }, { - "SQL": "select /*+ leading(t3, t1) */ * from t1 join t2 on t1.a=t2.a right join t3 on t2.b=t3.b", + "SQL": "select /*+ leading(t3, t2) */ * from t1 join t2 on t1.a=t2.a join t3 on t2.b=t3.b", "Plan": [ - "HashJoin 15593.77 root right outer join, equal:[eq(test.t2.b, test.t3.b)]", - "├─TableReader(Build) 10000.00 root data:TableFullScan", - "│ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", - "└─Projection(Probe) 12475.01 root test.t1.a, test.t1.b, test.t2.a, test.t2.b", - " └─HashJoin 12475.01 root inner join, equal:[eq(test.t2.a, test.t1.a)]", + "Projection 15593.77 root test.t1.a, test.t1.b, test.t2.a, test.t2.b, test.t3.a, test.t3.b", + "└─HashJoin 15593.77 root inner join, equal:[eq(test.t2.a, test.t1.a)]", + " ├─TableReader(Build) 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t3.b, test.t2.b)]", " ├─TableReader(Build) 9980.01 root data:Selection", " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t2.a)), not(isnull(test.t2.b))", " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", " └─TableReader(Probe) 9990.00 root data:Selection", - " └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", - " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" + " └─Selection 9990.00 cop[tikv] not(isnull(test.t3.b))", + " └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo" + ], + "Warning": null + }, + { + "SQL": "select /*+ leading(t3, t1) */ * from t1 join t2 on t1.a=t2.a join t3 on t2.b=t3.b", + "Plan": [ + "Projection 124625374.88 root test.t1.a, test.t1.b, test.t2.a, test.t2.b, test.t3.a, test.t3.b", + "└─HashJoin 124625374.88 root inner join, equal:[eq(test.t1.a, test.t2.a) eq(test.t3.b, test.t2.b)]", + " ├─TableReader(Build) 9980.01 root data:Selection", + " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t2.a)), not(isnull(test.t2.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 99800100.00 root CARTESIAN inner join", + " ├─TableReader(Build) 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", + " └─TableReader(Probe) 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t3.b))", + " └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo" + ], + "Warning": null + }, + { + "SQL": "select /*+ leading(t2) */ * from t1 straight_join t2 straight_join t3", + "Plan": [ + "HashJoin 1000000000000.00 root CARTESIAN inner join", + "├─TableReader(Build) 10000.00 root data:TableFullScan", + "│ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", + "└─HashJoin(Probe) 100000000.00 root CARTESIAN inner join", + " ├─TableReader(Build) 10000.00 root data:TableFullScan", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", + " └─TableReader(Probe) 10000.00 root data:TableFullScan", + " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" ], "Warning": [ - "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid", - "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" + "Warning 1815 leading hint is inapplicable, check the join type or the join algorithm hint" ] }, { - "SQL": "select /*+ leading(t2) */ * from t1 join t2 on t1.a=t2.a cross join t3", + "SQL": "select /*+ leading(t3) */ * from t1 straight_join t2 straight_join t3", "Plan": [ - "Projection 124875000.00 root test.t1.a, test.t1.b, test.t2.a, test.t2.b, test.t3.a, test.t3.b", - "└─HashJoin 124875000.00 root CARTESIAN inner join", + "HashJoin 1000000000000.00 root CARTESIAN inner join", + "├─TableReader(Build) 10000.00 root data:TableFullScan", + "│ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", + "└─HashJoin(Probe) 100000000.00 root CARTESIAN inner join", " ├─TableReader(Build) 10000.00 root data:TableFullScan", - " │ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", + " └─TableReader(Probe) 10000.00 root data:TableFullScan", + " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" + ], + "Warning": [ + "Warning 1815 leading hint is inapplicable, check the join type or the join algorithm hint" + ] + }, + { + "SQL": "select /*+ leading(t2, t3) */ * from t1 straight_join t2 straight_join t3", + "Plan": [ + "HashJoin 1000000000000.00 root CARTESIAN inner join", + "├─TableReader(Build) 10000.00 root data:TableFullScan", + "│ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", + "└─HashJoin(Probe) 100000000.00 root CARTESIAN inner join", + " ├─TableReader(Build) 10000.00 root data:TableFullScan", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", + " └─TableReader(Probe) 10000.00 root data:TableFullScan", + " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" + ], + "Warning": [ + "Warning 1815 leading hint is inapplicable, check the join type or the join algorithm hint", + "Warning 1815 leading hint is inapplicable, check the join type or the join algorithm hint" + ] + }, + { + "SQL": "select /*+ leading(t3, t2) */ * from t1 straight_join t2 straight_join t3", + "Plan": [ + "HashJoin 1000000000000.00 root CARTESIAN inner join", + "├─TableReader(Build) 10000.00 root data:TableFullScan", + "│ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", + "└─HashJoin(Probe) 100000000.00 root CARTESIAN inner join", + " ├─TableReader(Build) 10000.00 root data:TableFullScan", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", + " └─TableReader(Probe) 10000.00 root data:TableFullScan", + " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" + ], + "Warning": [ + "Warning 1815 leading hint is inapplicable, check the join type or the join algorithm hint", + "Warning 1815 leading hint is inapplicable, check the join type or the join algorithm hint" + ] + }, + { + "SQL": "select /*+ leading(t3, t1) */ * from t1 straight_join t2 straight_join t3", + "Plan": [ + "HashJoin 1000000000000.00 root CARTESIAN inner join", + "├─TableReader(Build) 10000.00 root data:TableFullScan", + "│ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", + "└─HashJoin(Probe) 100000000.00 root CARTESIAN inner join", + " ├─TableReader(Build) 10000.00 root data:TableFullScan", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", + " └─TableReader(Probe) 10000.00 root data:TableFullScan", + " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" + ], + "Warning": [ + "Warning 1815 leading hint is inapplicable, check the join type or the join algorithm hint", + "Warning 1815 leading hint is inapplicable, check the join type or the join algorithm hint" + ] + }, + { + "SQL": "select /*+ leading(t2) */ * from t1 join t2 on t1.a=t2.a left join t3 on t2.b=t3.b", + "Plan": [ + "Projection 15609.38 root test.t1.a, test.t1.b, test.t2.a, test.t2.b, test.t3.a, test.t3.b", + "└─HashJoin 15609.38 root left outer join, equal:[eq(test.t2.b, test.t3.b)]", + " ├─TableReader(Build) 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", " └─HashJoin(Probe) 12487.50 root inner join, equal:[eq(test.t2.a, test.t1.a)]", " ├─TableReader(Build) 9990.00 root data:Selection", " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", @@ -3065,216 +5025,1682 @@ "Warning": null }, { - "SQL": "select /*+ leading(t3) */ * from t1 join t2 on t1.a=t2.a cross join t3", + "SQL": "select /*+ leading(t3) */ * from t1 join t2 on t1.a=t2.a left join t3 on t2.b=t3.b", "Plan": [ - "Projection 124875000.00 root test.t1.a, test.t1.b, test.t2.a, test.t2.b, test.t3.a, test.t3.b", - "└─HashJoin 124875000.00 root CARTESIAN inner join", - " ├─TableReader(Build) 10000.00 root data:TableFullScan", - " │ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", - " └─HashJoin(Probe) 12487.50 root inner join, equal:[eq(test.t1.a, test.t2.a)]", + "Projection 15609.38 root test.t1.a, test.t1.b, test.t2.a, test.t2.b, test.t3.a, test.t3.b", + "└─HashJoin 15609.38 root inner join, equal:[eq(test.t2.a, test.t1.a)]", + " ├─TableReader(Build) 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 12487.50 root left outer join, equal:[eq(test.t2.b, test.t3.b)]", " ├─TableReader(Build) 9990.00 root data:Selection", - " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", - " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", " └─TableReader(Probe) 9990.00 root data:Selection", - " └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", - " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" + " └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", + " └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo" ], - "Warning": [ - "Warning 1815 leading hint is inapplicable, check if the leading hint table has join conditions with other tables" - ] + "Warning": null }, { - "SQL": "select /*+ leading(t2, t3) */ * from t1 join t2 on t1.a=t2.a cross join t3", + "SQL": "select /*+ leading(t2, t3) */ * from t1 join t2 on t1.a=t2.a left join t3 on t2.b=t3.b", "Plan": [ - "Projection 124875000.00 root test.t1.a, test.t1.b, test.t2.a, test.t2.b, test.t3.a, test.t3.b", - "└─HashJoin 124875000.00 root inner join, equal:[eq(test.t2.a, test.t1.a)]", + "Projection 15609.38 root test.t1.a, test.t1.b, test.t2.a, test.t2.b, test.t3.a, test.t3.b", + "└─HashJoin 15609.38 root inner join, equal:[eq(test.t2.a, test.t1.a)]", " ├─TableReader(Build) 9990.00 root data:Selection", " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", " │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", - " └─HashJoin(Probe) 99900000.00 root CARTESIAN inner join", + " └─HashJoin(Probe) 12487.50 root left outer join, equal:[eq(test.t2.b, test.t3.b)]", " ├─TableReader(Build) 9990.00 root data:Selection", - " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", - " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", - " └─TableReader(Probe) 10000.00 root data:TableFullScan", - " └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo" + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", + " └─TableReader(Probe) 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", + " └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo" ], "Warning": null }, { - "SQL": "select /*+ leading(t3, t2) */ * from t1 join t2 on t1.a=t2.a cross join t3", + "SQL": "select /*+ leading(t3, t2) */ * from t1 join t2 on t1.a=t2.a left join t3 on t2.b=t3.b", "Plan": [ - "Projection 124875000.00 root test.t1.a, test.t1.b, test.t2.a, test.t2.b, test.t3.a, test.t3.b", - "└─HashJoin 124875000.00 root inner join, equal:[eq(test.t2.a, test.t1.a)]", + "Projection 15609.38 root test.t1.a, test.t1.b, test.t2.a, test.t2.b, test.t3.a, test.t3.b", + "└─HashJoin 15609.38 root inner join, equal:[eq(test.t2.a, test.t1.a)]", " ├─TableReader(Build) 9990.00 root data:Selection", " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", " │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", - " └─HashJoin(Probe) 99900000.00 root CARTESIAN inner join", + " └─HashJoin(Probe) 12487.50 root left outer join, equal:[eq(test.t2.b, test.t3.b)]", " ├─TableReader(Build) 9990.00 root data:Selection", - " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", - " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", - " └─TableReader(Probe) 10000.00 root data:TableFullScan", - " └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo" + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", + " └─TableReader(Probe) 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", + " └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo" ], "Warning": null }, { - "SQL": "select /*+ leading(t3, t1) */ * from t1 join t2 on t1.a=t2.a cross join t3", + "SQL": "select /*+ leading(t3, t1) */ * from t1 join t2 on t1.a=t2.a left join t3 on t2.b=t3.b", "Plan": [ - "Projection 124875000.00 root test.t1.a, test.t1.b, test.t2.a, test.t2.b, test.t3.a, test.t3.b", - "└─HashJoin 124875000.00 root inner join, equal:[eq(test.t1.a, test.t2.a)]", + "HashJoin 15609.38 root left outer join, equal:[eq(test.t2.b, test.t3.b)]", + "├─TableReader(Build) 9990.00 root data:Selection", + "│ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.b))", + "│ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", + "└─HashJoin(Probe) 12487.50 root inner join, equal:[eq(test.t1.a, test.t2.a)]", " ├─TableReader(Build) 9990.00 root data:Selection", " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", - " └─HashJoin(Probe) 99900000.00 root CARTESIAN inner join", - " ├─TableReader(Build) 9990.00 root data:Selection", - " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", - " │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", - " └─TableReader(Probe) 10000.00 root data:TableFullScan", - " └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo" + " └─TableReader(Probe) 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", + " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" ], - "Warning": null - } - ] - }, - { - "Name": "TestJoinOrderHint4TiFlash", - "Cases": [ + "Warning": [ + "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" + ] + }, { - "SQL": "select /*+ straight_join() */ * from t1 join t2 on t1.a=t2.a join t3 on t2.b=t3.b", + "SQL": "select /*+ leading(t2) */ * from t1 join t2 on t1.a=t2.a right join t3 on t2.b=t3.b", "Plan": [ - "TableReader 15593.77 root data:ExchangeSender", - "└─ExchangeSender 15593.77 mpp[tiflash] ExchangeType: PassThrough", - " └─HashJoin 15593.77 mpp[tiflash] inner join, equal:[eq(test.t2.b, test.t3.b)]", - " ├─ExchangeReceiver(Build) 9990.00 mpp[tiflash] ", - " │ └─ExchangeSender 9990.00 mpp[tiflash] ExchangeType: Broadcast", - " │ └─Selection 9990.00 mpp[tiflash] not(isnull(test.t3.b))", - " │ └─TableFullScan 10000.00 mpp[tiflash] table:t3 keep order:false, stats:pseudo", - " └─HashJoin(Probe) 12475.01 mpp[tiflash] inner join, equal:[eq(test.t1.a, test.t2.a)]", - " ├─ExchangeReceiver(Build) 9980.01 mpp[tiflash] ", - " │ └─ExchangeSender 9980.01 mpp[tiflash] ExchangeType: Broadcast", - " │ └─Selection 9980.01 mpp[tiflash] not(isnull(test.t2.a)), not(isnull(test.t2.b))", - " │ └─TableFullScan 10000.00 mpp[tiflash] table:t2 keep order:false, stats:pseudo", - " └─Selection(Probe) 9990.00 mpp[tiflash] not(isnull(test.t1.a))", - " └─TableFullScan 10000.00 mpp[tiflash] table:t1 keep order:false, stats:pseudo" + "HashJoin 15593.77 root right outer join, equal:[eq(test.t2.b, test.t3.b)]", + "├─TableReader(Build) 10000.00 root data:TableFullScan", + "│ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", + "└─Projection(Probe) 12475.01 root test.t1.a, test.t1.b, test.t2.a, test.t2.b", + " └─HashJoin 12475.01 root inner join, equal:[eq(test.t2.a, test.t1.a)]", + " ├─TableReader(Build) 9980.01 root data:Selection", + " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t2.a)), not(isnull(test.t2.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", + " └─TableReader(Probe) 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", + " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" ], "Warning": null }, { - "SQL": "select /*+ leading(t2) */ * from t1 join t2 on t1.a=t2.a join t3 on t2.b=t3.b", + "SQL": "select /*+ leading(t3) */ * from t1 join t2 on t1.a=t2.a right join t3 on t2.b=t3.b", "Plan": [ - "TableReader 15593.77 root data:ExchangeSender", - "└─ExchangeSender 15593.77 mpp[tiflash] ExchangeType: PassThrough", - " └─Projection 15593.77 mpp[tiflash] test.t1.a, test.t1.b, test.t2.a, test.t2.b, test.t3.a, test.t3.b", - " └─HashJoin 15593.77 mpp[tiflash] inner join, equal:[eq(test.t2.b, test.t3.b)]", - " ├─ExchangeReceiver(Build) 9990.00 mpp[tiflash] ", - " │ └─ExchangeSender 9990.00 mpp[tiflash] ExchangeType: Broadcast", - " │ └─Selection 9990.00 mpp[tiflash] not(isnull(test.t3.b))", - " │ └─TableFullScan 10000.00 mpp[tiflash] table:t3 keep order:false, stats:pseudo", - " └─HashJoin(Probe) 12475.01 mpp[tiflash] inner join, equal:[eq(test.t2.a, test.t1.a)]", - " ├─ExchangeReceiver(Build) 9980.01 mpp[tiflash] ", - " │ └─ExchangeSender 9980.01 mpp[tiflash] ExchangeType: Broadcast", - " │ └─Selection 9980.01 mpp[tiflash] not(isnull(test.t2.a)), not(isnull(test.t2.b))", - " │ └─TableFullScan 10000.00 mpp[tiflash] table:t2 keep order:false, stats:pseudo", - " └─Selection(Probe) 9990.00 mpp[tiflash] not(isnull(test.t1.a))", - " └─TableFullScan 10000.00 mpp[tiflash] table:t1 keep order:false, stats:pseudo" + "HashJoin 15593.77 root right outer join, equal:[eq(test.t2.b, test.t3.b)]", + "├─TableReader(Build) 10000.00 root data:TableFullScan", + "│ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", + "└─Projection(Probe) 12475.01 root test.t1.a, test.t1.b, test.t2.a, test.t2.b", + " └─HashJoin 12475.01 root inner join, equal:[eq(test.t2.a, test.t1.a)]", + " ├─TableReader(Build) 9980.01 root data:Selection", + " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t2.a)), not(isnull(test.t2.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", + " └─TableReader(Probe) 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", + " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" ], "Warning": null }, { - "SQL": "select /*+ leading(t3) */ * from t1 join t2 on t1.a=t2.a join t3 on t2.b=t3.b", + "SQL": "select /*+ leading(t2, t3) */ * from t1 join t2 on t1.a=t2.a right join t3 on t2.b=t3.b", "Plan": [ - "TableReader 15593.77 root data:ExchangeSender", - "└─ExchangeSender 15593.77 mpp[tiflash] ExchangeType: PassThrough", - " └─Projection 15593.77 mpp[tiflash] test.t1.a, test.t1.b, test.t2.a, test.t2.b, test.t3.a, test.t3.b", - " └─HashJoin 15593.77 mpp[tiflash] inner join, equal:[eq(test.t2.a, test.t1.a)]", - " ├─ExchangeReceiver(Build) 9990.00 mpp[tiflash] ", - " │ └─ExchangeSender 9990.00 mpp[tiflash] ExchangeType: Broadcast", - " │ └─Selection 9990.00 mpp[tiflash] not(isnull(test.t1.a))", - " │ └─TableFullScan 10000.00 mpp[tiflash] table:t1 keep order:false, stats:pseudo", - " └─HashJoin(Probe) 12475.01 mpp[tiflash] inner join, equal:[eq(test.t3.b, test.t2.b)]", - " ├─ExchangeReceiver(Build) 9980.01 mpp[tiflash] ", - " │ └─ExchangeSender 9980.01 mpp[tiflash] ExchangeType: Broadcast", - " │ └─Selection 9980.01 mpp[tiflash] not(isnull(test.t2.a)), not(isnull(test.t2.b))", - " │ └─TableFullScan 10000.00 mpp[tiflash] table:t2 keep order:false, stats:pseudo", - " └─Selection(Probe) 9990.00 mpp[tiflash] not(isnull(test.t3.b))", - " └─TableFullScan 10000.00 mpp[tiflash] table:t3 keep order:false, stats:pseudo" + "HashJoin 15593.77 root right outer join, equal:[eq(test.t2.b, test.t3.b)]", + "├─TableReader(Build) 10000.00 root data:TableFullScan", + "│ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", + "└─Projection(Probe) 12475.01 root test.t1.a, test.t1.b, test.t2.a, test.t2.b", + " └─HashJoin 12475.01 root inner join, equal:[eq(test.t2.a, test.t1.a)]", + " ├─TableReader(Build) 9980.01 root data:Selection", + " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t2.a)), not(isnull(test.t2.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", + " └─TableReader(Probe) 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", + " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" + ], + "Warning": [ + "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid", + "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" + ] + }, + { + "SQL": "select /*+ leading(t3, t2) */ * from t1 join t2 on t1.a=t2.a right join t3 on t2.b=t3.b", + "Plan": [ + "HashJoin 15593.77 root right outer join, equal:[eq(test.t2.b, test.t3.b)]", + "├─TableReader(Build) 10000.00 root data:TableFullScan", + "│ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", + "└─Projection(Probe) 12475.01 root test.t1.a, test.t1.b, test.t2.a, test.t2.b", + " └─HashJoin 12475.01 root inner join, equal:[eq(test.t2.a, test.t1.a)]", + " ├─TableReader(Build) 9980.01 root data:Selection", + " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t2.a)), not(isnull(test.t2.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", + " └─TableReader(Probe) 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", + " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" + ], + "Warning": [ + "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid", + "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" + ] + }, + { + "SQL": "select /*+ leading(t3, t1) */ * from t1 join t2 on t1.a=t2.a right join t3 on t2.b=t3.b", + "Plan": [ + "HashJoin 15593.77 root right outer join, equal:[eq(test.t2.b, test.t3.b)]", + "├─TableReader(Build) 10000.00 root data:TableFullScan", + "│ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", + "└─Projection(Probe) 12475.01 root test.t1.a, test.t1.b, test.t2.a, test.t2.b", + " └─HashJoin 12475.01 root inner join, equal:[eq(test.t2.a, test.t1.a)]", + " ├─TableReader(Build) 9980.01 root data:Selection", + " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t2.a)), not(isnull(test.t2.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", + " └─TableReader(Probe) 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", + " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" + ], + "Warning": [ + "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid", + "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" + ] + }, + { + "SQL": "select /*+ leading(t2) */ * from t1 join t2 on t1.a=t2.a cross join t3", + "Plan": [ + "Projection 124875000.00 root test.t1.a, test.t1.b, test.t2.a, test.t2.b, test.t3.a, test.t3.b", + "└─HashJoin 124875000.00 root CARTESIAN inner join", + " ├─TableReader(Build) 10000.00 root data:TableFullScan", + " │ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 12487.50 root inner join, equal:[eq(test.t2.a, test.t1.a)]", + " ├─TableReader(Build) 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", + " └─TableReader(Probe) 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", + " └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo" ], "Warning": null }, { - "SQL": "select /*+ leading(t2, t3) */ * from t1 join t2 on t1.a=t2.a join t3 on t2.b=t3.b", + "SQL": "select /*+ leading(t3) */ * from t1 join t2 on t1.a=t2.a cross join t3", "Plan": [ - "TableReader 15593.77 root data:ExchangeSender", - "└─ExchangeSender 15593.77 mpp[tiflash] ExchangeType: PassThrough", - " └─Projection 15593.77 mpp[tiflash] test.t1.a, test.t1.b, test.t2.a, test.t2.b, test.t3.a, test.t3.b", - " └─HashJoin 15593.77 mpp[tiflash] inner join, equal:[eq(test.t2.a, test.t1.a)]", - " ├─ExchangeReceiver(Build) 9990.00 mpp[tiflash] ", - " │ └─ExchangeSender 9990.00 mpp[tiflash] ExchangeType: Broadcast", - " │ └─Selection 9990.00 mpp[tiflash] not(isnull(test.t1.a))", - " │ └─TableFullScan 10000.00 mpp[tiflash] table:t1 keep order:false, stats:pseudo", - " └─HashJoin(Probe) 12475.01 mpp[tiflash] inner join, equal:[eq(test.t2.b, test.t3.b)]", - " ├─ExchangeReceiver(Build) 9980.01 mpp[tiflash] ", - " │ └─ExchangeSender 9980.01 mpp[tiflash] ExchangeType: Broadcast", - " │ └─Selection 9980.01 mpp[tiflash] not(isnull(test.t2.a)), not(isnull(test.t2.b))", - " │ └─TableFullScan 10000.00 mpp[tiflash] table:t2 keep order:false, stats:pseudo", - " └─Selection(Probe) 9990.00 mpp[tiflash] not(isnull(test.t3.b))", - " └─TableFullScan 10000.00 mpp[tiflash] table:t3 keep order:false, stats:pseudo" + "Projection 124875000.00 root test.t1.a, test.t1.b, test.t2.a, test.t2.b, test.t3.a, test.t3.b", + "└─HashJoin 124875000.00 root CARTESIAN inner join", + " ├─TableReader(Build) 10000.00 root data:TableFullScan", + " │ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 12487.50 root inner join, equal:[eq(test.t1.a, test.t2.a)]", + " ├─TableReader(Build) 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", + " └─TableReader(Probe) 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", + " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" + ], + "Warning": [ + "Warning 1815 leading hint is inapplicable, check if the leading hint table has join conditions with other tables" + ] + }, + { + "SQL": "select /*+ leading(t2, t3) */ * from t1 join t2 on t1.a=t2.a cross join t3", + "Plan": [ + "Projection 124875000.00 root test.t1.a, test.t1.b, test.t2.a, test.t2.b, test.t3.a, test.t3.b", + "└─HashJoin 124875000.00 root inner join, equal:[eq(test.t2.a, test.t1.a)]", + " ├─TableReader(Build) 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 99900000.00 root CARTESIAN inner join", + " ├─TableReader(Build) 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", + " └─TableReader(Probe) 10000.00 root data:TableFullScan", + " └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo" ], "Warning": null }, { - "SQL": "select /*+ leading(t3, t2) */ * from t1 join t2 on t1.a=t2.a join t3 on t2.b=t3.b", + "SQL": "select /*+ leading(t3, t2) */ * from t1 join t2 on t1.a=t2.a cross join t3", "Plan": [ - "TableReader 15593.77 root data:ExchangeSender", - "└─ExchangeSender 15593.77 mpp[tiflash] ExchangeType: PassThrough", - " └─Projection 15593.77 mpp[tiflash] test.t1.a, test.t1.b, test.t2.a, test.t2.b, test.t3.a, test.t3.b", - " └─HashJoin 15593.77 mpp[tiflash] inner join, equal:[eq(test.t2.a, test.t1.a)]", - " ├─ExchangeReceiver(Build) 9990.00 mpp[tiflash] ", - " │ └─ExchangeSender 9990.00 mpp[tiflash] ExchangeType: Broadcast", - " │ └─Selection 9990.00 mpp[tiflash] not(isnull(test.t1.a))", - " │ └─TableFullScan 10000.00 mpp[tiflash] table:t1 keep order:false, stats:pseudo", - " └─HashJoin(Probe) 12475.01 mpp[tiflash] inner join, equal:[eq(test.t3.b, test.t2.b)]", - " ├─ExchangeReceiver(Build) 9980.01 mpp[tiflash] ", - " │ └─ExchangeSender 9980.01 mpp[tiflash] ExchangeType: Broadcast", - " │ └─Selection 9980.01 mpp[tiflash] not(isnull(test.t2.a)), not(isnull(test.t2.b))", - " │ └─TableFullScan 10000.00 mpp[tiflash] table:t2 keep order:false, stats:pseudo", - " └─Selection(Probe) 9990.00 mpp[tiflash] not(isnull(test.t3.b))", - " └─TableFullScan 10000.00 mpp[tiflash] table:t3 keep order:false, stats:pseudo" + "Projection 124875000.00 root test.t1.a, test.t1.b, test.t2.a, test.t2.b, test.t3.a, test.t3.b", + "└─HashJoin 124875000.00 root inner join, equal:[eq(test.t2.a, test.t1.a)]", + " ├─TableReader(Build) 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 99900000.00 root CARTESIAN inner join", + " ├─TableReader(Build) 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", + " └─TableReader(Probe) 10000.00 root data:TableFullScan", + " └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo" ], "Warning": null }, { - "SQL": "select /*+ leading(t3, t1) */ * from t1 join t2 on t1.a=t2.a join t3 on t2.b=t3.b", + "SQL": "select /*+ leading(t3, t1) */ * from t1 join t2 on t1.a=t2.a cross join t3", "Plan": [ - "TableReader 124625374.88 root data:ExchangeSender", - "└─ExchangeSender 124625374.88 mpp[tiflash] ExchangeType: PassThrough", - " └─Projection 124625374.88 mpp[tiflash] test.t1.a, test.t1.b, test.t2.a, test.t2.b, test.t3.a, test.t3.b", - " └─HashJoin 124625374.88 mpp[tiflash] inner join, equal:[eq(test.t1.a, test.t2.a) eq(test.t3.b, test.t2.b)]", - " ├─ExchangeReceiver(Build) 9980.01 mpp[tiflash] ", - " │ └─ExchangeSender 9980.01 mpp[tiflash] ExchangeType: Broadcast", - " │ └─Selection 9980.01 mpp[tiflash] not(isnull(test.t2.a)), not(isnull(test.t2.b))", - " │ └─TableFullScan 10000.00 mpp[tiflash] table:t2 keep order:false, stats:pseudo", - " └─HashJoin(Probe) 99800100.00 mpp[tiflash] CARTESIAN inner join", - " ├─ExchangeReceiver(Build) 9990.00 mpp[tiflash] ", - " │ └─ExchangeSender 9990.00 mpp[tiflash] ExchangeType: Broadcast", - " │ └─Selection 9990.00 mpp[tiflash] not(isnull(test.t3.b))", - " │ └─TableFullScan 10000.00 mpp[tiflash] table:t3 keep order:false, stats:pseudo", - " └─Selection(Probe) 9990.00 mpp[tiflash] not(isnull(test.t1.a))", - " └─TableFullScan 10000.00 mpp[tiflash] table:t1 keep order:false, stats:pseudo" + "Projection 124875000.00 root test.t1.a, test.t1.b, test.t2.a, test.t2.b, test.t3.a, test.t3.b", + "└─HashJoin 124875000.00 root inner join, equal:[eq(test.t1.a, test.t2.a)]", + " ├─TableReader(Build) 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 99900000.00 root CARTESIAN inner join", + " ├─TableReader(Build) 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", + " └─TableReader(Probe) 10000.00 root data:TableFullScan", + " └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo" ], "Warning": null - } - ] - }, - { - "Name": "TestJoinOrderHint4Subquery", - "Cases": [ + }, + { + "SQL": "select /*+ leading(t2, t1) */ * from t1 left join t2 on t1.a=t2.a cross join t3", + "Plan": [ + "HashJoin 124875000.00 root CARTESIAN inner join", + "├─TableReader(Build) 10000.00 root data:TableFullScan", + "│ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", + "└─HashJoin(Probe) 12487.50 root left outer join, equal:[eq(test.t1.a, test.t2.a)]", + " ├─TableReader(Build) 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", + " └─TableReader(Probe) 10000.00 root data:TableFullScan", + " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" + ], + "Warning": [ + "Warning 1815 leading hint is inapplicable, check if the leading hint table has join conditions with other tables" + ] + }, + { + "SQL": "select /*+ leading(t2, t1) */ * from t1 right join t2 on t1.a=t2.a cross join t3", + "Plan": [ + "HashJoin 124875000.00 root CARTESIAN inner join", + "├─TableReader(Build) 10000.00 root data:TableFullScan", + "│ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", + "└─HashJoin(Probe) 12487.50 root right outer join, equal:[eq(test.t1.a, test.t2.a)]", + " ├─TableReader(Build) 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", + " └─TableReader(Probe) 10000.00 root data:TableFullScan", + " └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo" + ], + "Warning": [ + "Warning 1815 leading hint is inapplicable, check if the leading hint table has join conditions with other tables" + ] + }, + { + "SQL": "select /*+ leading(t3, t1) */ * from t1 right join t2 on t1.a=t2.a right join t3 on t2.b=t3.b", + "Plan": [ + "HashJoin 15609.38 root right outer join, equal:[eq(test.t2.b, test.t3.b)]", + "├─TableReader(Build) 10000.00 root data:TableFullScan", + "│ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", + "└─HashJoin(Probe) 12487.50 root right outer join, equal:[eq(test.t1.a, test.t2.a)]", + " ├─TableReader(Build) 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", + " └─TableReader(Probe) 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t2.b))", + " └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo" + ], + "Warning": [ + "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid", + "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" + ] + }, + { + "SQL": "select /*+ leading(t1) */ * from t1 left join t2 on t1.a=t2.a straight_join t3", + "Plan": [ + "HashJoin 124875000.00 root CARTESIAN inner join", + "├─TableReader(Build) 10000.00 root data:TableFullScan", + "│ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", + "└─HashJoin(Probe) 12487.50 root left outer join, equal:[eq(test.t1.a, test.t2.a)]", + " ├─TableReader(Build) 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", + " └─TableReader(Probe) 10000.00 root data:TableFullScan", + " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" + ], + "Warning": null + }, + { + "SQL": "select /*+ leading(t1) */ * from t1 right join t2 on t1.a=t2.a straight_join t3", + "Plan": [ + "HashJoin 124875000.00 root CARTESIAN inner join", + "├─TableReader(Build) 10000.00 root data:TableFullScan", + "│ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", + "└─HashJoin(Probe) 12487.50 root right outer join, equal:[eq(test.t1.a, test.t2.a)]", + " ├─TableReader(Build) 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", + " └─TableReader(Probe) 10000.00 root data:TableFullScan", + " └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo" + ], + "Warning": null + }, + { + "SQL": "select /*+ leading(t1) */ * from t1 left join t2 on t1.a=t2.a cross join t3", + "Plan": [ + "HashJoin 124875000.00 root CARTESIAN inner join", + "├─TableReader(Build) 10000.00 root data:TableFullScan", + "│ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", + "└─HashJoin(Probe) 12487.50 root left outer join, equal:[eq(test.t1.a, test.t2.a)]", + " ├─TableReader(Build) 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", + " └─TableReader(Probe) 10000.00 root data:TableFullScan", + " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" + ], + "Warning": null + }, + { + "SQL": "select /*+ leading(t1) */ * from t1 right join t2 on t1.a=t2.a cross join t3", + "Plan": [ + "HashJoin 124875000.00 root CARTESIAN inner join", + "├─TableReader(Build) 10000.00 root data:TableFullScan", + "│ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", + "└─HashJoin(Probe) 12487.50 root right outer join, equal:[eq(test.t1.a, test.t2.a)]", + " ├─TableReader(Build) 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", + " └─TableReader(Probe) 10000.00 root data:TableFullScan", + " └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo" + ], + "Warning": null + } + ] + }, + { + "Name": "TestJoinOrderHint4TiFlash", + "Cases": [ + { + "SQL": "select /*+ straight_join() */ * from t1 join t2 on t1.a=t2.a join t3 on t2.b=t3.b", + "Plan": [ + "TableReader 15593.77 root data:ExchangeSender", + "└─ExchangeSender 15593.77 mpp[tiflash] ExchangeType: PassThrough", + " └─HashJoin 15593.77 mpp[tiflash] inner join, equal:[eq(test.t2.b, test.t3.b)]", + " ├─ExchangeReceiver(Build) 9990.00 mpp[tiflash] ", + " │ └─ExchangeSender 9990.00 mpp[tiflash] ExchangeType: Broadcast", + " │ └─Selection 9990.00 mpp[tiflash] not(isnull(test.t3.b))", + " │ └─TableFullScan 10000.00 mpp[tiflash] table:t3 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 12475.01 mpp[tiflash] inner join, equal:[eq(test.t1.a, test.t2.a)]", + " ├─ExchangeReceiver(Build) 9980.01 mpp[tiflash] ", + " │ └─ExchangeSender 9980.01 mpp[tiflash] ExchangeType: Broadcast", + " │ └─Selection 9980.01 mpp[tiflash] not(isnull(test.t2.a)), not(isnull(test.t2.b))", + " │ └─TableFullScan 10000.00 mpp[tiflash] table:t2 keep order:false, stats:pseudo", + " └─Selection(Probe) 9990.00 mpp[tiflash] not(isnull(test.t1.a))", + " └─TableFullScan 10000.00 mpp[tiflash] table:t1 keep order:false, stats:pseudo" + ], + "Warning": null + }, + { + "SQL": "select /*+ leading(t2) */ * from t1 join t2 on t1.a=t2.a join t3 on t2.b=t3.b", + "Plan": [ + "TableReader 15593.77 root data:ExchangeSender", + "└─ExchangeSender 15593.77 mpp[tiflash] ExchangeType: PassThrough", + " └─Projection 15593.77 mpp[tiflash] test.t1.a, test.t1.b, test.t2.a, test.t2.b, test.t3.a, test.t3.b", + " └─HashJoin 15593.77 mpp[tiflash] inner join, equal:[eq(test.t2.b, test.t3.b)]", + " ├─ExchangeReceiver(Build) 9990.00 mpp[tiflash] ", + " │ └─ExchangeSender 9990.00 mpp[tiflash] ExchangeType: Broadcast", + " │ └─Selection 9990.00 mpp[tiflash] not(isnull(test.t3.b))", + " │ └─TableFullScan 10000.00 mpp[tiflash] table:t3 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 12475.01 mpp[tiflash] inner join, equal:[eq(test.t2.a, test.t1.a)]", + " ├─ExchangeReceiver(Build) 9980.01 mpp[tiflash] ", + " │ └─ExchangeSender 9980.01 mpp[tiflash] ExchangeType: Broadcast", + " │ └─Selection 9980.01 mpp[tiflash] not(isnull(test.t2.a)), not(isnull(test.t2.b))", + " │ └─TableFullScan 10000.00 mpp[tiflash] table:t2 keep order:false, stats:pseudo", + " └─Selection(Probe) 9990.00 mpp[tiflash] not(isnull(test.t1.a))", + " └─TableFullScan 10000.00 mpp[tiflash] table:t1 keep order:false, stats:pseudo" + ], + "Warning": null + }, + { + "SQL": "select /*+ leading(t3) */ * from t1 join t2 on t1.a=t2.a join t3 on t2.b=t3.b", + "Plan": [ + "TableReader 15593.77 root data:ExchangeSender", + "└─ExchangeSender 15593.77 mpp[tiflash] ExchangeType: PassThrough", + " └─Projection 15593.77 mpp[tiflash] test.t1.a, test.t1.b, test.t2.a, test.t2.b, test.t3.a, test.t3.b", + " └─HashJoin 15593.77 mpp[tiflash] inner join, equal:[eq(test.t2.a, test.t1.a)]", + " ├─ExchangeReceiver(Build) 9990.00 mpp[tiflash] ", + " │ └─ExchangeSender 9990.00 mpp[tiflash] ExchangeType: Broadcast", + " │ └─Selection 9990.00 mpp[tiflash] not(isnull(test.t1.a))", + " │ └─TableFullScan 10000.00 mpp[tiflash] table:t1 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 12475.01 mpp[tiflash] inner join, equal:[eq(test.t3.b, test.t2.b)]", + " ├─ExchangeReceiver(Build) 9980.01 mpp[tiflash] ", + " │ └─ExchangeSender 9980.01 mpp[tiflash] ExchangeType: Broadcast", + " │ └─Selection 9980.01 mpp[tiflash] not(isnull(test.t2.a)), not(isnull(test.t2.b))", + " │ └─TableFullScan 10000.00 mpp[tiflash] table:t2 keep order:false, stats:pseudo", + " └─Selection(Probe) 9990.00 mpp[tiflash] not(isnull(test.t3.b))", + " └─TableFullScan 10000.00 mpp[tiflash] table:t3 keep order:false, stats:pseudo" + ], + "Warning": null + }, + { + "SQL": "select /*+ leading(t2, t3) */ * from t1 join t2 on t1.a=t2.a join t3 on t2.b=t3.b", + "Plan": [ + "TableReader 15593.77 root data:ExchangeSender", + "└─ExchangeSender 15593.77 mpp[tiflash] ExchangeType: PassThrough", + " └─Projection 15593.77 mpp[tiflash] test.t1.a, test.t1.b, test.t2.a, test.t2.b, test.t3.a, test.t3.b", + " └─HashJoin 15593.77 mpp[tiflash] inner join, equal:[eq(test.t2.a, test.t1.a)]", + " ├─ExchangeReceiver(Build) 9990.00 mpp[tiflash] ", + " │ └─ExchangeSender 9990.00 mpp[tiflash] ExchangeType: Broadcast", + " │ └─Selection 9990.00 mpp[tiflash] not(isnull(test.t1.a))", + " │ └─TableFullScan 10000.00 mpp[tiflash] table:t1 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 12475.01 mpp[tiflash] inner join, equal:[eq(test.t2.b, test.t3.b)]", + " ├─ExchangeReceiver(Build) 9980.01 mpp[tiflash] ", + " │ └─ExchangeSender 9980.01 mpp[tiflash] ExchangeType: Broadcast", + " │ └─Selection 9980.01 mpp[tiflash] not(isnull(test.t2.a)), not(isnull(test.t2.b))", + " │ └─TableFullScan 10000.00 mpp[tiflash] table:t2 keep order:false, stats:pseudo", + " └─Selection(Probe) 9990.00 mpp[tiflash] not(isnull(test.t3.b))", + " └─TableFullScan 10000.00 mpp[tiflash] table:t3 keep order:false, stats:pseudo" + ], + "Warning": null + }, + { + "SQL": "select /*+ leading(t3, t2) */ * from t1 join t2 on t1.a=t2.a join t3 on t2.b=t3.b", + "Plan": [ + "TableReader 15593.77 root data:ExchangeSender", + "└─ExchangeSender 15593.77 mpp[tiflash] ExchangeType: PassThrough", + " └─Projection 15593.77 mpp[tiflash] test.t1.a, test.t1.b, test.t2.a, test.t2.b, test.t3.a, test.t3.b", + " └─HashJoin 15593.77 mpp[tiflash] inner join, equal:[eq(test.t2.a, test.t1.a)]", + " ├─ExchangeReceiver(Build) 9990.00 mpp[tiflash] ", + " │ └─ExchangeSender 9990.00 mpp[tiflash] ExchangeType: Broadcast", + " │ └─Selection 9990.00 mpp[tiflash] not(isnull(test.t1.a))", + " │ └─TableFullScan 10000.00 mpp[tiflash] table:t1 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 12475.01 mpp[tiflash] inner join, equal:[eq(test.t3.b, test.t2.b)]", + " ├─ExchangeReceiver(Build) 9980.01 mpp[tiflash] ", + " │ └─ExchangeSender 9980.01 mpp[tiflash] ExchangeType: Broadcast", + " │ └─Selection 9980.01 mpp[tiflash] not(isnull(test.t2.a)), not(isnull(test.t2.b))", + " │ └─TableFullScan 10000.00 mpp[tiflash] table:t2 keep order:false, stats:pseudo", + " └─Selection(Probe) 9990.00 mpp[tiflash] not(isnull(test.t3.b))", + " └─TableFullScan 10000.00 mpp[tiflash] table:t3 keep order:false, stats:pseudo" + ], + "Warning": null + }, + { + "SQL": "select /*+ leading(t3, t1) */ * from t1 join t2 on t1.a=t2.a join t3 on t2.b=t3.b", + "Plan": [ + "TableReader 124625374.88 root data:ExchangeSender", + "└─ExchangeSender 124625374.88 mpp[tiflash] ExchangeType: PassThrough", + " └─Projection 124625374.88 mpp[tiflash] test.t1.a, test.t1.b, test.t2.a, test.t2.b, test.t3.a, test.t3.b", + " └─HashJoin 124625374.88 mpp[tiflash] inner join, equal:[eq(test.t1.a, test.t2.a) eq(test.t3.b, test.t2.b)]", + " ├─ExchangeReceiver(Build) 9980.01 mpp[tiflash] ", + " │ └─ExchangeSender 9980.01 mpp[tiflash] ExchangeType: Broadcast", + " │ └─Selection 9980.01 mpp[tiflash] not(isnull(test.t2.a)), not(isnull(test.t2.b))", + " │ └─TableFullScan 10000.00 mpp[tiflash] table:t2 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 99800100.00 mpp[tiflash] CARTESIAN inner join", + " ├─ExchangeReceiver(Build) 9990.00 mpp[tiflash] ", + " │ └─ExchangeSender 9990.00 mpp[tiflash] ExchangeType: Broadcast", + " │ └─Selection 9990.00 mpp[tiflash] not(isnull(test.t3.b))", + " │ └─TableFullScan 10000.00 mpp[tiflash] table:t3 keep order:false, stats:pseudo", + " └─Selection(Probe) 9990.00 mpp[tiflash] not(isnull(test.t1.a))", + " └─TableFullScan 10000.00 mpp[tiflash] table:t1 keep order:false, stats:pseudo" + ], + "Warning": null + }, + { + "SQL": "select /*+ leading(t1, t2) */ * from t4 join t on t4.a=t.a left join t1 on t.a = t1.a join t2 on t.b = t2.b join t3 on t2.b=t3.b;", + "Plan": [ + "TableReader 24365.26 root data:ExchangeSender", + "└─ExchangeSender 24365.26 mpp[tiflash] ExchangeType: PassThrough", + " └─Projection 24365.26 mpp[tiflash] test.t4.a, test.t4.b, test.t.a, test.t.b, test.t1.a, test.t1.b, test.t2.a, test.t2.b, test.t3.a, test.t3.b", + " └─HashJoin 24365.26 mpp[tiflash] inner join, equal:[eq(test.t2.b, test.t3.b)]", + " ├─ExchangeReceiver(Build) 9990.00 mpp[tiflash] ", + " │ └─ExchangeSender 9990.00 mpp[tiflash] ExchangeType: Broadcast", + " │ └─Selection 9990.00 mpp[tiflash] not(isnull(test.t3.b))", + " │ └─TableFullScan 10000.00 mpp[tiflash] table:t3 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 19492.21 mpp[tiflash] inner join, equal:[eq(test.t.b, test.t2.b)]", + " ├─ExchangeReceiver(Build) 9990.00 mpp[tiflash] ", + " │ └─ExchangeSender 9990.00 mpp[tiflash] ExchangeType: Broadcast", + " │ └─Selection 9990.00 mpp[tiflash] not(isnull(test.t2.b))", + " │ └─TableFullScan 10000.00 mpp[tiflash] table:t2 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 15593.77 mpp[tiflash] left outer join, equal:[eq(test.t.a, test.t1.a)]", + " ├─ExchangeReceiver(Build) 9990.00 mpp[tiflash] ", + " │ └─ExchangeSender 9990.00 mpp[tiflash] ExchangeType: Broadcast", + " │ └─Selection 9990.00 mpp[tiflash] not(isnull(test.t1.a))", + " │ └─TableFullScan 10000.00 mpp[tiflash] table:t1 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 12475.01 mpp[tiflash] inner join, equal:[eq(test.t.a, test.t4.a)]", + " ├─ExchangeReceiver(Build) 9980.01 mpp[tiflash] ", + " │ └─ExchangeSender 9980.01 mpp[tiflash] ExchangeType: Broadcast", + " │ └─Selection 9980.01 mpp[tiflash] not(isnull(test.t.a)), not(isnull(test.t.b))", + " │ └─TableFullScan 10000.00 mpp[tiflash] table:t keep order:false, stats:pseudo", + " └─Selection(Probe) 9990.00 mpp[tiflash] not(isnull(test.t4.a))", + " └─TableFullScan 10000.00 mpp[tiflash] table:t4 keep order:false, stats:pseudo" + ], + "Warning": [ + "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" + ] + }, + { + "SQL": "select /*+ leading(t2, t3) */ * from t4 join t on t4.a=t.a left join t1 on t.a = t1.a join t2 on t.b = t2.b join t3 on t2.b=t3.b;", + "Plan": [ + "TableReader 24365.26 root data:ExchangeSender", + "└─ExchangeSender 24365.26 mpp[tiflash] ExchangeType: PassThrough", + " └─Projection 24365.26 mpp[tiflash] test.t4.a, test.t4.b, test.t.a, test.t.b, test.t1.a, test.t1.b, test.t2.a, test.t2.b, test.t3.a, test.t3.b", + " └─HashJoin 24365.26 mpp[tiflash] left outer join, equal:[eq(test.t.a, test.t1.a)]", + " ├─ExchangeReceiver(Build) 9990.00 mpp[tiflash] ", + " │ └─ExchangeSender 9990.00 mpp[tiflash] ExchangeType: Broadcast", + " │ └─Selection 9990.00 mpp[tiflash] not(isnull(test.t1.a))", + " │ └─TableFullScan 10000.00 mpp[tiflash] table:t1 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 19492.21 mpp[tiflash] inner join, equal:[eq(test.t.a, test.t4.a)]", + " ├─ExchangeReceiver(Build) 9990.00 mpp[tiflash] ", + " │ └─ExchangeSender 9990.00 mpp[tiflash] ExchangeType: Broadcast", + " │ └─Selection 9990.00 mpp[tiflash] not(isnull(test.t4.a))", + " │ └─TableFullScan 10000.00 mpp[tiflash] table:t4 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 15593.77 mpp[tiflash] inner join, equal:[eq(test.t2.b, test.t.b)]", + " ├─ExchangeReceiver(Build) 9980.01 mpp[tiflash] ", + " │ └─ExchangeSender 9980.01 mpp[tiflash] ExchangeType: Broadcast", + " │ └─Selection 9980.01 mpp[tiflash] not(isnull(test.t.a)), not(isnull(test.t.b))", + " │ └─TableFullScan 10000.00 mpp[tiflash] table:t keep order:false, stats:pseudo", + " └─HashJoin(Probe) 12487.50 mpp[tiflash] inner join, equal:[eq(test.t2.b, test.t3.b)]", + " ├─ExchangeReceiver(Build) 9990.00 mpp[tiflash] ", + " │ └─ExchangeSender 9990.00 mpp[tiflash] ExchangeType: Broadcast", + " │ └─Selection 9990.00 mpp[tiflash] not(isnull(test.t2.b))", + " │ └─TableFullScan 10000.00 mpp[tiflash] table:t2 keep order:false, stats:pseudo", + " └─Selection(Probe) 9990.00 mpp[tiflash] not(isnull(test.t3.b))", + " └─TableFullScan 10000.00 mpp[tiflash] table:t3 keep order:false, stats:pseudo" + ], + "Warning": null + }, + { + "SQL": "select /*+ leading(t4, t3, t2, t, t1) */ * from t4 join t on t4.a=t.a left join t1 on t.a = t1.a join t2 on t.b = t2.b join t3 on t2.b=t3.b;", + "Plan": [ + "TableReader 24365.26 root data:ExchangeSender", + "└─ExchangeSender 24365.26 mpp[tiflash] ExchangeType: PassThrough", + " └─Projection 24365.26 mpp[tiflash] test.t4.a, test.t4.b, test.t.a, test.t.b, test.t1.a, test.t1.b, test.t2.a, test.t2.b, test.t3.a, test.t3.b", + " └─HashJoin 24365.26 mpp[tiflash] inner join, equal:[eq(test.t2.b, test.t3.b)]", + " ├─ExchangeReceiver(Build) 9990.00 mpp[tiflash] ", + " │ └─ExchangeSender 9990.00 mpp[tiflash] ExchangeType: Broadcast", + " │ └─Selection 9990.00 mpp[tiflash] not(isnull(test.t3.b))", + " │ └─TableFullScan 10000.00 mpp[tiflash] table:t3 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 19492.21 mpp[tiflash] inner join, equal:[eq(test.t.b, test.t2.b)]", + " ├─ExchangeReceiver(Build) 9990.00 mpp[tiflash] ", + " │ └─ExchangeSender 9990.00 mpp[tiflash] ExchangeType: Broadcast", + " │ └─Selection 9990.00 mpp[tiflash] not(isnull(test.t2.b))", + " │ └─TableFullScan 10000.00 mpp[tiflash] table:t2 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 15593.77 mpp[tiflash] left outer join, equal:[eq(test.t.a, test.t1.a)]", + " ├─ExchangeReceiver(Build) 9990.00 mpp[tiflash] ", + " │ └─ExchangeSender 9990.00 mpp[tiflash] ExchangeType: Broadcast", + " │ └─Selection 9990.00 mpp[tiflash] not(isnull(test.t1.a))", + " │ └─TableFullScan 10000.00 mpp[tiflash] table:t1 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 12475.01 mpp[tiflash] inner join, equal:[eq(test.t.a, test.t4.a)]", + " ├─ExchangeReceiver(Build) 9980.01 mpp[tiflash] ", + " │ └─ExchangeSender 9980.01 mpp[tiflash] ExchangeType: Broadcast", + " │ └─Selection 9980.01 mpp[tiflash] not(isnull(test.t.a)), not(isnull(test.t.b))", + " │ └─TableFullScan 10000.00 mpp[tiflash] table:t keep order:false, stats:pseudo", + " └─Selection(Probe) 9990.00 mpp[tiflash] not(isnull(test.t4.a))", + " └─TableFullScan 10000.00 mpp[tiflash] table:t4 keep order:false, stats:pseudo" + ], + "Warning": [ + "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" + ] + }, + { + "SQL": "select /*+ leading(t4, t3, t2, t) */ * from t4 join t on t4.a=t.a left join t1 on t.a = t1.a join t2 on t.b = t2.b join t3 on t2.b=t3.b;", + "Plan": [ + "TableReader 24365.26 root data:ExchangeSender", + "└─ExchangeSender 24365.26 mpp[tiflash] ExchangeType: PassThrough", + " └─Projection 24365.26 mpp[tiflash] test.t4.a, test.t4.b, test.t.a, test.t.b, test.t1.a, test.t1.b, test.t2.a, test.t2.b, test.t3.a, test.t3.b", + " └─HashJoin 24365.26 mpp[tiflash] inner join, equal:[eq(test.t2.b, test.t3.b)]", + " ├─ExchangeReceiver(Build) 9990.00 mpp[tiflash] ", + " │ └─ExchangeSender 9990.00 mpp[tiflash] ExchangeType: Broadcast", + " │ └─Selection 9990.00 mpp[tiflash] not(isnull(test.t3.b))", + " │ └─TableFullScan 10000.00 mpp[tiflash] table:t3 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 19492.21 mpp[tiflash] inner join, equal:[eq(test.t.b, test.t2.b)]", + " ├─ExchangeReceiver(Build) 9990.00 mpp[tiflash] ", + " │ └─ExchangeSender 9990.00 mpp[tiflash] ExchangeType: Broadcast", + " │ └─Selection 9990.00 mpp[tiflash] not(isnull(test.t2.b))", + " │ └─TableFullScan 10000.00 mpp[tiflash] table:t2 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 15593.77 mpp[tiflash] left outer join, equal:[eq(test.t.a, test.t1.a)]", + " ├─ExchangeReceiver(Build) 9990.00 mpp[tiflash] ", + " │ └─ExchangeSender 9990.00 mpp[tiflash] ExchangeType: Broadcast", + " │ └─Selection 9990.00 mpp[tiflash] not(isnull(test.t1.a))", + " │ └─TableFullScan 10000.00 mpp[tiflash] table:t1 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 12475.01 mpp[tiflash] inner join, equal:[eq(test.t.a, test.t4.a)]", + " ├─ExchangeReceiver(Build) 9980.01 mpp[tiflash] ", + " │ └─ExchangeSender 9980.01 mpp[tiflash] ExchangeType: Broadcast", + " │ └─Selection 9980.01 mpp[tiflash] not(isnull(test.t.a)), not(isnull(test.t.b))", + " │ └─TableFullScan 10000.00 mpp[tiflash] table:t keep order:false, stats:pseudo", + " └─Selection(Probe) 9990.00 mpp[tiflash] not(isnull(test.t4.a))", + " └─TableFullScan 10000.00 mpp[tiflash] table:t4 keep order:false, stats:pseudo" + ], + "Warning": [ + "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" + ] + }, + { + "SQL": "select /*+ leading(t3, t2, t) */ * from t4 join t on t4.a=t.a left join t1 on t.a = t1.a join t2 on t.b = t2.b join t3 on t2.b=t3.b;", + "Plan": [ + "TableReader 24365.26 root data:ExchangeSender", + "└─ExchangeSender 24365.26 mpp[tiflash] ExchangeType: PassThrough", + " └─Projection 24365.26 mpp[tiflash] test.t4.a, test.t4.b, test.t.a, test.t.b, test.t1.a, test.t1.b, test.t2.a, test.t2.b, test.t3.a, test.t3.b", + " └─HashJoin 24365.26 mpp[tiflash] left outer join, equal:[eq(test.t.a, test.t1.a)]", + " ├─ExchangeReceiver(Build) 9990.00 mpp[tiflash] ", + " │ └─ExchangeSender 9990.00 mpp[tiflash] ExchangeType: Broadcast", + " │ └─Selection 9990.00 mpp[tiflash] not(isnull(test.t1.a))", + " │ └─TableFullScan 10000.00 mpp[tiflash] table:t1 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 19492.21 mpp[tiflash] inner join, equal:[eq(test.t.a, test.t4.a)]", + " ├─ExchangeReceiver(Build) 9990.00 mpp[tiflash] ", + " │ └─ExchangeSender 9990.00 mpp[tiflash] ExchangeType: Broadcast", + " │ └─Selection 9990.00 mpp[tiflash] not(isnull(test.t4.a))", + " │ └─TableFullScan 10000.00 mpp[tiflash] table:t4 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 15593.77 mpp[tiflash] inner join, equal:[eq(test.t2.b, test.t.b)]", + " ├─ExchangeReceiver(Build) 9980.01 mpp[tiflash] ", + " │ └─ExchangeSender 9980.01 mpp[tiflash] ExchangeType: Broadcast", + " │ └─Selection 9980.01 mpp[tiflash] not(isnull(test.t.a)), not(isnull(test.t.b))", + " │ └─TableFullScan 10000.00 mpp[tiflash] table:t keep order:false, stats:pseudo", + " └─HashJoin(Probe) 12487.50 mpp[tiflash] inner join, equal:[eq(test.t3.b, test.t2.b)]", + " ├─ExchangeReceiver(Build) 9990.00 mpp[tiflash] ", + " │ └─ExchangeSender 9990.00 mpp[tiflash] ExchangeType: Broadcast", + " │ └─Selection 9990.00 mpp[tiflash] not(isnull(test.t3.b))", + " │ └─TableFullScan 10000.00 mpp[tiflash] table:t3 keep order:false, stats:pseudo", + " └─Selection(Probe) 9990.00 mpp[tiflash] not(isnull(test.t2.b))", + " └─TableFullScan 10000.00 mpp[tiflash] table:t2 keep order:false, stats:pseudo" + ], + "Warning": null + }, + { + "SQL": "select /*+ leading(t3) */ * from t2 left join (t1 left join t3 on t1.a=t3.a) on t2.b=t1.b;", + "Plan": [ + "TableReader 15609.38 root data:ExchangeSender", + "└─ExchangeSender 15609.38 mpp[tiflash] ExchangeType: PassThrough", + " └─HashJoin 15609.38 mpp[tiflash] left outer join, equal:[eq(test.t2.b, test.t1.b)]", + " ├─ExchangeReceiver(Build) 10000.00 mpp[tiflash] ", + " │ └─ExchangeSender 10000.00 mpp[tiflash] ExchangeType: HashPartition, Hash Cols: [name: test.t2.b, collate: binary]", + " │ └─TableFullScan 10000.00 mpp[tiflash] table:t2 keep order:false, stats:pseudo", + " └─ExchangeReceiver(Probe) 12487.50 mpp[tiflash] ", + " └─ExchangeSender 12487.50 mpp[tiflash] ExchangeType: HashPartition, Hash Cols: [name: test.t1.b, collate: binary]", + " └─HashJoin 12487.50 mpp[tiflash] left outer join, equal:[eq(test.t1.a, test.t3.a)]", + " ├─ExchangeReceiver(Build) 9990.00 mpp[tiflash] ", + " │ └─ExchangeSender 9990.00 mpp[tiflash] ExchangeType: Broadcast", + " │ └─Selection 9990.00 mpp[tiflash] not(isnull(test.t3.a))", + " │ └─TableFullScan 10000.00 mpp[tiflash] table:t3 keep order:false, stats:pseudo", + " └─Selection(Probe) 9990.00 mpp[tiflash] not(isnull(test.t1.b))", + " └─TableFullScan 10000.00 mpp[tiflash] table:t1 keep order:false, stats:pseudo" + ], + "Warning": null + }, + { + "SQL": "select /*+ leading(t2, t1, t3) */ * from t2 left join (t1 left join t3 on t1.a=t3.a) on t2.b=t1.b;", + "Plan": [ + "TableReader 15609.38 root data:ExchangeSender", + "└─ExchangeSender 15609.38 mpp[tiflash] ExchangeType: PassThrough", + " └─HashJoin 15609.38 mpp[tiflash] left outer join, equal:[eq(test.t2.b, test.t1.b)]", + " ├─ExchangeReceiver(Build) 10000.00 mpp[tiflash] ", + " │ └─ExchangeSender 10000.00 mpp[tiflash] ExchangeType: HashPartition, Hash Cols: [name: test.t2.b, collate: binary]", + " │ └─TableFullScan 10000.00 mpp[tiflash] table:t2 keep order:false, stats:pseudo", + " └─ExchangeReceiver(Probe) 12487.50 mpp[tiflash] ", + " └─ExchangeSender 12487.50 mpp[tiflash] ExchangeType: HashPartition, Hash Cols: [name: test.t1.b, collate: binary]", + " └─HashJoin 12487.50 mpp[tiflash] left outer join, equal:[eq(test.t1.a, test.t3.a)]", + " ├─ExchangeReceiver(Build) 9990.00 mpp[tiflash] ", + " │ └─ExchangeSender 9990.00 mpp[tiflash] ExchangeType: Broadcast", + " │ └─Selection 9990.00 mpp[tiflash] not(isnull(test.t3.a))", + " │ └─TableFullScan 10000.00 mpp[tiflash] table:t3 keep order:false, stats:pseudo", + " └─Selection(Probe) 9990.00 mpp[tiflash] not(isnull(test.t1.b))", + " └─TableFullScan 10000.00 mpp[tiflash] table:t1 keep order:false, stats:pseudo" + ], + "Warning": [ + "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid", + "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" + ] + }, + { + "SQL": "select /*+ leading(t2, t3) */ * from t2 left join (t1 join t3 on t1.a=t3.a join t4 on t3.b = t4.b) on t2.b=t1.b;", + "Plan": [ + "TableReader 19492.21 root data:ExchangeSender", + "└─ExchangeSender 19492.21 mpp[tiflash] ExchangeType: PassThrough", + " └─HashJoin 19492.21 mpp[tiflash] left outer join, equal:[eq(test.t2.b, test.t1.b)]", + " ├─ExchangeReceiver(Build) 10000.00 mpp[tiflash] ", + " │ └─ExchangeSender 10000.00 mpp[tiflash] ExchangeType: HashPartition, Hash Cols: [name: test.t2.b, collate: binary]", + " │ └─TableFullScan 10000.00 mpp[tiflash] table:t2 keep order:false, stats:pseudo", + " └─ExchangeReceiver(Probe) 15593.77 mpp[tiflash] ", + " └─ExchangeSender 15593.77 mpp[tiflash] ExchangeType: HashPartition, Hash Cols: [name: test.t1.b, collate: binary]", + " └─HashJoin 15593.77 mpp[tiflash] inner join, equal:[eq(test.t3.b, test.t4.b)]", + " ├─ExchangeReceiver(Build) 9990.00 mpp[tiflash] ", + " │ └─ExchangeSender 9990.00 mpp[tiflash] ExchangeType: Broadcast", + " │ └─Selection 9990.00 mpp[tiflash] not(isnull(test.t4.b))", + " │ └─TableFullScan 10000.00 mpp[tiflash] table:t4 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 12475.01 mpp[tiflash] inner join, equal:[eq(test.t1.a, test.t3.a)]", + " ├─ExchangeReceiver(Build) 9980.01 mpp[tiflash] ", + " │ └─ExchangeSender 9980.01 mpp[tiflash] ExchangeType: Broadcast", + " │ └─Selection 9980.01 mpp[tiflash] not(isnull(test.t1.a)), not(isnull(test.t1.b))", + " │ └─TableFullScan 10000.00 mpp[tiflash] table:t1 keep order:false, stats:pseudo", + " └─Selection(Probe) 9980.01 mpp[tiflash] not(isnull(test.t3.a)), not(isnull(test.t3.b))", + " └─TableFullScan 10000.00 mpp[tiflash] table:t3 keep order:false, stats:pseudo" + ], + "Warning": [ + "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid", + "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" + ] + }, + { + "SQL": "select /*+ leading(t3, t4) */ * from t2 left join (t1 join t3 on t1.a=t3.a join t4 on t3.b = t4.b) on t2.b=t1.b;", + "Plan": [ + "TableReader 19492.21 root data:ExchangeSender", + "└─ExchangeSender 19492.21 mpp[tiflash] ExchangeType: PassThrough", + " └─HashJoin 19492.21 mpp[tiflash] left outer join, equal:[eq(test.t2.b, test.t1.b)]", + " ├─ExchangeReceiver(Build) 10000.00 mpp[tiflash] ", + " │ └─ExchangeSender 10000.00 mpp[tiflash] ExchangeType: HashPartition, Hash Cols: [name: test.t2.b, collate: binary]", + " │ └─TableFullScan 10000.00 mpp[tiflash] table:t2 keep order:false, stats:pseudo", + " └─ExchangeReceiver(Probe) 15593.77 mpp[tiflash] ", + " └─ExchangeSender 15593.77 mpp[tiflash] ExchangeType: HashPartition, Hash Cols: [name: test.t1.b, collate: binary]", + " └─Projection 15593.77 mpp[tiflash] test.t1.a, test.t1.b, test.t3.a, test.t3.b, test.t4.a, test.t4.b", + " └─HashJoin 15593.77 mpp[tiflash] inner join, equal:[eq(test.t3.a, test.t1.a)]", + " ├─ExchangeReceiver(Build) 9980.01 mpp[tiflash] ", + " │ └─ExchangeSender 9980.01 mpp[tiflash] ExchangeType: Broadcast", + " │ └─Selection 9980.01 mpp[tiflash] not(isnull(test.t1.a)), not(isnull(test.t1.b))", + " │ └─TableFullScan 10000.00 mpp[tiflash] table:t1 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 12475.01 mpp[tiflash] inner join, equal:[eq(test.t3.b, test.t4.b)]", + " ├─ExchangeReceiver(Build) 9980.01 mpp[tiflash] ", + " │ └─ExchangeSender 9980.01 mpp[tiflash] ExchangeType: Broadcast", + " │ └─Selection 9980.01 mpp[tiflash] not(isnull(test.t3.a)), not(isnull(test.t3.b))", + " │ └─TableFullScan 10000.00 mpp[tiflash] table:t3 keep order:false, stats:pseudo", + " └─Selection(Probe) 9990.00 mpp[tiflash] not(isnull(test.t4.b))", + " └─TableFullScan 10000.00 mpp[tiflash] table:t4 keep order:false, stats:pseudo" + ], + "Warning": null + }, + { + "SQL": "select /*+ leading(t3, t4) */ * from t2 left join (t1 join t3 on t1.a=t3.a join t4 on t3.b = t4.b) on t2.b=t1.b join t5 on t2.a = t5.a join t6 on t5.b=t6.b;", + "Plan": [ + "TableReader 30426.12 root data:ExchangeSender", + "└─ExchangeSender 30426.12 mpp[tiflash] ExchangeType: PassThrough", + " └─Projection 30426.12 mpp[tiflash] test.t2.a, test.t2.b, test.t1.a, test.t1.b, test.t3.a, test.t3.b, test.t4.a, test.t4.b, test.t5.a, test.t5.b, test.t6.a, test.t6.b", + " └─HashJoin 30426.12 mpp[tiflash] left outer join, equal:[eq(test.t2.b, test.t1.b)]", + " ├─ExchangeReceiver(Build) 15593.77 mpp[tiflash] ", + " │ └─ExchangeSender 15593.77 mpp[tiflash] ExchangeType: HashPartition, Hash Cols: [name: test.t2.b, collate: binary]", + " │ └─HashJoin 15593.77 mpp[tiflash] inner join, equal:[eq(test.t5.b, test.t6.b)]", + " │ ├─ExchangeReceiver(Build) 9990.00 mpp[tiflash] ", + " │ │ └─ExchangeSender 9990.00 mpp[tiflash] ExchangeType: Broadcast", + " │ │ └─Selection 9990.00 mpp[tiflash] not(isnull(test.t6.b))", + " │ │ └─TableFullScan 10000.00 mpp[tiflash] table:t6 keep order:false, stats:pseudo", + " │ └─HashJoin(Probe) 12475.01 mpp[tiflash] inner join, equal:[eq(test.t5.a, test.t2.a)]", + " │ ├─ExchangeReceiver(Build) 9980.01 mpp[tiflash] ", + " │ │ └─ExchangeSender 9980.01 mpp[tiflash] ExchangeType: Broadcast", + " │ │ └─Selection 9980.01 mpp[tiflash] not(isnull(test.t5.a)), not(isnull(test.t5.b))", + " │ │ └─TableFullScan 10000.00 mpp[tiflash] table:t5 keep order:false, stats:pseudo", + " │ └─Selection(Probe) 9990.00 mpp[tiflash] not(isnull(test.t2.a))", + " │ └─TableFullScan 10000.00 mpp[tiflash] table:t2 keep order:false, stats:pseudo", + " └─ExchangeReceiver(Probe) 15593.77 mpp[tiflash] ", + " └─ExchangeSender 15593.77 mpp[tiflash] ExchangeType: HashPartition, Hash Cols: [name: test.t1.b, collate: binary]", + " └─Projection 15593.77 mpp[tiflash] test.t1.a, test.t1.b, test.t3.a, test.t3.b, test.t4.a, test.t4.b", + " └─HashJoin 15593.77 mpp[tiflash] inner join, equal:[eq(test.t3.a, test.t1.a)]", + " ├─ExchangeReceiver(Build) 9980.01 mpp[tiflash] ", + " │ └─ExchangeSender 9980.01 mpp[tiflash] ExchangeType: Broadcast", + " │ └─Selection 9980.01 mpp[tiflash] not(isnull(test.t1.a)), not(isnull(test.t1.b))", + " │ └─TableFullScan 10000.00 mpp[tiflash] table:t1 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 12475.01 mpp[tiflash] inner join, equal:[eq(test.t3.b, test.t4.b)]", + " ├─ExchangeReceiver(Build) 9980.01 mpp[tiflash] ", + " │ └─ExchangeSender 9980.01 mpp[tiflash] ExchangeType: Broadcast", + " │ └─Selection 9980.01 mpp[tiflash] not(isnull(test.t3.a)), not(isnull(test.t3.b))", + " │ └─TableFullScan 10000.00 mpp[tiflash] table:t3 keep order:false, stats:pseudo", + " └─Selection(Probe) 9990.00 mpp[tiflash] not(isnull(test.t4.b))", + " └─TableFullScan 10000.00 mpp[tiflash] table:t4 keep order:false, stats:pseudo" + ], + "Warning": null + }, + { + "SQL": "select /*+ leading(t3, t4) leading(t5, t6) */ * from t2 left join (t1 join t3 on t1.a=t3.a join t4 on t3.b = t4.b) on t2.b=t1.b join t5 on t2.a = t5.a join t6 on t5.b=t6.b;", + "Plan": [ + "TableReader 30426.12 root data:ExchangeSender", + "└─ExchangeSender 30426.12 mpp[tiflash] ExchangeType: PassThrough", + " └─Projection 30426.12 mpp[tiflash] test.t2.a, test.t2.b, test.t1.a, test.t1.b, test.t3.a, test.t3.b, test.t4.a, test.t4.b, test.t5.a, test.t5.b, test.t6.a, test.t6.b", + " └─HashJoin 30426.12 mpp[tiflash] left outer join, equal:[eq(test.t2.b, test.t1.b)]", + " ├─ExchangeReceiver(Build) 15593.77 mpp[tiflash] ", + " │ └─ExchangeSender 15593.77 mpp[tiflash] ExchangeType: HashPartition, Hash Cols: [name: test.t2.b, collate: binary]", + " │ └─HashJoin 15593.77 mpp[tiflash] inner join, equal:[eq(test.t5.b, test.t6.b)]", + " │ ├─ExchangeReceiver(Build) 9990.00 mpp[tiflash] ", + " │ │ └─ExchangeSender 9990.00 mpp[tiflash] ExchangeType: Broadcast", + " │ │ └─Selection 9990.00 mpp[tiflash] not(isnull(test.t6.b))", + " │ │ └─TableFullScan 10000.00 mpp[tiflash] table:t6 keep order:false, stats:pseudo", + " │ └─HashJoin(Probe) 12475.01 mpp[tiflash] inner join, equal:[eq(test.t5.a, test.t2.a)]", + " │ ├─ExchangeReceiver(Build) 9980.01 mpp[tiflash] ", + " │ │ └─ExchangeSender 9980.01 mpp[tiflash] ExchangeType: Broadcast", + " │ │ └─Selection 9980.01 mpp[tiflash] not(isnull(test.t5.a)), not(isnull(test.t5.b))", + " │ │ └─TableFullScan 10000.00 mpp[tiflash] table:t5 keep order:false, stats:pseudo", + " │ └─Selection(Probe) 9990.00 mpp[tiflash] not(isnull(test.t2.a))", + " │ └─TableFullScan 10000.00 mpp[tiflash] table:t2 keep order:false, stats:pseudo", + " └─ExchangeReceiver(Probe) 15593.77 mpp[tiflash] ", + " └─ExchangeSender 15593.77 mpp[tiflash] ExchangeType: HashPartition, Hash Cols: [name: test.t1.b, collate: binary]", + " └─HashJoin 15593.77 mpp[tiflash] inner join, equal:[eq(test.t3.b, test.t4.b)]", + " ├─ExchangeReceiver(Build) 9990.00 mpp[tiflash] ", + " │ └─ExchangeSender 9990.00 mpp[tiflash] ExchangeType: Broadcast", + " │ └─Selection 9990.00 mpp[tiflash] not(isnull(test.t4.b))", + " │ └─TableFullScan 10000.00 mpp[tiflash] table:t4 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 12475.01 mpp[tiflash] inner join, equal:[eq(test.t1.a, test.t3.a)]", + " ├─ExchangeReceiver(Build) 9980.01 mpp[tiflash] ", + " │ └─ExchangeSender 9980.01 mpp[tiflash] ExchangeType: Broadcast", + " │ └─Selection 9980.01 mpp[tiflash] not(isnull(test.t1.a)), not(isnull(test.t1.b))", + " │ └─TableFullScan 10000.00 mpp[tiflash] table:t1 keep order:false, stats:pseudo", + " └─Selection(Probe) 9980.01 mpp[tiflash] not(isnull(test.t3.a)), not(isnull(test.t3.b))", + " └─TableFullScan 10000.00 mpp[tiflash] table:t3 keep order:false, stats:pseudo" + ], + "Warning": [ + "Warning 1815 We can only use one leading hint at most, when multiple leading hints are used, all leading hints will be invalid" + ] + }, + { + "SQL": "select /*+ leading(t5, t6, t3, t4) */ * from t2 left join (t1 join t3 on t1.a=t3.a join t4 on t3.b = t4.b) on t2.b=t1.b join t5 on t2.a = t5.a join t6 on t5.b=t6.b;", + "Plan": [ + "TableReader 30426.12 root data:ExchangeSender", + "└─ExchangeSender 30426.12 mpp[tiflash] ExchangeType: PassThrough", + " └─Projection 30426.12 mpp[tiflash] test.t2.a, test.t2.b, test.t1.a, test.t1.b, test.t3.a, test.t3.b, test.t4.a, test.t4.b, test.t5.a, test.t5.b, test.t6.a, test.t6.b", + " └─HashJoin 30426.12 mpp[tiflash] left outer join, equal:[eq(test.t2.b, test.t1.b)]", + " ├─ExchangeReceiver(Build) 15593.77 mpp[tiflash] ", + " │ └─ExchangeSender 15593.77 mpp[tiflash] ExchangeType: HashPartition, Hash Cols: [name: test.t2.b, collate: binary]", + " │ └─HashJoin 15593.77 mpp[tiflash] inner join, equal:[eq(test.t5.b, test.t6.b)]", + " │ ├─ExchangeReceiver(Build) 9990.00 mpp[tiflash] ", + " │ │ └─ExchangeSender 9990.00 mpp[tiflash] ExchangeType: Broadcast", + " │ │ └─Selection 9990.00 mpp[tiflash] not(isnull(test.t6.b))", + " │ │ └─TableFullScan 10000.00 mpp[tiflash] table:t6 keep order:false, stats:pseudo", + " │ └─HashJoin(Probe) 12475.01 mpp[tiflash] inner join, equal:[eq(test.t5.a, test.t2.a)]", + " │ ├─ExchangeReceiver(Build) 9980.01 mpp[tiflash] ", + " │ │ └─ExchangeSender 9980.01 mpp[tiflash] ExchangeType: Broadcast", + " │ │ └─Selection 9980.01 mpp[tiflash] not(isnull(test.t5.a)), not(isnull(test.t5.b))", + " │ │ └─TableFullScan 10000.00 mpp[tiflash] table:t5 keep order:false, stats:pseudo", + " │ └─Selection(Probe) 9990.00 mpp[tiflash] not(isnull(test.t2.a))", + " │ └─TableFullScan 10000.00 mpp[tiflash] table:t2 keep order:false, stats:pseudo", + " └─ExchangeReceiver(Probe) 15593.77 mpp[tiflash] ", + " └─ExchangeSender 15593.77 mpp[tiflash] ExchangeType: HashPartition, Hash Cols: [name: test.t1.b, collate: binary]", + " └─HashJoin 15593.77 mpp[tiflash] inner join, equal:[eq(test.t3.b, test.t4.b)]", + " ├─ExchangeReceiver(Build) 9990.00 mpp[tiflash] ", + " │ └─ExchangeSender 9990.00 mpp[tiflash] ExchangeType: Broadcast", + " │ └─Selection 9990.00 mpp[tiflash] not(isnull(test.t4.b))", + " │ └─TableFullScan 10000.00 mpp[tiflash] table:t4 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 12475.01 mpp[tiflash] inner join, equal:[eq(test.t1.a, test.t3.a)]", + " ├─ExchangeReceiver(Build) 9980.01 mpp[tiflash] ", + " │ └─ExchangeSender 9980.01 mpp[tiflash] ExchangeType: Broadcast", + " │ └─Selection 9980.01 mpp[tiflash] not(isnull(test.t1.a)), not(isnull(test.t1.b))", + " │ └─TableFullScan 10000.00 mpp[tiflash] table:t1 keep order:false, stats:pseudo", + " └─Selection(Probe) 9980.01 mpp[tiflash] not(isnull(test.t3.a)), not(isnull(test.t3.b))", + " └─TableFullScan 10000.00 mpp[tiflash] table:t3 keep order:false, stats:pseudo" + ], + "Warning": [ + "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid", + "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" + ] + }, + { + "SQL": "select /*+ leading(t1, t2) */ * from t4 join t on t4.a=t.a right join t1 on t.a = t1.a join t2 on t1.b = t2.b join t3 on t2.b=t3.b;", + "Plan": [ + "TableReader 24389.65 root data:ExchangeSender", + "└─ExchangeSender 24389.65 mpp[tiflash] ExchangeType: PassThrough", + " └─HashJoin 24389.65 mpp[tiflash] right outer join, equal:[eq(test.t.a, test.t1.a)]", + " ├─ExchangeReceiver(Build) 12487.50 mpp[tiflash] ", + " │ └─ExchangeSender 12487.50 mpp[tiflash] ExchangeType: HashPartition, Hash Cols: [name: test.t.a, collate: binary]", + " │ └─HashJoin 12487.50 mpp[tiflash] inner join, equal:[eq(test.t4.a, test.t.a)]", + " │ ├─ExchangeReceiver(Build) 9990.00 mpp[tiflash] ", + " │ │ └─ExchangeSender 9990.00 mpp[tiflash] ExchangeType: Broadcast", + " │ │ └─Selection 9990.00 mpp[tiflash] not(isnull(test.t4.a))", + " │ │ └─TableFullScan 10000.00 mpp[tiflash] table:t4 keep order:false, stats:pseudo", + " │ └─Selection(Probe) 9990.00 mpp[tiflash] not(isnull(test.t.a))", + " │ └─TableFullScan 10000.00 mpp[tiflash] table:t keep order:false, stats:pseudo", + " └─ExchangeReceiver(Probe) 15609.38 mpp[tiflash] ", + " └─ExchangeSender 15609.38 mpp[tiflash] ExchangeType: HashPartition, Hash Cols: [name: test.t1.a, collate: binary]", + " └─HashJoin 15609.38 mpp[tiflash] inner join, equal:[eq(test.t2.b, test.t3.b)]", + " ├─ExchangeReceiver(Build) 9990.00 mpp[tiflash] ", + " │ └─ExchangeSender 9990.00 mpp[tiflash] ExchangeType: Broadcast", + " │ └─Selection 9990.00 mpp[tiflash] not(isnull(test.t3.b))", + " │ └─TableFullScan 10000.00 mpp[tiflash] table:t3 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 12487.50 mpp[tiflash] inner join, equal:[eq(test.t1.b, test.t2.b)]", + " ├─ExchangeReceiver(Build) 9990.00 mpp[tiflash] ", + " │ └─ExchangeSender 9990.00 mpp[tiflash] ExchangeType: Broadcast", + " │ └─Selection 9990.00 mpp[tiflash] not(isnull(test.t1.b))", + " │ └─TableFullScan 10000.00 mpp[tiflash] table:t1 keep order:false, stats:pseudo", + " └─Selection(Probe) 9990.00 mpp[tiflash] not(isnull(test.t2.b))", + " └─TableFullScan 10000.00 mpp[tiflash] table:t2 keep order:false, stats:pseudo" + ], + "Warning": null + }, + { + "SQL": "select /*+ leading(t2, t3) */ * from t4 join t on t4.a=t.a right join t1 on t.a = t1.a join t2 on t1.b = t2.b join t3 on t2.b=t3.b;", + "Plan": [ + "TableReader 24389.65 root data:ExchangeSender", + "└─ExchangeSender 24389.65 mpp[tiflash] ExchangeType: PassThrough", + " └─Projection 24389.65 mpp[tiflash] test.t4.a, test.t4.b, test.t.a, test.t.b, test.t1.a, test.t1.b, test.t2.a, test.t2.b, test.t3.a, test.t3.b", + " └─HashJoin 24389.65 mpp[tiflash] right outer join, equal:[eq(test.t.a, test.t1.a)]", + " ├─ExchangeReceiver(Build) 12487.50 mpp[tiflash] ", + " │ └─ExchangeSender 12487.50 mpp[tiflash] ExchangeType: HashPartition, Hash Cols: [name: test.t.a, collate: binary]", + " │ └─HashJoin 12487.50 mpp[tiflash] inner join, equal:[eq(test.t4.a, test.t.a)]", + " │ ├─ExchangeReceiver(Build) 9990.00 mpp[tiflash] ", + " │ │ └─ExchangeSender 9990.00 mpp[tiflash] ExchangeType: Broadcast", + " │ │ └─Selection 9990.00 mpp[tiflash] not(isnull(test.t4.a))", + " │ │ └─TableFullScan 10000.00 mpp[tiflash] table:t4 keep order:false, stats:pseudo", + " │ └─Selection(Probe) 9990.00 mpp[tiflash] not(isnull(test.t.a))", + " │ └─TableFullScan 10000.00 mpp[tiflash] table:t keep order:false, stats:pseudo", + " └─ExchangeReceiver(Probe) 15609.38 mpp[tiflash] ", + " └─ExchangeSender 15609.38 mpp[tiflash] ExchangeType: HashPartition, Hash Cols: [name: test.t1.a, collate: binary]", + " └─HashJoin 15609.38 mpp[tiflash] inner join, equal:[eq(test.t2.b, test.t1.b)]", + " ├─ExchangeReceiver(Build) 9990.00 mpp[tiflash] ", + " │ └─ExchangeSender 9990.00 mpp[tiflash] ExchangeType: Broadcast", + " │ └─Selection 9990.00 mpp[tiflash] not(isnull(test.t1.b))", + " │ └─TableFullScan 10000.00 mpp[tiflash] table:t1 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 12487.50 mpp[tiflash] inner join, equal:[eq(test.t2.b, test.t3.b)]", + " ├─ExchangeReceiver(Build) 9990.00 mpp[tiflash] ", + " │ └─ExchangeSender 9990.00 mpp[tiflash] ExchangeType: Broadcast", + " │ └─Selection 9990.00 mpp[tiflash] not(isnull(test.t2.b))", + " │ └─TableFullScan 10000.00 mpp[tiflash] table:t2 keep order:false, stats:pseudo", + " └─Selection(Probe) 9990.00 mpp[tiflash] not(isnull(test.t3.b))", + " └─TableFullScan 10000.00 mpp[tiflash] table:t3 keep order:false, stats:pseudo" + ], + "Warning": null + }, + { + "SQL": "select /*+ leading(t1, t3) */ * from t4 join t on t4.a=t.a right join t1 on t.a = t1.a join t2 on t1.b = t2.b join t3 on t2.b=t3.b;", + "Plan": [ + "TableReader 24389.65 root data:ExchangeSender", + "└─ExchangeSender 24389.65 mpp[tiflash] ExchangeType: PassThrough", + " └─HashJoin 24389.65 mpp[tiflash] right outer join, equal:[eq(test.t.a, test.t1.a)]", + " ├─ExchangeReceiver(Build) 12487.50 mpp[tiflash] ", + " │ └─ExchangeSender 12487.50 mpp[tiflash] ExchangeType: HashPartition, Hash Cols: [name: test.t.a, collate: binary]", + " │ └─HashJoin 12487.50 mpp[tiflash] inner join, equal:[eq(test.t4.a, test.t.a)]", + " │ ├─ExchangeReceiver(Build) 9990.00 mpp[tiflash] ", + " │ │ └─ExchangeSender 9990.00 mpp[tiflash] ExchangeType: Broadcast", + " │ │ └─Selection 9990.00 mpp[tiflash] not(isnull(test.t4.a))", + " │ │ └─TableFullScan 10000.00 mpp[tiflash] table:t4 keep order:false, stats:pseudo", + " │ └─Selection(Probe) 9990.00 mpp[tiflash] not(isnull(test.t.a))", + " │ └─TableFullScan 10000.00 mpp[tiflash] table:t keep order:false, stats:pseudo", + " └─ExchangeReceiver(Probe) 15609.38 mpp[tiflash] ", + " └─ExchangeSender 15609.38 mpp[tiflash] ExchangeType: HashPartition, Hash Cols: [name: test.t1.a, collate: binary]", + " └─HashJoin 15609.38 mpp[tiflash] inner join, equal:[eq(test.t2.b, test.t3.b)]", + " ├─ExchangeReceiver(Build) 9990.00 mpp[tiflash] ", + " │ └─ExchangeSender 9990.00 mpp[tiflash] ExchangeType: Broadcast", + " │ └─Selection 9990.00 mpp[tiflash] not(isnull(test.t3.b))", + " │ └─TableFullScan 10000.00 mpp[tiflash] table:t3 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 12487.50 mpp[tiflash] inner join, equal:[eq(test.t1.b, test.t2.b)]", + " ├─ExchangeReceiver(Build) 9990.00 mpp[tiflash] ", + " │ └─ExchangeSender 9990.00 mpp[tiflash] ExchangeType: Broadcast", + " │ └─Selection 9990.00 mpp[tiflash] not(isnull(test.t1.b))", + " │ └─TableFullScan 10000.00 mpp[tiflash] table:t1 keep order:false, stats:pseudo", + " └─Selection(Probe) 9990.00 mpp[tiflash] not(isnull(test.t2.b))", + " └─TableFullScan 10000.00 mpp[tiflash] table:t2 keep order:false, stats:pseudo" + ], + "Warning": [ + "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" + ] + }, + { + "SQL": "select /*+ leading(t3) */ * from t2 right join (t1 left join t3 on t1.a=t3.a) on t2.b=t1.b;", + "Plan": [ + "TableReader 15593.77 root data:ExchangeSender", + "└─ExchangeSender 15593.77 mpp[tiflash] ExchangeType: PassThrough", + " └─HashJoin 15593.77 mpp[tiflash] right outer join, equal:[eq(test.t2.b, test.t1.b)]", + " ├─ExchangeReceiver(Build) 9990.00 mpp[tiflash] ", + " │ └─ExchangeSender 9990.00 mpp[tiflash] ExchangeType: Broadcast", + " │ └─Selection 9990.00 mpp[tiflash] not(isnull(test.t2.b))", + " │ └─TableFullScan 10000.00 mpp[tiflash] table:t2 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 12487.50 mpp[tiflash] left outer join, equal:[eq(test.t1.a, test.t3.a)]", + " ├─ExchangeReceiver(Build) 9990.00 mpp[tiflash] ", + " │ └─ExchangeSender 9990.00 mpp[tiflash] ExchangeType: Broadcast", + " │ └─Selection 9990.00 mpp[tiflash] not(isnull(test.t3.a))", + " │ └─TableFullScan 10000.00 mpp[tiflash] table:t3 keep order:false, stats:pseudo", + " └─TableFullScan(Probe) 10000.00 mpp[tiflash] table:t1 keep order:false, stats:pseudo" + ], + "Warning": null + }, + { + "SQL": "select /*+ leading(t2, t1, t3) */ * from t2 right join (t1 left join t3 on t1.a=t3.a) on t2.b=t1.b;", + "Plan": [ + "TableReader 15593.77 root data:ExchangeSender", + "└─ExchangeSender 15593.77 mpp[tiflash] ExchangeType: PassThrough", + " └─HashJoin 15593.77 mpp[tiflash] left outer join, equal:[eq(test.t1.a, test.t3.a)]", + " ├─ExchangeReceiver(Build) 9990.00 mpp[tiflash] ", + " │ └─ExchangeSender 9990.00 mpp[tiflash] ExchangeType: Broadcast", + " │ └─Selection 9990.00 mpp[tiflash] not(isnull(test.t3.a))", + " │ └─TableFullScan 10000.00 mpp[tiflash] table:t3 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 12487.50 mpp[tiflash] right outer join, equal:[eq(test.t2.b, test.t1.b)]", + " ├─ExchangeReceiver(Build) 9990.00 mpp[tiflash] ", + " │ └─ExchangeSender 9990.00 mpp[tiflash] ExchangeType: Broadcast", + " │ └─Selection 9990.00 mpp[tiflash] not(isnull(test.t2.b))", + " │ └─TableFullScan 10000.00 mpp[tiflash] table:t2 keep order:false, stats:pseudo", + " └─TableFullScan(Probe) 10000.00 mpp[tiflash] table:t1 keep order:false, stats:pseudo" + ], + "Warning": null + }, + { + "SQL": "select /*+ leading(t2, t3) */ * from t2 right join (t1 join t3 on t1.a=t3.a join t4 on t3.b = t4.b) on t2.b=t1.b;", + "Plan": [ + "TableReader 19492.21 root data:ExchangeSender", + "└─ExchangeSender 19492.21 mpp[tiflash] ExchangeType: PassThrough", + " └─Projection 19492.21 mpp[tiflash] test.t2.a, test.t2.b, test.t1.a, test.t1.b, test.t3.a, test.t3.b, test.t4.a, test.t4.b", + " └─HashJoin 19492.21 mpp[tiflash] inner join, equal:[eq(test.t3.b, test.t4.b)]", + " ├─ExchangeReceiver(Build) 9990.00 mpp[tiflash] ", + " │ └─ExchangeSender 9990.00 mpp[tiflash] ExchangeType: Broadcast", + " │ └─Selection 9990.00 mpp[tiflash] not(isnull(test.t4.b))", + " │ └─TableFullScan 10000.00 mpp[tiflash] table:t4 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 15593.77 mpp[tiflash] right outer join, equal:[eq(test.t2.b, test.t1.b)]", + " ├─ExchangeReceiver(Build) 9990.00 mpp[tiflash] ", + " │ └─ExchangeSender 9990.00 mpp[tiflash] ExchangeType: Broadcast", + " │ └─Selection 9990.00 mpp[tiflash] not(isnull(test.t2.b))", + " │ └─TableFullScan 10000.00 mpp[tiflash] table:t2 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 12475.01 mpp[tiflash] inner join, equal:[eq(test.t3.a, test.t1.a)]", + " ├─ExchangeReceiver(Build) 9980.01 mpp[tiflash] ", + " │ └─ExchangeSender 9980.01 mpp[tiflash] ExchangeType: Broadcast", + " │ └─Selection 9980.01 mpp[tiflash] not(isnull(test.t3.a)), not(isnull(test.t3.b))", + " │ └─TableFullScan 10000.00 mpp[tiflash] table:t3 keep order:false, stats:pseudo", + " └─Selection(Probe) 9990.00 mpp[tiflash] not(isnull(test.t1.a))", + " └─TableFullScan 10000.00 mpp[tiflash] table:t1 keep order:false, stats:pseudo" + ], + "Warning": [ + "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" + ] + }, + { + "SQL": "select /*+ leading(t3, t4) */ * from t2 right join (t1 join t3 on t1.a=t3.a join t4 on t3.b = t4.b) on t2.b=t1.b;", + "Plan": [ + "TableReader 19492.21 root data:ExchangeSender", + "└─ExchangeSender 19492.21 mpp[tiflash] ExchangeType: PassThrough", + " └─Projection 19492.21 mpp[tiflash] test.t2.a, test.t2.b, test.t1.a, test.t1.b, test.t3.a, test.t3.b, test.t4.a, test.t4.b", + " └─HashJoin 19492.21 mpp[tiflash] right outer join, equal:[eq(test.t2.b, test.t1.b)]", + " ├─ExchangeReceiver(Build) 9990.00 mpp[tiflash] ", + " │ └─ExchangeSender 9990.00 mpp[tiflash] ExchangeType: Broadcast", + " │ └─Selection 9990.00 mpp[tiflash] not(isnull(test.t2.b))", + " │ └─TableFullScan 10000.00 mpp[tiflash] table:t2 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 15593.77 mpp[tiflash] inner join, equal:[eq(test.t3.a, test.t1.a)]", + " ├─ExchangeReceiver(Build) 9990.00 mpp[tiflash] ", + " │ └─ExchangeSender 9990.00 mpp[tiflash] ExchangeType: Broadcast", + " │ └─Selection 9990.00 mpp[tiflash] not(isnull(test.t1.a))", + " │ └─TableFullScan 10000.00 mpp[tiflash] table:t1 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 12475.01 mpp[tiflash] inner join, equal:[eq(test.t3.b, test.t4.b)]", + " ├─ExchangeReceiver(Build) 9980.01 mpp[tiflash] ", + " │ └─ExchangeSender 9980.01 mpp[tiflash] ExchangeType: Broadcast", + " │ └─Selection 9980.01 mpp[tiflash] not(isnull(test.t3.a)), not(isnull(test.t3.b))", + " │ └─TableFullScan 10000.00 mpp[tiflash] table:t3 keep order:false, stats:pseudo", + " └─Selection(Probe) 9990.00 mpp[tiflash] not(isnull(test.t4.b))", + " └─TableFullScan 10000.00 mpp[tiflash] table:t4 keep order:false, stats:pseudo" + ], + "Warning": null + }, + { + "SQL": "select /*+ leading(t3, t4) */ * from t2 right join (t1 join t3 on t1.a=t3.a join t4 on t3.b = t4.b) on t2.b=t1.b join t5 on t2.a = t5.a join t6 on t5.b=t6.b;", + "Plan": [ + "TableReader 30456.57 root data:ExchangeSender", + "└─ExchangeSender 30456.57 mpp[tiflash] ExchangeType: PassThrough", + " └─Projection 30456.57 mpp[tiflash] test.t2.a, test.t2.b, test.t1.a, test.t1.b, test.t3.a, test.t3.b, test.t4.a, test.t4.b, test.t5.a, test.t5.b, test.t6.a, test.t6.b", + " └─HashJoin 30456.57 mpp[tiflash] inner join, equal:[eq(test.t5.b, test.t6.b)]", + " ├─ExchangeReceiver(Build) 9990.00 mpp[tiflash] ", + " │ └─ExchangeSender 9990.00 mpp[tiflash] ExchangeType: Broadcast", + " │ └─Selection 9990.00 mpp[tiflash] not(isnull(test.t6.b))", + " │ └─TableFullScan 10000.00 mpp[tiflash] table:t6 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 24365.26 mpp[tiflash] inner join, equal:[eq(test.t2.a, test.t5.a)]", + " ├─ExchangeReceiver(Build) 9980.01 mpp[tiflash] ", + " │ └─ExchangeSender 9980.01 mpp[tiflash] ExchangeType: Broadcast", + " │ └─Selection 9980.01 mpp[tiflash] not(isnull(test.t5.a)), not(isnull(test.t5.b))", + " │ └─TableFullScan 10000.00 mpp[tiflash] table:t5 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 19492.21 mpp[tiflash] inner join, equal:[eq(test.t1.b, test.t2.b)]", + " ├─ExchangeReceiver(Build) 9980.01 mpp[tiflash] ", + " │ └─ExchangeSender 9980.01 mpp[tiflash] ExchangeType: Broadcast", + " │ └─Selection 9980.01 mpp[tiflash] not(isnull(test.t2.a)), not(isnull(test.t2.b))", + " │ └─TableFullScan 10000.00 mpp[tiflash] table:t2 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 15593.77 mpp[tiflash] inner join, equal:[eq(test.t3.a, test.t1.a)]", + " ├─ExchangeReceiver(Build) 9980.01 mpp[tiflash] ", + " │ └─ExchangeSender 9980.01 mpp[tiflash] ExchangeType: Broadcast", + " │ └─Selection 9980.01 mpp[tiflash] not(isnull(test.t1.a)), not(isnull(test.t1.b))", + " │ └─TableFullScan 10000.00 mpp[tiflash] table:t1 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 12475.01 mpp[tiflash] inner join, equal:[eq(test.t3.b, test.t4.b)]", + " ├─ExchangeReceiver(Build) 9980.01 mpp[tiflash] ", + " │ └─ExchangeSender 9980.01 mpp[tiflash] ExchangeType: Broadcast", + " │ └─Selection 9980.01 mpp[tiflash] not(isnull(test.t3.a)), not(isnull(test.t3.b))", + " │ └─TableFullScan 10000.00 mpp[tiflash] table:t3 keep order:false, stats:pseudo", + " └─Selection(Probe) 9990.00 mpp[tiflash] not(isnull(test.t4.b))", + " └─TableFullScan 10000.00 mpp[tiflash] table:t4 keep order:false, stats:pseudo" + ], + "Warning": null + }, + { + "SQL": "select /*+ leading(t3, t4) leading(t5, t6) */ * from t2 right join (t1 join t3 on t1.a=t3.a join t4 on t3.b = t4.b) on t2.b=t1.b join t5 on t2.a = t5.a join t6 on t5.b=t6.b;", + "Plan": [ + "TableReader 30456.57 root data:ExchangeSender", + "└─ExchangeSender 30456.57 mpp[tiflash] ExchangeType: PassThrough", + " └─Projection 30456.57 mpp[tiflash] test.t2.a, test.t2.b, test.t1.a, test.t1.b, test.t3.a, test.t3.b, test.t4.a, test.t4.b, test.t5.a, test.t5.b, test.t6.a, test.t6.b", + " └─HashJoin 30456.57 mpp[tiflash] inner join, equal:[eq(test.t5.b, test.t6.b)]", + " ├─ExchangeReceiver(Build) 9990.00 mpp[tiflash] ", + " │ └─ExchangeSender 9990.00 mpp[tiflash] ExchangeType: Broadcast", + " │ └─Selection 9990.00 mpp[tiflash] not(isnull(test.t6.b))", + " │ └─TableFullScan 10000.00 mpp[tiflash] table:t6 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 24365.26 mpp[tiflash] inner join, equal:[eq(test.t3.b, test.t4.b)]", + " ├─ExchangeReceiver(Build) 9990.00 mpp[tiflash] ", + " │ └─ExchangeSender 9990.00 mpp[tiflash] ExchangeType: Broadcast", + " │ └─Selection 9990.00 mpp[tiflash] not(isnull(test.t4.b))", + " │ └─TableFullScan 10000.00 mpp[tiflash] table:t4 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 19492.21 mpp[tiflash] inner join, equal:[eq(test.t2.a, test.t5.a)]", + " ├─ExchangeReceiver(Build) 9980.01 mpp[tiflash] ", + " │ └─ExchangeSender 9980.01 mpp[tiflash] ExchangeType: Broadcast", + " │ └─Selection 9980.01 mpp[tiflash] not(isnull(test.t5.a)), not(isnull(test.t5.b))", + " │ └─TableFullScan 10000.00 mpp[tiflash] table:t5 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 15593.77 mpp[tiflash] inner join, equal:[eq(test.t1.a, test.t3.a)]", + " ├─ExchangeReceiver(Build) 9980.01 mpp[tiflash] ", + " │ └─ExchangeSender 9980.01 mpp[tiflash] ExchangeType: Broadcast", + " │ └─Selection 9980.01 mpp[tiflash] not(isnull(test.t3.a)), not(isnull(test.t3.b))", + " │ └─TableFullScan 10000.00 mpp[tiflash] table:t3 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 12475.01 mpp[tiflash] inner join, equal:[eq(test.t2.b, test.t1.b)]", + " ├─ExchangeReceiver(Build) 9980.01 mpp[tiflash] ", + " │ └─ExchangeSender 9980.01 mpp[tiflash] ExchangeType: Broadcast", + " │ └─Selection 9980.01 mpp[tiflash] not(isnull(test.t2.a)), not(isnull(test.t2.b))", + " │ └─TableFullScan 10000.00 mpp[tiflash] table:t2 keep order:false, stats:pseudo", + " └─Selection(Probe) 9980.01 mpp[tiflash] not(isnull(test.t1.a)), not(isnull(test.t1.b))", + " └─TableFullScan 10000.00 mpp[tiflash] table:t1 keep order:false, stats:pseudo" + ], + "Warning": [ + "Warning 1815 We can only use one leading hint at most, when multiple leading hints are used, all leading hints will be invalid" + ] + }, + { + "SQL": "select /*+ leading(t3, t4, t5, t6) */ * from t2 right join (t1 join t3 on t1.a=t3.a join t4 on t3.b = t4.b) on t2.b=t1.b join t5 on t2.a = t5.a join t6 on t5.b=t6.b;", + "Plan": [ + "TableReader 243165526.37 root data:ExchangeSender", + "└─ExchangeSender 243165526.37 mpp[tiflash] ExchangeType: PassThrough", + " └─Projection 243165526.37 mpp[tiflash] test.t2.a, test.t2.b, test.t1.a, test.t1.b, test.t3.a, test.t3.b, test.t4.a, test.t4.b, test.t5.a, test.t5.b, test.t6.a, test.t6.b", + " └─HashJoin 243165526.37 mpp[tiflash] inner join, equal:[eq(test.t3.a, test.t1.a) eq(test.t2.b, test.t1.b)]", + " ├─ExchangeReceiver(Build) 9980.01 mpp[tiflash] ", + " │ └─ExchangeSender 9980.01 mpp[tiflash] ExchangeType: Broadcast", + " │ └─Selection 9980.01 mpp[tiflash] not(isnull(test.t1.a)), not(isnull(test.t1.b))", + " │ └─TableFullScan 10000.00 mpp[tiflash] table:t1 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 194532421.09 mpp[tiflash] inner join, equal:[eq(test.t5.a, test.t2.a)]", + " ├─ExchangeReceiver(Build) 9980.01 mpp[tiflash] ", + " │ └─ExchangeSender 9980.01 mpp[tiflash] ExchangeType: Broadcast", + " │ └─Selection 9980.01 mpp[tiflash] not(isnull(test.t2.a)), not(isnull(test.t2.b))", + " │ └─TableFullScan 10000.00 mpp[tiflash] table:t2 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 155625936.88 mpp[tiflash] inner join, equal:[eq(test.t5.b, test.t6.b)]", + " ├─ExchangeReceiver(Build) 9990.00 mpp[tiflash] ", + " │ └─ExchangeSender 9990.00 mpp[tiflash] ExchangeType: Broadcast", + " │ └─Selection 9990.00 mpp[tiflash] not(isnull(test.t6.b))", + " │ └─TableFullScan 10000.00 mpp[tiflash] table:t6 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 124500749.50 mpp[tiflash] CARTESIAN inner join", + " ├─ExchangeReceiver(Build) 9980.01 mpp[tiflash] ", + " │ └─ExchangeSender 9980.01 mpp[tiflash] ExchangeType: Broadcast", + " │ └─Selection 9980.01 mpp[tiflash] not(isnull(test.t5.a)), not(isnull(test.t5.b))", + " │ └─TableFullScan 10000.00 mpp[tiflash] table:t5 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 12475.01 mpp[tiflash] inner join, equal:[eq(test.t3.b, test.t4.b)]", + " ├─ExchangeReceiver(Build) 9980.01 mpp[tiflash] ", + " │ └─ExchangeSender 9980.01 mpp[tiflash] ExchangeType: Broadcast", + " │ └─Selection 9980.01 mpp[tiflash] not(isnull(test.t3.a)), not(isnull(test.t3.b))", + " │ └─TableFullScan 10000.00 mpp[tiflash] table:t3 keep order:false, stats:pseudo", + " └─Selection(Probe) 9990.00 mpp[tiflash] not(isnull(test.t4.b))", + " └─TableFullScan 10000.00 mpp[tiflash] table:t4 keep order:false, stats:pseudo" + ], + "Warning": null + } + ] + }, + { + "Name": "TestJoinOrderHint4Subquery", + "Cases": [ + { + "SQL": "select /*+ straight_join() */ * from t1 join t2 on t1.a=t2.a where t1.a in (select t3.a from t3 where t1.b = t3.b)", + "Plan": [ + "HashJoin 9980.01 root semi join, equal:[eq(test.t1.b, test.t3.b) eq(test.t1.a, test.t3.a)]", + "├─TableReader(Build) 3.00 root data:Selection", + "│ └─Selection 3.00 cop[tikv] not(isnull(test.t3.a)), not(isnull(test.t3.b))", + "│ └─TableFullScan 3.00 cop[tikv] table:t3 keep order:false", + "└─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t1.a, test.t2.a)]", + " ├─TableReader(Build) 9980.01 root data:Selection", + " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t1.a)), not(isnull(test.t1.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", + " └─TableReader(Probe) 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", + " └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo" + ], + "Warning": null + }, + { + "SQL": "select /*+ straight_join() */ * from t1 join t2 on t1.a=t2.a where t1.a not in (select t3.a from t3 where t1.b = t3.b)", + "Plan": [ + "HashJoin 9990.00 root anti semi join, equal:[eq(test.t1.b, test.t3.b)], other cond:eq(test.t1.a, test.t3.a)", + "├─TableReader(Build) 3.00 root data:TableFullScan", + "│ └─TableFullScan 3.00 cop[tikv] table:t3 keep order:false", + "└─HashJoin(Probe) 12487.50 root inner join, equal:[eq(test.t1.a, test.t2.a)]", + " ├─TableReader(Build) 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", + " └─TableReader(Probe) 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", + " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" + ], + "Warning": null + }, + { + "SQL": "select /*+ straight_join() */ * from t1 join t2 on t1.a=t2.a where exists (select t3.a from t3 where t1.b = t3.b)", + "Plan": [ + "HashJoin 9980.01 root semi join, equal:[eq(test.t1.b, test.t3.b)]", + "├─TableReader(Build) 3.00 root data:Selection", + "│ └─Selection 3.00 cop[tikv] not(isnull(test.t3.b))", + "│ └─TableFullScan 3.00 cop[tikv] table:t3 keep order:false", + "└─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t1.a, test.t2.a)]", + " ├─TableReader(Build) 9980.01 root data:Selection", + " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t1.a)), not(isnull(test.t1.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", + " └─TableReader(Probe) 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", + " └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo" + ], + "Warning": null + }, + { + "SQL": "select /*+ straight_join() */ * from t1 join t2 on t1.a=t2.a where not exists (select t3.a from t3 where t1.b = t3.b)", + "Plan": [ + "HashJoin 9990.00 root anti semi join, equal:[eq(test.t1.b, test.t3.b)]", + "├─TableReader(Build) 3.00 root data:TableFullScan", + "│ └─TableFullScan 3.00 cop[tikv] table:t3 keep order:false", + "└─HashJoin(Probe) 12487.50 root inner join, equal:[eq(test.t1.a, test.t2.a)]", + " ├─TableReader(Build) 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", + " └─TableReader(Probe) 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", + " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" + ], + "Warning": null + }, + { + "SQL": "select /*+ straight_join() */ t1.a, (select min(t1.a) from t2 where t2.a > t1.a) from t1;", + "Plan": [ + "Projection 1.00 root test.t1.a, Column#11", + "└─Apply 1.00 root CARTESIAN left outer join", + " ├─HashAgg(Build) 1.00 root funcs:min(test.t1.a)->Column#7, funcs:firstrow(test.t1.a)->test.t1.a", + " │ └─IndexReader 10000.00 root index:IndexFullScan", + " │ └─IndexFullScan 10000.00 cop[tikv] table:t1, index:a(a) keep order:false, stats:pseudo", + " └─MaxOneRow(Probe) 1.00 root ", + " └─Projection 2.00 root Column#7", + " └─IndexReader 2.00 root index:Selection", + " └─Selection 2.00 cop[tikv] gt(test.t2.a, test.t1.a)", + " └─IndexFullScan 2.50 cop[tikv] table:t2, index:a(a) keep order:false, stats:pseudo" + ], + "Warning": null + }, + { + "SQL": "select /*+ straight_join() */ t1.a, (select min(t1.a) from t2 where t2.a > t1.a) from t1 join t3 on t1.a = t3.a;", + "Plan": [ + "Projection 1.00 root test.t1.a, Column#14", + "└─Apply 1.00 root CARTESIAN left outer join", + " ├─StreamAgg(Build) 1.00 root funcs:min(test.t1.a)->Column#10, funcs:firstrow(test.t1.a)->test.t1.a", + " │ └─IndexJoin 3.75 root inner join, inner:IndexReader, outer key:test.t3.a, inner key:test.t1.a, equal cond:eq(test.t3.a, test.t1.a)", + " │ ├─IndexReader(Build) 3.00 root index:IndexFullScan", + " │ │ └─IndexFullScan 3.00 cop[tikv] table:t3, index:a(a) keep order:false", + " │ └─IndexReader(Probe) 1.25 root index:Selection", + " │ └─Selection 1.25 cop[tikv] not(isnull(test.t1.a))", + " │ └─IndexRangeScan 1.25 cop[tikv] table:t1, index:a(a) range: decided by [eq(test.t1.a, test.t3.a)], keep order:false, stats:pseudo", + " └─MaxOneRow(Probe) 1.00 root ", + " └─Projection 2.00 root Column#10", + " └─IndexReader 2.00 root index:Selection", + " └─Selection 2.00 cop[tikv] gt(test.t2.a, test.t1.a)", + " └─IndexFullScan 2.50 cop[tikv] table:t2, index:a(a) keep order:false, stats:pseudo" + ], + "Warning": null + }, + { + "SQL": "select /*+ straight_join() */ * from t1 join t2 on t1.a=t2.a where t1.a in (select t3.a from t3)", + "Plan": [ + "HashJoin 4.69 root inner join, equal:[eq(test.t1.a, test.t3.a)]", + "├─StreamAgg(Build) 3.00 root group by:test.t3.a, funcs:firstrow(test.t3.a)->test.t3.a", + "│ └─IndexReader 3.00 root index:IndexFullScan", + "│ └─IndexFullScan 3.00 cop[tikv] table:t3, index:a(a) keep order:true", + "└─HashJoin(Probe) 12487.50 root inner join, equal:[eq(test.t1.a, test.t2.a)]", + " ├─TableReader(Build) 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", + " └─TableReader(Probe) 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", + " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" + ], + "Warning": null + }, + { + "SQL": "select /*+ straight_join() */ * from t1 join t2 on t1.a=t2.a where t1.a not in (select t3.a from t3)", + "Plan": [ + "HashJoin 9990.00 root CARTESIAN anti semi join, other cond:eq(test.t1.a, test.t3.a)", + "├─TableReader(Build) 3.00 root data:TableFullScan", + "│ └─TableFullScan 3.00 cop[tikv] table:t3 keep order:false", + "└─HashJoin(Probe) 12487.50 root inner join, equal:[eq(test.t1.a, test.t2.a)]", + " ├─TableReader(Build) 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", + " └─TableReader(Probe) 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", + " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" + ], + "Warning": null + }, + { + "SQL": "select /*+ straight_join() */ * from t1 join t2 on t1.a=t2.a where exists (select t3.a from t3)", + "Plan": [ + "HashJoin 12487.50 root inner join, equal:[eq(test.t1.a, test.t2.a)]", + "├─TableReader(Build) 9990.00 root data:Selection", + "│ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", + "│ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", + "└─TableReader(Probe) 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", + " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" + ], + "Warning": null + }, + { + "SQL": "select /*+ straight_join() */ * from t1 join t2 on t1.a=t2.a where not exists (select t3.a from t3)", + "Plan": [ + "TableDual 0.00 root rows:0" + ], + "Warning": null + }, + { + "SQL": "select /*+ straight_join() */ * from t1 join (select * from t4) t2 on t1.a=t2.a join t3 on t2.b=t3.b;", + "Plan": [ + "HashJoin 4.69 root inner join, equal:[eq(test.t4.b, test.t3.b)]", + "├─TableReader(Build) 3.00 root data:Selection", + "│ └─Selection 3.00 cop[tikv] not(isnull(test.t3.b))", + "│ └─TableFullScan 3.00 cop[tikv] table:t3 keep order:false", + "└─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t1.a, test.t4.a)]", + " ├─TableReader(Build) 9980.01 root data:Selection", + " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t4.a)), not(isnull(test.t4.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t4 keep order:false, stats:pseudo", + " └─TableReader(Probe) 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", + " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" + ], + "Warning": null + }, + { + "SQL": "select /*+ straight_join() */ * from (select * from t4) t1 join t2 on t1.a=t2.a join t3 on t2.b=t3.b;", + "Plan": [ + "HashJoin 4.69 root inner join, equal:[eq(test.t2.b, test.t3.b)]", + "├─TableReader(Build) 3.00 root data:Selection", + "│ └─Selection 3.00 cop[tikv] not(isnull(test.t3.b))", + "│ └─TableFullScan 3.00 cop[tikv] table:t3 keep order:false", + "└─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t4.a, test.t2.a)]", + " ├─TableReader(Build) 9980.01 root data:Selection", + " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t2.a)), not(isnull(test.t2.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", + " └─TableReader(Probe) 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t4.a))", + " └─TableFullScan 10000.00 cop[tikv] table:t4 keep order:false, stats:pseudo" + ], + "Warning": null + }, + { + "SQL": "select /*+ straight_join() */ * from t1 join t2 on t1.a=t2.a join (select * from t4) t3 on t2.b=t3.b;", + "Plan": [ + "HashJoin 15593.77 root inner join, equal:[eq(test.t2.b, test.t4.b)]", + "├─TableReader(Build) 9990.00 root data:Selection", + "│ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.b))", + "│ └─TableFullScan 10000.00 cop[tikv] table:t4 keep order:false, stats:pseudo", + "└─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t1.a, test.t2.a)]", + " ├─TableReader(Build) 9980.01 root data:Selection", + " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t2.a)), not(isnull(test.t2.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", + " └─TableReader(Probe) 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", + " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" + ], + "Warning": null + }, + { + "SQL": "select /*+ straight_join() */ t1.a, (select min(t2.a) from t2) from t1;", + "Plan": [ + "Projection 10000.00 root test.t1.a, ->Column#11", + "└─IndexReader 10000.00 root index:IndexFullScan", + " └─IndexFullScan 10000.00 cop[tikv] table:t1, index:a(a) keep order:false, stats:pseudo" + ], + "Warning": null + }, + { + "SQL": "select /*+ straight_join() */ t1.a, (select min(t2.a) from t2) from t1 join t3 on t1.a = t3.a;", + "Plan": [ + "Projection 3.75 root test.t1.a, ->Column#14", + "└─IndexJoin 3.75 root inner join, inner:IndexReader, outer key:test.t3.a, inner key:test.t1.a, equal cond:eq(test.t3.a, test.t1.a)", + " ├─IndexReader(Build) 3.00 root index:IndexFullScan", + " │ └─IndexFullScan 3.00 cop[tikv] table:t3, index:a(a) keep order:false", + " └─IndexReader(Probe) 1.25 root index:Selection", + " └─Selection 1.25 cop[tikv] not(isnull(test.t1.a))", + " └─IndexRangeScan 1.25 cop[tikv] table:t1, index:a(a) range: decided by [eq(test.t1.a, test.t3.a)], keep order:false, stats:pseudo" + ], + "Warning": null + }, + { + "SQL": "select /*+ leading(t4) */ * from t1 join t2 on t1.a=t2.a join t4 on t1.b = t4.b where t1.a in (select t3.a from t3 where t1.b = t3.b)", + "Plan": [ + "HashJoin 12475.01 root semi join, equal:[eq(test.t1.b, test.t3.b) eq(test.t1.a, test.t3.a)]", + "├─TableReader(Build) 3.00 root data:Selection", + "│ └─Selection 3.00 cop[tikv] not(isnull(test.t3.a)), not(isnull(test.t3.b))", + "│ └─TableFullScan 3.00 cop[tikv] table:t3 keep order:false", + "└─Projection(Probe) 15593.77 root test.t1.a, test.t1.b, test.t2.a, test.t2.b, test.t4.a, test.t4.b", + " └─HashJoin 15593.77 root inner join, equal:[eq(test.t1.a, test.t2.a)]", + " ├─TableReader(Build) 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t4.b, test.t1.b)]", + " ├─TableReader(Build) 9980.01 root data:Selection", + " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t1.a)), not(isnull(test.t1.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", + " └─TableReader(Probe) 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t4.b))", + " └─TableFullScan 10000.00 cop[tikv] table:t4 keep order:false, stats:pseudo" + ], + "Warning": null + }, + { + "SQL": "select /*+ leading(t3@sel_2) */ * from t1 join t2 on t1.a=t2.a where t1.a in (select t3.a from t3 where t1.b = t3.b)", + "Plan": [ + "HashJoin 9980.01 root semi join, equal:[eq(test.t1.b, test.t3.b) eq(test.t1.a, test.t3.a)]", + "├─TableReader(Build) 3.00 root data:Selection", + "│ └─Selection 3.00 cop[tikv] not(isnull(test.t3.a)), not(isnull(test.t3.b))", + "│ └─TableFullScan 3.00 cop[tikv] table:t3 keep order:false", + "└─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t1.a, test.t2.a)]", + " ├─TableReader(Build) 9980.01 root data:Selection", + " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t1.a)), not(isnull(test.t1.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", + " └─TableReader(Probe) 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", + " └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo" + ], + "Warning": [ + "Warning 1815 There are no matching table names for (t3) in optimizer hint /*+ LEADING(t3) */. Maybe you can use the table alias name" + ] + }, + { + "SQL": "select /*+ leading(t2, t3@sel_2) */ * from t1 join t2 on t1.a=t2.a where t1.a in (select t3.a from t3 where t1.b = t3.b)", + "Plan": [ + "HashJoin 9980.01 root semi join, equal:[eq(test.t1.b, test.t3.b) eq(test.t1.a, test.t3.a)]", + "├─TableReader(Build) 3.00 root data:Selection", + "│ └─Selection 3.00 cop[tikv] not(isnull(test.t3.a)), not(isnull(test.t3.b))", + "│ └─TableFullScan 3.00 cop[tikv] table:t3 keep order:false", + "└─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t1.a, test.t2.a)]", + " ├─TableReader(Build) 9980.01 root data:Selection", + " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t1.a)), not(isnull(test.t1.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", + " └─TableReader(Probe) 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", + " └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo" + ], + "Warning": [ + "Warning 1815 There are no matching table names for (t3) in optimizer hint /*+ LEADING(t2, t3) */. Maybe you can use the table alias name", + "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" + ] + }, + { + "SQL": "select /*+ leading(t1, t3@sel_2) */ * from t1 join t2 on t1.a=t2.a where t1.a in (select t3.a from t3 where t1.b = t3.b)", + "Plan": [ + "HashJoin 9980.01 root semi join, equal:[eq(test.t1.b, test.t3.b) eq(test.t1.a, test.t3.a)]", + "├─TableReader(Build) 3.00 root data:Selection", + "│ └─Selection 3.00 cop[tikv] not(isnull(test.t3.a)), not(isnull(test.t3.b))", + "│ └─TableFullScan 3.00 cop[tikv] table:t3 keep order:false", + "└─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t1.a, test.t2.a)]", + " ├─TableReader(Build) 9980.01 root data:Selection", + " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t1.a)), not(isnull(test.t1.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", + " └─TableReader(Probe) 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", + " └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo" + ], + "Warning": [ + "Warning 1815 There are no matching table names for (t3) in optimizer hint /*+ LEADING(t1, t3) */. Maybe you can use the table alias name", + "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" + ] + }, + { + "SQL": "select /*+ leading(t3@sel_2, t2) */ * from t1 join t2 on t1.a=t2.a where t1.a in (select t3.a from t3 where t1.b = t3.b)", + "Plan": [ + "HashJoin 9980.01 root semi join, equal:[eq(test.t1.b, test.t3.b) eq(test.t1.a, test.t3.a)]", + "├─TableReader(Build) 3.00 root data:Selection", + "│ └─Selection 3.00 cop[tikv] not(isnull(test.t3.a)), not(isnull(test.t3.b))", + "│ └─TableFullScan 3.00 cop[tikv] table:t3 keep order:false", + "└─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t1.a, test.t2.a)]", + " ├─TableReader(Build) 9980.01 root data:Selection", + " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t1.a)), not(isnull(test.t1.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", + " └─TableReader(Probe) 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", + " └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo" + ], + "Warning": [ + "Warning 1815 There are no matching table names for (t3) in optimizer hint /*+ LEADING(t3, t2) */. Maybe you can use the table alias name", + "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" + ] + }, + { + "SQL": "select /*+ leading(t3@sel_2, t1) */ * from t1 join t2 on t1.a=t2.a where t1.a in (select t3.a from t3 where t1.b = t3.b)", + "Plan": [ + "HashJoin 9980.01 root semi join, equal:[eq(test.t1.b, test.t3.b) eq(test.t1.a, test.t3.a)]", + "├─TableReader(Build) 3.00 root data:Selection", + "│ └─Selection 3.00 cop[tikv] not(isnull(test.t3.a)), not(isnull(test.t3.b))", + "│ └─TableFullScan 3.00 cop[tikv] table:t3 keep order:false", + "└─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t1.a, test.t2.a)]", + " ├─TableReader(Build) 9980.01 root data:Selection", + " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t1.a)), not(isnull(test.t1.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", + " └─TableReader(Probe) 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", + " └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo" + ], + "Warning": [ + "Warning 1815 There are no matching table names for (t3) in optimizer hint /*+ LEADING(t3, t1) */. Maybe you can use the table alias name", + "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" + ] + }, + { + "SQL": "select /*+ leading(t4) */ * from t1 join t2 on t1.a=t2.a join t4 on t1.b = t4.b where t1.a not in (select t3.a from t3 where t1.b = t3.b)", + "Plan": [ + "HashJoin 12475.01 root anti semi join, equal:[eq(test.t1.b, test.t3.b)], other cond:eq(test.t1.a, test.t3.a)", + "├─TableReader(Build) 3.00 root data:TableFullScan", + "│ └─TableFullScan 3.00 cop[tikv] table:t3 keep order:false", + "└─Projection(Probe) 15593.77 root test.t1.a, test.t1.b, test.t2.a, test.t2.b, test.t4.a, test.t4.b", + " └─HashJoin 15593.77 root inner join, equal:[eq(test.t1.a, test.t2.a)]", + " ├─TableReader(Build) 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t4.b, test.t1.b)]", + " ├─TableReader(Build) 9980.01 root data:Selection", + " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t1.a)), not(isnull(test.t1.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", + " └─TableReader(Probe) 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t4.b))", + " └─TableFullScan 10000.00 cop[tikv] table:t4 keep order:false, stats:pseudo" + ], + "Warning": null + }, + { + "SQL": "select /*+ leading(t3@sel_2) */ * from t1 join t2 on t1.a=t2.a where t1.a not in (select t3.a from t3 where t1.b = t3.b)", + "Plan": [ + "HashJoin 9990.00 root anti semi join, equal:[eq(test.t1.b, test.t3.b)], other cond:eq(test.t1.a, test.t3.a)", + "├─TableReader(Build) 3.00 root data:TableFullScan", + "│ └─TableFullScan 3.00 cop[tikv] table:t3 keep order:false", + "└─HashJoin(Probe) 12487.50 root inner join, equal:[eq(test.t1.a, test.t2.a)]", + " ├─TableReader(Build) 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", + " └─TableReader(Probe) 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", + " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" + ], + "Warning": [ + "Warning 1815 There are no matching table names for (t3) in optimizer hint /*+ LEADING(t3) */. Maybe you can use the table alias name" + ] + }, + { + "SQL": "select /*+ leading(t2, t3@sel_2) */ * from t1 join t2 on t1.a=t2.a where t1.a not in (select t3.a from t3 where t1.b = t3.b)", + "Plan": [ + "HashJoin 9990.00 root anti semi join, equal:[eq(test.t1.b, test.t3.b)], other cond:eq(test.t1.a, test.t3.a)", + "├─TableReader(Build) 3.00 root data:TableFullScan", + "│ └─TableFullScan 3.00 cop[tikv] table:t3 keep order:false", + "└─HashJoin(Probe) 12487.50 root inner join, equal:[eq(test.t1.a, test.t2.a)]", + " ├─TableReader(Build) 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", + " └─TableReader(Probe) 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", + " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" + ], + "Warning": [ + "Warning 1815 There are no matching table names for (t3) in optimizer hint /*+ LEADING(t2, t3) */. Maybe you can use the table alias name", + "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" + ] + }, + { + "SQL": "select /*+ leading(t1, t3@sel_2) */ * from t1 join t2 on t1.a=t2.a where t1.a not in (select t3.a from t3 where t1.b = t3.b)", + "Plan": [ + "HashJoin 9990.00 root anti semi join, equal:[eq(test.t1.b, test.t3.b)], other cond:eq(test.t1.a, test.t3.a)", + "├─TableReader(Build) 3.00 root data:TableFullScan", + "│ └─TableFullScan 3.00 cop[tikv] table:t3 keep order:false", + "└─HashJoin(Probe) 12487.50 root inner join, equal:[eq(test.t1.a, test.t2.a)]", + " ├─TableReader(Build) 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", + " └─TableReader(Probe) 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", + " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" + ], + "Warning": [ + "Warning 1815 There are no matching table names for (t3) in optimizer hint /*+ LEADING(t1, t3) */. Maybe you can use the table alias name", + "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" + ] + }, + { + "SQL": "select /*+ leading(t3@sel_2, t2) */ * from t1 join t2 on t1.a=t2.a where t1.a not in (select t3.a from t3 where t1.b = t3.b)", + "Plan": [ + "HashJoin 9990.00 root anti semi join, equal:[eq(test.t1.b, test.t3.b)], other cond:eq(test.t1.a, test.t3.a)", + "├─TableReader(Build) 3.00 root data:TableFullScan", + "│ └─TableFullScan 3.00 cop[tikv] table:t3 keep order:false", + "└─HashJoin(Probe) 12487.50 root inner join, equal:[eq(test.t1.a, test.t2.a)]", + " ├─TableReader(Build) 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", + " └─TableReader(Probe) 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", + " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" + ], + "Warning": [ + "Warning 1815 There are no matching table names for (t3) in optimizer hint /*+ LEADING(t3, t2) */. Maybe you can use the table alias name", + "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" + ] + }, + { + "SQL": "select /*+ leading(t3@sel_2, t1) */ * from t1 join t2 on t1.a=t2.a where t1.a not in (select t3.a from t3 where t1.b = t3.b)", + "Plan": [ + "HashJoin 9990.00 root anti semi join, equal:[eq(test.t1.b, test.t3.b)], other cond:eq(test.t1.a, test.t3.a)", + "├─TableReader(Build) 3.00 root data:TableFullScan", + "│ └─TableFullScan 3.00 cop[tikv] table:t3 keep order:false", + "└─HashJoin(Probe) 12487.50 root inner join, equal:[eq(test.t1.a, test.t2.a)]", + " ├─TableReader(Build) 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", + " └─TableReader(Probe) 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", + " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" + ], + "Warning": [ + "Warning 1815 There are no matching table names for (t3) in optimizer hint /*+ LEADING(t3, t1) */. Maybe you can use the table alias name", + "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" + ] + }, + { + "SQL": "select /*+ leading(t4) */ * from t1 join t2 on t1.a=t2.a join t4 on t1.b = t4.b where exists (select t3.a from t3 where t1.b = t3.b)", + "Plan": [ + "HashJoin 12475.01 root semi join, equal:[eq(test.t1.b, test.t3.b)]", + "├─TableReader(Build) 3.00 root data:Selection", + "│ └─Selection 3.00 cop[tikv] not(isnull(test.t3.b))", + "│ └─TableFullScan 3.00 cop[tikv] table:t3 keep order:false", + "└─Projection(Probe) 15593.77 root test.t1.a, test.t1.b, test.t2.a, test.t2.b, test.t4.a, test.t4.b", + " └─HashJoin 15593.77 root inner join, equal:[eq(test.t1.a, test.t2.a)]", + " ├─TableReader(Build) 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t4.b, test.t1.b)]", + " ├─TableReader(Build) 9980.01 root data:Selection", + " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t1.a)), not(isnull(test.t1.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", + " └─TableReader(Probe) 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t4.b))", + " └─TableFullScan 10000.00 cop[tikv] table:t4 keep order:false, stats:pseudo" + ], + "Warning": null + }, { - "SQL": "select /*+ straight_join() */ * from t1 join t2 on t1.a=t2.a where t1.a in (select t3.a from t3 where t1.b = t3.b)", + "SQL": "select /*+ leading(t3@sel_2) */ * from t1 join t2 on t1.a=t2.a where exists (select t3.a from t3 where t1.b = t3.b)", "Plan": [ - "HashJoin 9980.01 root semi join, equal:[eq(test.t1.b, test.t3.b) eq(test.t1.a, test.t3.a)]", + "HashJoin 9980.01 root semi join, equal:[eq(test.t1.b, test.t3.b)]", "├─TableReader(Build) 3.00 root data:Selection", - "│ └─Selection 3.00 cop[tikv] not(isnull(test.t3.a)), not(isnull(test.t3.b))", + "│ └─Selection 3.00 cop[tikv] not(isnull(test.t3.b))", "│ └─TableFullScan 3.00 cop[tikv] table:t3 keep order:false", "└─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t1.a, test.t2.a)]", " ├─TableReader(Build) 9980.01 root data:Selection", @@ -3284,26 +6710,32 @@ " └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", " └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo" ], - "Warning": null + "Warning": [ + "Warning 1815 There are no matching table names for (t3) in optimizer hint /*+ LEADING(t3) */. Maybe you can use the table alias name" + ] }, { - "SQL": "select /*+ straight_join() */ * from t1 join t2 on t1.a=t2.a where t1.a not in (select t3.a from t3 where t1.b = t3.b)", + "SQL": "select /*+ leading(t2, t3@sel_2) */ * from t1 join t2 on t1.a=t2.a where exists (select t3.a from t3 where t1.b = t3.b)", "Plan": [ - "HashJoin 9990.00 root anti semi join, equal:[eq(test.t1.b, test.t3.b)], other cond:eq(test.t1.a, test.t3.a)", - "├─TableReader(Build) 3.00 root data:TableFullScan", - "│ └─TableFullScan 3.00 cop[tikv] table:t3 keep order:false", - "└─HashJoin(Probe) 12487.50 root inner join, equal:[eq(test.t1.a, test.t2.a)]", - " ├─TableReader(Build) 9990.00 root data:Selection", - " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", - " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", + "HashJoin 9980.01 root semi join, equal:[eq(test.t1.b, test.t3.b)]", + "├─TableReader(Build) 3.00 root data:Selection", + "│ └─Selection 3.00 cop[tikv] not(isnull(test.t3.b))", + "│ └─TableFullScan 3.00 cop[tikv] table:t3 keep order:false", + "└─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t1.a, test.t2.a)]", + " ├─TableReader(Build) 9980.01 root data:Selection", + " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t1.a)), not(isnull(test.t1.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", " └─TableReader(Probe) 9990.00 root data:Selection", - " └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", - " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" + " └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", + " └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo" ], - "Warning": null + "Warning": [ + "Warning 1815 There are no matching table names for (t3) in optimizer hint /*+ LEADING(t2, t3) */. Maybe you can use the table alias name", + "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" + ] }, { - "SQL": "select /*+ straight_join() */ * from t1 join t2 on t1.a=t2.a where exists (select t3.a from t3 where t1.b = t3.b)", + "SQL": "select /*+ leading(t1, t3@sel_2) */ * from t1 join t2 on t1.a=t2.a where exists (select t3.a from t3 where t1.b = t3.b)", "Plan": [ "HashJoin 9980.01 root semi join, equal:[eq(test.t1.b, test.t3.b)]", "├─TableReader(Build) 3.00 root data:Selection", @@ -3317,67 +6749,78 @@ " └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", " └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo" ], - "Warning": null + "Warning": [ + "Warning 1815 There are no matching table names for (t3) in optimizer hint /*+ LEADING(t1, t3) */. Maybe you can use the table alias name", + "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" + ] }, { - "SQL": "select /*+ straight_join() */ * from t1 join t2 on t1.a=t2.a where not exists (select t3.a from t3 where t1.b = t3.b)", + "SQL": "select /*+ leading(t3@sel_2, t2) */ * from t1 join t2 on t1.a=t2.a where exists (select t3.a from t3 where t1.b = t3.b)", "Plan": [ - "HashJoin 9990.00 root anti semi join, equal:[eq(test.t1.b, test.t3.b)]", - "├─TableReader(Build) 3.00 root data:TableFullScan", - "│ └─TableFullScan 3.00 cop[tikv] table:t3 keep order:false", - "└─HashJoin(Probe) 12487.50 root inner join, equal:[eq(test.t1.a, test.t2.a)]", - " ├─TableReader(Build) 9990.00 root data:Selection", - " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", - " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", + "HashJoin 9980.01 root semi join, equal:[eq(test.t1.b, test.t3.b)]", + "├─TableReader(Build) 3.00 root data:Selection", + "│ └─Selection 3.00 cop[tikv] not(isnull(test.t3.b))", + "│ └─TableFullScan 3.00 cop[tikv] table:t3 keep order:false", + "└─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t1.a, test.t2.a)]", + " ├─TableReader(Build) 9980.01 root data:Selection", + " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t1.a)), not(isnull(test.t1.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", " └─TableReader(Probe) 9990.00 root data:Selection", - " └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", - " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" + " └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", + " └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo" ], - "Warning": null + "Warning": [ + "Warning 1815 There are no matching table names for (t3) in optimizer hint /*+ LEADING(t3, t2) */. Maybe you can use the table alias name", + "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" + ] }, { - "SQL": "select /*+ straight_join() */ t1.a, (select min(t1.a) from t2 where t2.a > t1.a) from t1;", + "SQL": "select /*+ leading(t3@sel_2, t1) */ * from t1 join t2 on t1.a=t2.a where exists (select t3.a from t3 where t1.b = t3.b)", "Plan": [ - "Projection 1.00 root test.t1.a, Column#11", - "└─Apply 1.00 root CARTESIAN left outer join", - " ├─HashAgg(Build) 1.00 root funcs:min(test.t1.a)->Column#7, funcs:firstrow(test.t1.a)->test.t1.a", - " │ └─IndexReader 10000.00 root index:IndexFullScan", - " │ └─IndexFullScan 10000.00 cop[tikv] table:t1, index:a(a) keep order:false, stats:pseudo", - " └─MaxOneRow(Probe) 1.00 root ", - " └─Projection 2.00 root Column#7", - " └─IndexReader 2.00 root index:Selection", - " └─Selection 2.00 cop[tikv] gt(test.t2.a, test.t1.a)", - " └─IndexFullScan 2.50 cop[tikv] table:t2, index:a(a) keep order:false, stats:pseudo" + "HashJoin 9980.01 root semi join, equal:[eq(test.t1.b, test.t3.b)]", + "├─TableReader(Build) 3.00 root data:Selection", + "│ └─Selection 3.00 cop[tikv] not(isnull(test.t3.b))", + "│ └─TableFullScan 3.00 cop[tikv] table:t3 keep order:false", + "└─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t1.a, test.t2.a)]", + " ├─TableReader(Build) 9980.01 root data:Selection", + " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t1.a)), not(isnull(test.t1.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", + " └─TableReader(Probe) 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", + " └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo" ], - "Warning": null + "Warning": [ + "Warning 1815 There are no matching table names for (t3) in optimizer hint /*+ LEADING(t3, t1) */. Maybe you can use the table alias name", + "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" + ] }, { - "SQL": "select /*+ straight_join() */ t1.a, (select min(t1.a) from t2 where t2.a > t1.a) from t1 join t3 on t1.a = t3.a;", + "SQL": "select /*+ leading(t4) */ * from t1 join t2 on t1.a=t2.a join t4 on t1.b = t4.b where not exists (select t3.a from t3 where t1.b = t3.b)", "Plan": [ - "Projection 1.00 root test.t1.a, Column#14", - "└─Apply 1.00 root CARTESIAN left outer join", - " ├─StreamAgg(Build) 1.00 root funcs:min(test.t1.a)->Column#10, funcs:firstrow(test.t1.a)->test.t1.a", - " │ └─IndexJoin 3.75 root inner join, inner:IndexReader, outer key:test.t3.a, inner key:test.t1.a, equal cond:eq(test.t3.a, test.t1.a)", - " │ ├─IndexReader(Build) 3.00 root index:IndexFullScan", - " │ │ └─IndexFullScan 3.00 cop[tikv] table:t3, index:a(a) keep order:false", - " │ └─IndexReader(Probe) 1.25 root index:Selection", - " │ └─Selection 1.25 cop[tikv] not(isnull(test.t1.a))", - " │ └─IndexRangeScan 1.25 cop[tikv] table:t1, index:a(a) range: decided by [eq(test.t1.a, test.t3.a)], keep order:false, stats:pseudo", - " └─MaxOneRow(Probe) 1.00 root ", - " └─Projection 2.00 root Column#10", - " └─IndexReader 2.00 root index:Selection", - " └─Selection 2.00 cop[tikv] gt(test.t2.a, test.t1.a)", - " └─IndexFullScan 2.50 cop[tikv] table:t2, index:a(a) keep order:false, stats:pseudo" + "HashJoin 12475.01 root anti semi join, equal:[eq(test.t1.b, test.t3.b)]", + "├─TableReader(Build) 3.00 root data:TableFullScan", + "│ └─TableFullScan 3.00 cop[tikv] table:t3 keep order:false", + "└─Projection(Probe) 15593.77 root test.t1.a, test.t1.b, test.t2.a, test.t2.b, test.t4.a, test.t4.b", + " └─HashJoin 15593.77 root inner join, equal:[eq(test.t1.a, test.t2.a)]", + " ├─TableReader(Build) 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t4.b, test.t1.b)]", + " ├─TableReader(Build) 9980.01 root data:Selection", + " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t1.a)), not(isnull(test.t1.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", + " └─TableReader(Probe) 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t4.b))", + " └─TableFullScan 10000.00 cop[tikv] table:t4 keep order:false, stats:pseudo" ], "Warning": null }, { - "SQL": "select /*+ straight_join() */ * from t1 join t2 on t1.a=t2.a where t1.a in (select t3.a from t3)", + "SQL": "select /*+ leading(t3@sel_2) */ * from t1 join t2 on t1.a=t2.a where not exists (select t3.a from t3 where t1.b = t3.b)", "Plan": [ - "HashJoin 4.69 root inner join, equal:[eq(test.t1.a, test.t3.a)]", - "├─StreamAgg(Build) 3.00 root group by:test.t3.a, funcs:firstrow(test.t3.a)->test.t3.a", - "│ └─IndexReader 3.00 root index:IndexFullScan", - "│ └─IndexFullScan 3.00 cop[tikv] table:t3, index:a(a) keep order:true", + "HashJoin 9990.00 root anti semi join, equal:[eq(test.t1.b, test.t3.b)]", + "├─TableReader(Build) 3.00 root data:TableFullScan", + "│ └─TableFullScan 3.00 cop[tikv] table:t3 keep order:false", "└─HashJoin(Probe) 12487.50 root inner join, equal:[eq(test.t1.a, test.t2.a)]", " ├─TableReader(Build) 9990.00 root data:Selection", " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", @@ -3386,12 +6829,14 @@ " └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" ], - "Warning": null + "Warning": [ + "Warning 1815 There are no matching table names for (t3) in optimizer hint /*+ LEADING(t3) */. Maybe you can use the table alias name" + ] }, { - "SQL": "select /*+ straight_join() */ * from t1 join t2 on t1.a=t2.a where t1.a not in (select t3.a from t3)", + "SQL": "select /*+ leading(t2, t3@sel_2) */ * from t1 join t2 on t1.a=t2.a where not exists (select t3.a from t3 where t1.b = t3.b)", "Plan": [ - "HashJoin 9990.00 root CARTESIAN anti semi join, other cond:eq(test.t1.a, test.t3.a)", + "HashJoin 9990.00 root anti semi join, equal:[eq(test.t1.b, test.t3.b)]", "├─TableReader(Build) 3.00 root data:TableFullScan", "│ └─TableFullScan 3.00 cop[tikv] table:t3 keep order:false", "└─HashJoin(Probe) 12487.50 root inner join, equal:[eq(test.t1.a, test.t2.a)]", @@ -3402,176 +6847,149 @@ " └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" ], - "Warning": null - }, - { - "SQL": "select /*+ straight_join() */ * from t1 join t2 on t1.a=t2.a where exists (select t3.a from t3)", - "Plan": [ - "HashJoin 12487.50 root inner join, equal:[eq(test.t1.a, test.t2.a)]", - "├─TableReader(Build) 9990.00 root data:Selection", - "│ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", - "│ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", - "└─TableReader(Probe) 9990.00 root data:Selection", - " └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", - " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" - ], - "Warning": null - }, - { - "SQL": "select /*+ straight_join() */ * from t1 join t2 on t1.a=t2.a where not exists (select t3.a from t3)", - "Plan": [ - "TableDual 0.00 root rows:0" - ], - "Warning": null + "Warning": [ + "Warning 1815 There are no matching table names for (t3) in optimizer hint /*+ LEADING(t2, t3) */. Maybe you can use the table alias name", + "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" + ] }, { - "SQL": "select /*+ straight_join() */ * from t1 join (select * from t4) t2 on t1.a=t2.a join t3 on t2.b=t3.b;", + "SQL": "select /*+ leading(t1, t3@sel_2) */ * from t1 join t2 on t1.a=t2.a where not exists (select t3.a from t3 where t1.b = t3.b)", "Plan": [ - "HashJoin 4.69 root inner join, equal:[eq(test.t4.b, test.t3.b)]", - "├─TableReader(Build) 3.00 root data:Selection", - "│ └─Selection 3.00 cop[tikv] not(isnull(test.t3.b))", - "│ └─TableFullScan 3.00 cop[tikv] table:t3 keep order:false", - "└─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t1.a, test.t4.a)]", - " ├─TableReader(Build) 9980.01 root data:Selection", - " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t4.a)), not(isnull(test.t4.b))", - " │ └─TableFullScan 10000.00 cop[tikv] table:t4 keep order:false, stats:pseudo", + "HashJoin 9990.00 root anti semi join, equal:[eq(test.t1.b, test.t3.b)]", + "├─TableReader(Build) 3.00 root data:TableFullScan", + "│ └─TableFullScan 3.00 cop[tikv] table:t3 keep order:false", + "└─HashJoin(Probe) 12487.50 root inner join, equal:[eq(test.t1.a, test.t2.a)]", + " ├─TableReader(Build) 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", " └─TableReader(Probe) 9990.00 root data:Selection", " └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" ], - "Warning": null + "Warning": [ + "Warning 1815 There are no matching table names for (t3) in optimizer hint /*+ LEADING(t1, t3) */. Maybe you can use the table alias name", + "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" + ] }, { - "SQL": "select /*+ straight_join() */ * from (select * from t4) t1 join t2 on t1.a=t2.a join t3 on t2.b=t3.b;", + "SQL": "select /*+ leading(t3@sel_2, t2) */ * from t1 join t2 on t1.a=t2.a where not exists (select t3.a from t3 where t1.b = t3.b)", "Plan": [ - "HashJoin 4.69 root inner join, equal:[eq(test.t2.b, test.t3.b)]", - "├─TableReader(Build) 3.00 root data:Selection", - "│ └─Selection 3.00 cop[tikv] not(isnull(test.t3.b))", - "│ └─TableFullScan 3.00 cop[tikv] table:t3 keep order:false", - "└─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t4.a, test.t2.a)]", - " ├─TableReader(Build) 9980.01 root data:Selection", - " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t2.a)), not(isnull(test.t2.b))", + "HashJoin 9990.00 root anti semi join, equal:[eq(test.t1.b, test.t3.b)]", + "├─TableReader(Build) 3.00 root data:TableFullScan", + "│ └─TableFullScan 3.00 cop[tikv] table:t3 keep order:false", + "└─HashJoin(Probe) 12487.50 root inner join, equal:[eq(test.t1.a, test.t2.a)]", + " ├─TableReader(Build) 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", " └─TableReader(Probe) 9990.00 root data:Selection", - " └─Selection 9990.00 cop[tikv] not(isnull(test.t4.a))", - " └─TableFullScan 10000.00 cop[tikv] table:t4 keep order:false, stats:pseudo" + " └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", + " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" ], - "Warning": null + "Warning": [ + "Warning 1815 There are no matching table names for (t3) in optimizer hint /*+ LEADING(t3, t2) */. Maybe you can use the table alias name", + "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" + ] }, { - "SQL": "select /*+ straight_join() */ * from t1 join t2 on t1.a=t2.a join (select * from t4) t3 on t2.b=t3.b;", + "SQL": "select /*+ leading(t3@sel_2, t1) */ * from t1 join t2 on t1.a=t2.a where not exists (select t3.a from t3 where t1.b = t3.b)", "Plan": [ - "HashJoin 15593.77 root inner join, equal:[eq(test.t2.b, test.t4.b)]", - "├─TableReader(Build) 9990.00 root data:Selection", - "│ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.b))", - "│ └─TableFullScan 10000.00 cop[tikv] table:t4 keep order:false, stats:pseudo", - "└─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t1.a, test.t2.a)]", - " ├─TableReader(Build) 9980.01 root data:Selection", - " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t2.a)), not(isnull(test.t2.b))", + "HashJoin 9990.00 root anti semi join, equal:[eq(test.t1.b, test.t3.b)]", + "├─TableReader(Build) 3.00 root data:TableFullScan", + "│ └─TableFullScan 3.00 cop[tikv] table:t3 keep order:false", + "└─HashJoin(Probe) 12487.50 root inner join, equal:[eq(test.t1.a, test.t2.a)]", + " ├─TableReader(Build) 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", " └─TableReader(Probe) 9990.00 root data:Selection", " └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", - " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" - ], - "Warning": null - }, - { - "SQL": "select /*+ straight_join() */ t1.a, (select min(t2.a) from t2) from t1;", - "Plan": [ - "Projection 10000.00 root test.t1.a, ->Column#11", - "└─IndexReader 10000.00 root index:IndexFullScan", - " └─IndexFullScan 10000.00 cop[tikv] table:t1, index:a(a) keep order:false, stats:pseudo" - ], - "Warning": null - }, - { - "SQL": "select /*+ straight_join() */ t1.a, (select min(t2.a) from t2) from t1 join t3 on t1.a = t3.a;", - "Plan": [ - "Projection 3.75 root test.t1.a, ->Column#14", - "└─IndexJoin 3.75 root inner join, inner:IndexReader, outer key:test.t3.a, inner key:test.t1.a, equal cond:eq(test.t3.a, test.t1.a)", - " ├─IndexReader(Build) 3.00 root index:IndexFullScan", - " │ └─IndexFullScan 3.00 cop[tikv] table:t3, index:a(a) keep order:false", - " └─IndexReader(Probe) 1.25 root index:Selection", - " └─Selection 1.25 cop[tikv] not(isnull(test.t1.a))", - " └─IndexRangeScan 1.25 cop[tikv] table:t1, index:a(a) range: decided by [eq(test.t1.a, test.t3.a)], keep order:false, stats:pseudo" + " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" ], - "Warning": null + "Warning": [ + "Warning 1815 There are no matching table names for (t3) in optimizer hint /*+ LEADING(t3, t1) */. Maybe you can use the table alias name", + "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" + ] }, { - "SQL": "select /*+ leading(t4) */ * from t1 join t2 on t1.a=t2.a join t4 on t1.b = t4.b where t1.a in (select t3.a from t3 where t1.b = t3.b)", + "SQL": "select /*+ leading(t1) */ t1.a, (select min(t1.a) from t2 where t2.a > t1.a) from t1 join t3 on t1.a = t3.a;", "Plan": [ - "HashJoin 12475.01 root semi join, equal:[eq(test.t1.b, test.t3.b) eq(test.t1.a, test.t3.a)]", - "├─TableReader(Build) 3.00 root data:Selection", - "│ └─Selection 3.00 cop[tikv] not(isnull(test.t3.a)), not(isnull(test.t3.b))", - "│ └─TableFullScan 3.00 cop[tikv] table:t3 keep order:false", - "└─Projection(Probe) 15593.77 root test.t1.a, test.t1.b, test.t2.a, test.t2.b, test.t4.a, test.t4.b", - " └─HashJoin 15593.77 root inner join, equal:[eq(test.t1.a, test.t2.a)]", - " ├─TableReader(Build) 9990.00 root data:Selection", - " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", - " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", - " └─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t4.b, test.t1.b)]", - " ├─TableReader(Build) 9980.01 root data:Selection", - " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t1.a)), not(isnull(test.t1.b))", - " │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", - " └─TableReader(Probe) 9990.00 root data:Selection", - " └─Selection 9990.00 cop[tikv] not(isnull(test.t4.b))", - " └─TableFullScan 10000.00 cop[tikv] table:t4 keep order:false, stats:pseudo" + "Projection 1.00 root test.t1.a, Column#14", + "└─Apply 1.00 root CARTESIAN left outer join", + " ├─StreamAgg(Build) 1.00 root funcs:min(test.t1.a)->Column#10, funcs:firstrow(test.t1.a)->test.t1.a", + " │ └─IndexJoin 3.75 root inner join, inner:IndexReader, outer key:test.t3.a, inner key:test.t1.a, equal cond:eq(test.t3.a, test.t1.a)", + " │ ├─IndexReader(Build) 3.00 root index:IndexFullScan", + " │ │ └─IndexFullScan 3.00 cop[tikv] table:t3, index:a(a) keep order:false", + " │ └─IndexReader(Probe) 1.25 root index:Selection", + " │ └─Selection 1.25 cop[tikv] not(isnull(test.t1.a))", + " │ └─IndexRangeScan 1.25 cop[tikv] table:t1, index:a(a) range: decided by [eq(test.t1.a, test.t3.a)], keep order:false, stats:pseudo", + " └─MaxOneRow(Probe) 1.00 root ", + " └─Projection 2.00 root Column#10", + " └─IndexReader 2.00 root index:Selection", + " └─Selection 2.00 cop[tikv] gt(test.t2.a, test.t1.a)", + " └─IndexFullScan 2.50 cop[tikv] table:t2, index:a(a) keep order:false, stats:pseudo" ], "Warning": null }, { - "SQL": "select /*+ leading(t3@sel_2) */ * from t1 join t2 on t1.a=t2.a where t1.a in (select t3.a from t3 where t1.b = t3.b)", + "SQL": "select /*+ leading(t3@sel_2) */ t1.a, (select min(t1.a) from t2 where t2.a > t1.a) from t1 join t3 on t1.a = t3.a;", "Plan": [ - "HashJoin 9980.01 root semi join, equal:[eq(test.t1.b, test.t3.b) eq(test.t1.a, test.t3.a)]", - "├─TableReader(Build) 3.00 root data:Selection", - "│ └─Selection 3.00 cop[tikv] not(isnull(test.t3.a)), not(isnull(test.t3.b))", - "│ └─TableFullScan 3.00 cop[tikv] table:t3 keep order:false", - "└─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t1.a, test.t2.a)]", - " ├─TableReader(Build) 9980.01 root data:Selection", - " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t1.a)), not(isnull(test.t1.b))", - " │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", - " └─TableReader(Probe) 9990.00 root data:Selection", - " └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", - " └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo" + "Projection 1.00 root test.t1.a, Column#14", + "└─Apply 1.00 root CARTESIAN left outer join", + " ├─StreamAgg(Build) 1.00 root funcs:min(test.t1.a)->Column#10, funcs:firstrow(test.t1.a)->test.t1.a", + " │ └─IndexJoin 3.75 root inner join, inner:IndexReader, outer key:test.t3.a, inner key:test.t1.a, equal cond:eq(test.t3.a, test.t1.a)", + " │ ├─IndexReader(Build) 3.00 root index:IndexFullScan", + " │ │ └─IndexFullScan 3.00 cop[tikv] table:t3, index:a(a) keep order:false", + " │ └─IndexReader(Probe) 1.25 root index:Selection", + " │ └─Selection 1.25 cop[tikv] not(isnull(test.t1.a))", + " │ └─IndexRangeScan 1.25 cop[tikv] table:t1, index:a(a) range: decided by [eq(test.t1.a, test.t3.a)], keep order:false, stats:pseudo", + " └─MaxOneRow(Probe) 1.00 root ", + " └─Projection 2.00 root Column#10", + " └─IndexReader 2.00 root index:Selection", + " └─Selection 2.00 cop[tikv] gt(test.t2.a, test.t1.a)", + " └─IndexFullScan 2.50 cop[tikv] table:t2, index:a(a) keep order:false, stats:pseudo" ], "Warning": [ "Warning 1815 There are no matching table names for (t3) in optimizer hint /*+ LEADING(t3) */. Maybe you can use the table alias name" ] }, { - "SQL": "select /*+ leading(t2, t3@sel_2) */ * from t1 join t2 on t1.a=t2.a where t1.a in (select t3.a from t3 where t1.b = t3.b)", + "SQL": "select /*+ leading(t2, t3@sel_2) */ t1.a, (select min(t1.a) from t2 where t2.a > t1.a) from t1 join t3 on t1.a = t3.a;", "Plan": [ - "HashJoin 9980.01 root semi join, equal:[eq(test.t1.b, test.t3.b) eq(test.t1.a, test.t3.a)]", - "├─TableReader(Build) 3.00 root data:Selection", - "│ └─Selection 3.00 cop[tikv] not(isnull(test.t3.a)), not(isnull(test.t3.b))", - "│ └─TableFullScan 3.00 cop[tikv] table:t3 keep order:false", - "└─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t1.a, test.t2.a)]", - " ├─TableReader(Build) 9980.01 root data:Selection", - " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t1.a)), not(isnull(test.t1.b))", - " │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", - " └─TableReader(Probe) 9990.00 root data:Selection", - " └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", - " └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo" + "Projection 1.00 root test.t1.a, Column#14", + "└─Apply 1.00 root CARTESIAN left outer join", + " ├─StreamAgg(Build) 1.00 root funcs:min(test.t1.a)->Column#10, funcs:firstrow(test.t1.a)->test.t1.a", + " │ └─IndexJoin 3.75 root inner join, inner:IndexReader, outer key:test.t3.a, inner key:test.t1.a, equal cond:eq(test.t3.a, test.t1.a)", + " │ ├─IndexReader(Build) 3.00 root index:IndexFullScan", + " │ │ └─IndexFullScan 3.00 cop[tikv] table:t3, index:a(a) keep order:false", + " │ └─IndexReader(Probe) 1.25 root index:Selection", + " │ └─Selection 1.25 cop[tikv] not(isnull(test.t1.a))", + " │ └─IndexRangeScan 1.25 cop[tikv] table:t1, index:a(a) range: decided by [eq(test.t1.a, test.t3.a)], keep order:false, stats:pseudo", + " └─MaxOneRow(Probe) 1.00 root ", + " └─Projection 2.00 root Column#10", + " └─IndexReader 2.00 root index:Selection", + " └─Selection 2.00 cop[tikv] gt(test.t2.a, test.t1.a)", + " └─IndexFullScan 2.50 cop[tikv] table:t2, index:a(a) keep order:false, stats:pseudo" ], "Warning": [ - "Warning 1815 There are no matching table names for (t3) in optimizer hint /*+ LEADING(t2, t3) */. Maybe you can use the table alias name", - "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" + "Warning 1815 There are no matching table names for (t2, t3) in optimizer hint /*+ LEADING(t2, t3) */. Maybe you can use the table alias name" ] }, { - "SQL": "select /*+ leading(t1, t3@sel_2) */ * from t1 join t2 on t1.a=t2.a where t1.a in (select t3.a from t3 where t1.b = t3.b)", + "SQL": "select /*+ leading(t1, t3@sel_2) */ t1.a, (select min(t1.a) from t2 where t2.a > t1.a) from t1 join t3 on t1.a = t3.a;", "Plan": [ - "HashJoin 9980.01 root semi join, equal:[eq(test.t1.b, test.t3.b) eq(test.t1.a, test.t3.a)]", - "├─TableReader(Build) 3.00 root data:Selection", - "│ └─Selection 3.00 cop[tikv] not(isnull(test.t3.a)), not(isnull(test.t3.b))", - "│ └─TableFullScan 3.00 cop[tikv] table:t3 keep order:false", - "└─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t1.a, test.t2.a)]", - " ├─TableReader(Build) 9980.01 root data:Selection", - " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t1.a)), not(isnull(test.t1.b))", - " │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", - " └─TableReader(Probe) 9990.00 root data:Selection", - " └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", - " └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo" + "Projection 1.00 root test.t1.a, Column#14", + "└─Apply 1.00 root CARTESIAN left outer join", + " ├─StreamAgg(Build) 1.00 root funcs:min(test.t1.a)->Column#10, funcs:firstrow(test.t1.a)->test.t1.a", + " │ └─IndexJoin 3.75 root inner join, inner:IndexReader, outer key:test.t3.a, inner key:test.t1.a, equal cond:eq(test.t3.a, test.t1.a)", + " │ ├─IndexReader(Build) 3.00 root index:IndexFullScan", + " │ │ └─IndexFullScan 3.00 cop[tikv] table:t3, index:a(a) keep order:false", + " │ └─IndexReader(Probe) 1.25 root index:Selection", + " │ └─Selection 1.25 cop[tikv] not(isnull(test.t1.a))", + " │ └─IndexRangeScan 1.25 cop[tikv] table:t1, index:a(a) range: decided by [eq(test.t1.a, test.t3.a)], keep order:false, stats:pseudo", + " └─MaxOneRow(Probe) 1.00 root ", + " └─Projection 2.00 root Column#10", + " └─IndexReader 2.00 root index:Selection", + " └─Selection 2.00 cop[tikv] gt(test.t2.a, test.t1.a)", + " └─IndexFullScan 2.50 cop[tikv] table:t2, index:a(a) keep order:false, stats:pseudo" ], "Warning": [ "Warning 1815 There are no matching table names for (t3) in optimizer hint /*+ LEADING(t1, t3) */. Maybe you can use the table alias name", @@ -3579,39 +6997,44 @@ ] }, { - "SQL": "select /*+ leading(t3@sel_2, t2) */ * from t1 join t2 on t1.a=t2.a where t1.a in (select t3.a from t3 where t1.b = t3.b)", + "SQL": "select /*+ leading(t3@sel_2, t2) */ t1.a, (select min(t1.a) from t2 where t2.a > t1.a) from t1 join t3 on t1.a = t3.a;", "Plan": [ - "HashJoin 9980.01 root semi join, equal:[eq(test.t1.b, test.t3.b) eq(test.t1.a, test.t3.a)]", - "├─TableReader(Build) 3.00 root data:Selection", - "│ └─Selection 3.00 cop[tikv] not(isnull(test.t3.a)), not(isnull(test.t3.b))", - "│ └─TableFullScan 3.00 cop[tikv] table:t3 keep order:false", - "└─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t1.a, test.t2.a)]", - " ├─TableReader(Build) 9980.01 root data:Selection", - " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t1.a)), not(isnull(test.t1.b))", - " │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", - " └─TableReader(Probe) 9990.00 root data:Selection", - " └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", - " └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo" + "Projection 1.00 root test.t1.a, Column#14", + "└─Apply 1.00 root CARTESIAN left outer join", + " ├─StreamAgg(Build) 1.00 root funcs:min(test.t1.a)->Column#10, funcs:firstrow(test.t1.a)->test.t1.a", + " │ └─IndexJoin 3.75 root inner join, inner:IndexReader, outer key:test.t3.a, inner key:test.t1.a, equal cond:eq(test.t3.a, test.t1.a)", + " │ ├─IndexReader(Build) 3.00 root index:IndexFullScan", + " │ │ └─IndexFullScan 3.00 cop[tikv] table:t3, index:a(a) keep order:false", + " │ └─IndexReader(Probe) 1.25 root index:Selection", + " │ └─Selection 1.25 cop[tikv] not(isnull(test.t1.a))", + " │ └─IndexRangeScan 1.25 cop[tikv] table:t1, index:a(a) range: decided by [eq(test.t1.a, test.t3.a)], keep order:false, stats:pseudo", + " └─MaxOneRow(Probe) 1.00 root ", + " └─Projection 2.00 root Column#10", + " └─IndexReader 2.00 root index:Selection", + " └─Selection 2.00 cop[tikv] gt(test.t2.a, test.t1.a)", + " └─IndexFullScan 2.50 cop[tikv] table:t2, index:a(a) keep order:false, stats:pseudo" ], "Warning": [ - "Warning 1815 There are no matching table names for (t3) in optimizer hint /*+ LEADING(t3, t2) */. Maybe you can use the table alias name", - "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" + "Warning 1815 There are no matching table names for (t3, t2) in optimizer hint /*+ LEADING(t3, t2) */. Maybe you can use the table alias name" ] }, { - "SQL": "select /*+ leading(t3@sel_2, t1) */ * from t1 join t2 on t1.a=t2.a where t1.a in (select t3.a from t3 where t1.b = t3.b)", + "SQL": "select /*+ leading(t3@sel_2, t1) */ t1.a, (select min(t1.a) from t2 where t2.a > t1.a) from t1 join t3 on t1.a = t3.a;", "Plan": [ - "HashJoin 9980.01 root semi join, equal:[eq(test.t1.b, test.t3.b) eq(test.t1.a, test.t3.a)]", - "├─TableReader(Build) 3.00 root data:Selection", - "│ └─Selection 3.00 cop[tikv] not(isnull(test.t3.a)), not(isnull(test.t3.b))", - "│ └─TableFullScan 3.00 cop[tikv] table:t3 keep order:false", - "└─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t1.a, test.t2.a)]", - " ├─TableReader(Build) 9980.01 root data:Selection", - " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t1.a)), not(isnull(test.t1.b))", - " │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", - " └─TableReader(Probe) 9990.00 root data:Selection", - " └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", - " └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo" + "Projection 1.00 root test.t1.a, Column#14", + "└─Apply 1.00 root CARTESIAN left outer join", + " ├─StreamAgg(Build) 1.00 root funcs:min(test.t1.a)->Column#10, funcs:firstrow(test.t1.a)->test.t1.a", + " │ └─IndexJoin 3.75 root inner join, inner:IndexReader, outer key:test.t3.a, inner key:test.t1.a, equal cond:eq(test.t3.a, test.t1.a)", + " │ ├─IndexReader(Build) 3.00 root index:IndexFullScan", + " │ │ └─IndexFullScan 3.00 cop[tikv] table:t3, index:a(a) keep order:false", + " │ └─IndexReader(Probe) 1.25 root index:Selection", + " │ └─Selection 1.25 cop[tikv] not(isnull(test.t1.a))", + " │ └─IndexRangeScan 1.25 cop[tikv] table:t1, index:a(a) range: decided by [eq(test.t1.a, test.t3.a)], keep order:false, stats:pseudo", + " └─MaxOneRow(Probe) 1.00 root ", + " └─Projection 2.00 root Column#10", + " └─IndexReader 2.00 root index:Selection", + " └─Selection 2.00 cop[tikv] gt(test.t2.a, test.t1.a)", + " └─IndexFullScan 2.50 cop[tikv] table:t2, index:a(a) keep order:false, stats:pseudo" ], "Warning": [ "Warning 1815 There are no matching table names for (t3) in optimizer hint /*+ LEADING(t3, t1) */. Maybe you can use the table alias name", @@ -3619,245 +7042,351 @@ ] }, { - "SQL": "select /*+ leading(t4) */ * from t1 join t2 on t1.a=t2.a join t4 on t1.b = t4.b where t1.a not in (select t3.a from t3 where t1.b = t3.b)", + "SQL": "select /*+ leading(t4, t3@sel_2) */ * from t1 join t2 on t1.a=t2.a join t4 on t1.b = t4.b where t1.a = (select max(t3.a) from t3 where t1.b = t3.b)", "Plan": [ - "HashJoin 12475.01 root anti semi join, equal:[eq(test.t1.b, test.t3.b)], other cond:eq(test.t1.a, test.t3.a)", - "├─TableReader(Build) 3.00 root data:TableFullScan", - "│ └─TableFullScan 3.00 cop[tikv] table:t3 keep order:false", - "└─Projection(Probe) 15593.77 root test.t1.a, test.t1.b, test.t2.a, test.t2.b, test.t4.a, test.t4.b", - " └─HashJoin 15593.77 root inner join, equal:[eq(test.t1.a, test.t2.a)]", - " ├─TableReader(Build) 9990.00 root data:Selection", - " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", - " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", - " └─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t4.b, test.t1.b)]", - " ├─TableReader(Build) 9980.01 root data:Selection", - " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t1.a)), not(isnull(test.t1.b))", - " │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", - " └─TableReader(Probe) 9990.00 root data:Selection", - " └─Selection 9990.00 cop[tikv] not(isnull(test.t4.b))", - " └─TableFullScan 10000.00 cop[tikv] table:t4 keep order:false, stats:pseudo" + "HashJoin 4.69 root inner join, equal:[eq(test.t1.b, test.t4.b)]", + "├─IndexJoin(Build) 3.75 root inner join, inner:IndexLookUp, outer key:test.t1.a, inner key:test.t2.a, equal cond:eq(test.t1.a, test.t2.a)", + "│ ├─IndexJoin(Build) 3.00 root inner join, inner:IndexLookUp, outer key:Column#13, inner key:test.t1.a, equal cond:eq(Column#13, test.t1.a), eq(test.t3.b, test.t1.b)", + "│ │ ├─Selection(Build) 2.40 root not(isnull(Column#13))", + "│ │ │ └─HashAgg 3.00 root group by:test.t3.b, funcs:max(test.t3.a)->Column#13, funcs:firstrow(test.t3.b)->test.t3.b", + "│ │ │ └─TableReader 3.00 root data:Selection", + "│ │ │ └─Selection 3.00 cop[tikv] not(isnull(test.t3.b))", + "│ │ │ └─TableFullScan 3.00 cop[tikv] table:t3 keep order:false", + "│ │ └─IndexLookUp(Probe) 1.25 root ", + "│ │ ├─Selection(Build) 1.25 cop[tikv] not(isnull(test.t1.a))", + "│ │ │ └─IndexRangeScan 1.25 cop[tikv] table:t1, index:a(a) range: decided by [eq(test.t1.a, Column#13)], keep order:false, stats:pseudo", + "│ │ └─Selection(Probe) 1.25 cop[tikv] not(isnull(test.t1.b))", + "│ │ └─TableRowIDScan 1.25 cop[tikv] table:t1 keep order:false, stats:pseudo", + "│ └─IndexLookUp(Probe) 1.25 root ", + "│ ├─Selection(Build) 1.25 cop[tikv] not(isnull(test.t2.a))", + "│ │ └─IndexRangeScan 1.25 cop[tikv] table:t2, index:a(a) range: decided by [eq(test.t2.a, test.t1.a)], keep order:false, stats:pseudo", + "│ └─TableRowIDScan(Probe) 1.25 cop[tikv] table:t2 keep order:false, stats:pseudo", + "└─TableReader(Probe) 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t4.b))", + " └─TableFullScan 10000.00 cop[tikv] table:t4 keep order:false, stats:pseudo" + ], + "Warning": [ + "Warning 1815 There are no matching table names for (t3) in optimizer hint /*+ LEADING(t4, t3) */. Maybe you can use the table alias name", + "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" + ] + }, + { + "SQL": "select /*+ leading(t4) */ * from t1 join t2 on t1.a=t2.a join t4 on t1.b = t4.b where t1.a = (select max(t3.a) from t3 where t1.b = t3.b)", + "Plan": [ + "Projection 4.69 root test.t1.a, test.t1.b, test.t2.a, test.t2.b, test.t4.a, test.t4.b", + "└─IndexJoin 4.69 root inner join, inner:IndexLookUp, outer key:test.t1.a, inner key:test.t2.a, equal cond:eq(test.t1.a, test.t2.a)", + " ├─HashJoin(Build) 3.75 root inner join, equal:[eq(test.t1.b, test.t3.b) eq(test.t1.a, Column#13)]", + " │ ├─Selection(Build) 2.40 root not(isnull(Column#13))", + " │ │ └─HashAgg 3.00 root group by:test.t3.b, funcs:max(test.t3.a)->Column#13, funcs:firstrow(test.t3.b)->test.t3.b", + " │ │ └─TableReader 3.00 root data:Selection", + " │ │ └─Selection 3.00 cop[tikv] not(isnull(test.t3.b))", + " │ │ └─TableFullScan 3.00 cop[tikv] table:t3 keep order:false", + " │ └─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t4.b, test.t1.b)]", + " │ ├─TableReader(Build) 9980.01 root data:Selection", + " │ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t1.a)), not(isnull(test.t1.b))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", + " │ └─TableReader(Probe) 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t4 keep order:false, stats:pseudo", + " └─IndexLookUp(Probe) 1.25 root ", + " ├─Selection(Build) 1.25 cop[tikv] not(isnull(test.t2.a))", + " │ └─IndexRangeScan 1.25 cop[tikv] table:t2, index:a(a) range: decided by [eq(test.t2.a, test.t1.a)], keep order:false, stats:pseudo", + " └─TableRowIDScan(Probe) 1.25 cop[tikv] table:t2 keep order:false, stats:pseudo" ], "Warning": null }, { - "SQL": "select /*+ leading(t3@sel_2) */ * from t1 join t2 on t1.a=t2.a where t1.a not in (select t3.a from t3 where t1.b = t3.b)", + "SQL": "select /*+ leading(t3@sel_2) */ * from t1 join t2 on t1.a=t2.a join t4 on t1.b = t4.b where t1.a = (select max(t3.a) from t3 where t1.b = t3.b)", "Plan": [ - "HashJoin 9990.00 root anti semi join, equal:[eq(test.t1.b, test.t3.b)], other cond:eq(test.t1.a, test.t3.a)", - "├─TableReader(Build) 3.00 root data:TableFullScan", - "│ └─TableFullScan 3.00 cop[tikv] table:t3 keep order:false", - "└─HashJoin(Probe) 12487.50 root inner join, equal:[eq(test.t1.a, test.t2.a)]", - " ├─TableReader(Build) 9990.00 root data:Selection", - " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", - " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", - " └─TableReader(Probe) 9990.00 root data:Selection", - " └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", - " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" + "HashJoin 4.69 root inner join, equal:[eq(test.t1.b, test.t4.b)]", + "├─IndexJoin(Build) 3.75 root inner join, inner:IndexLookUp, outer key:test.t1.a, inner key:test.t2.a, equal cond:eq(test.t1.a, test.t2.a)", + "│ ├─IndexJoin(Build) 3.00 root inner join, inner:IndexLookUp, outer key:Column#13, inner key:test.t1.a, equal cond:eq(Column#13, test.t1.a), eq(test.t3.b, test.t1.b)", + "│ │ ├─Selection(Build) 2.40 root not(isnull(Column#13))", + "│ │ │ └─HashAgg 3.00 root group by:test.t3.b, funcs:max(test.t3.a)->Column#13, funcs:firstrow(test.t3.b)->test.t3.b", + "│ │ │ └─TableReader 3.00 root data:Selection", + "│ │ │ └─Selection 3.00 cop[tikv] not(isnull(test.t3.b))", + "│ │ │ └─TableFullScan 3.00 cop[tikv] table:t3 keep order:false", + "│ │ └─IndexLookUp(Probe) 1.25 root ", + "│ │ ├─Selection(Build) 1.25 cop[tikv] not(isnull(test.t1.a))", + "│ │ │ └─IndexRangeScan 1.25 cop[tikv] table:t1, index:a(a) range: decided by [eq(test.t1.a, Column#13)], keep order:false, stats:pseudo", + "│ │ └─Selection(Probe) 1.25 cop[tikv] not(isnull(test.t1.b))", + "│ │ └─TableRowIDScan 1.25 cop[tikv] table:t1 keep order:false, stats:pseudo", + "│ └─IndexLookUp(Probe) 1.25 root ", + "│ ├─Selection(Build) 1.25 cop[tikv] not(isnull(test.t2.a))", + "│ │ └─IndexRangeScan 1.25 cop[tikv] table:t2, index:a(a) range: decided by [eq(test.t2.a, test.t1.a)], keep order:false, stats:pseudo", + "│ └─TableRowIDScan(Probe) 1.25 cop[tikv] table:t2 keep order:false, stats:pseudo", + "└─TableReader(Probe) 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t4.b))", + " └─TableFullScan 10000.00 cop[tikv] table:t4 keep order:false, stats:pseudo" ], "Warning": [ "Warning 1815 There are no matching table names for (t3) in optimizer hint /*+ LEADING(t3) */. Maybe you can use the table alias name" ] }, { - "SQL": "select /*+ leading(t2, t3@sel_2) */ * from t1 join t2 on t1.a=t2.a where t1.a not in (select t3.a from t3 where t1.b = t3.b)", + "SQL": "select /*+ leading(t3@sel_2, t2) */ * from t1 join t2 on t1.a=t2.a join t4 on t1.b = t4.b where t1.a = (select max(t3.a) from t3 where t1.b = t3.b)", "Plan": [ - "HashJoin 9990.00 root anti semi join, equal:[eq(test.t1.b, test.t3.b)], other cond:eq(test.t1.a, test.t3.a)", - "├─TableReader(Build) 3.00 root data:TableFullScan", - "│ └─TableFullScan 3.00 cop[tikv] table:t3 keep order:false", - "└─HashJoin(Probe) 12487.50 root inner join, equal:[eq(test.t1.a, test.t2.a)]", - " ├─TableReader(Build) 9990.00 root data:Selection", - " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", - " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", - " └─TableReader(Probe) 9990.00 root data:Selection", - " └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", - " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" + "HashJoin 4.69 root inner join, equal:[eq(test.t1.b, test.t4.b)]", + "├─IndexJoin(Build) 3.75 root inner join, inner:IndexLookUp, outer key:test.t1.a, inner key:test.t2.a, equal cond:eq(test.t1.a, test.t2.a)", + "│ ├─IndexJoin(Build) 3.00 root inner join, inner:IndexLookUp, outer key:Column#13, inner key:test.t1.a, equal cond:eq(Column#13, test.t1.a), eq(test.t3.b, test.t1.b)", + "│ │ ├─Selection(Build) 2.40 root not(isnull(Column#13))", + "│ │ │ └─HashAgg 3.00 root group by:test.t3.b, funcs:max(test.t3.a)->Column#13, funcs:firstrow(test.t3.b)->test.t3.b", + "│ │ │ └─TableReader 3.00 root data:Selection", + "│ │ │ └─Selection 3.00 cop[tikv] not(isnull(test.t3.b))", + "│ │ │ └─TableFullScan 3.00 cop[tikv] table:t3 keep order:false", + "│ │ └─IndexLookUp(Probe) 1.25 root ", + "│ │ ├─Selection(Build) 1.25 cop[tikv] not(isnull(test.t1.a))", + "│ │ │ └─IndexRangeScan 1.25 cop[tikv] table:t1, index:a(a) range: decided by [eq(test.t1.a, Column#13)], keep order:false, stats:pseudo", + "│ │ └─Selection(Probe) 1.25 cop[tikv] not(isnull(test.t1.b))", + "│ │ └─TableRowIDScan 1.25 cop[tikv] table:t1 keep order:false, stats:pseudo", + "│ └─IndexLookUp(Probe) 1.25 root ", + "│ ├─Selection(Build) 1.25 cop[tikv] not(isnull(test.t2.a))", + "│ │ └─IndexRangeScan 1.25 cop[tikv] table:t2, index:a(a) range: decided by [eq(test.t2.a, test.t1.a)], keep order:false, stats:pseudo", + "│ └─TableRowIDScan(Probe) 1.25 cop[tikv] table:t2 keep order:false, stats:pseudo", + "└─TableReader(Probe) 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t4.b))", + " └─TableFullScan 10000.00 cop[tikv] table:t4 keep order:false, stats:pseudo" ], "Warning": [ - "Warning 1815 There are no matching table names for (t3) in optimizer hint /*+ LEADING(t2, t3) */. Maybe you can use the table alias name", + "Warning 1815 There are no matching table names for (t3) in optimizer hint /*+ LEADING(t3, t2) */. Maybe you can use the table alias name", "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" ] }, { - "SQL": "select /*+ leading(t1, t3@sel_2) */ * from t1 join t2 on t1.a=t2.a where t1.a not in (select t3.a from t3 where t1.b = t3.b)", + "SQL": "select /*+ leading(t4, t3@sel_2) */ * from t1 join t2 on t1.a=t2.a join t4 on t1.b = t4.b where t1.a > (select min(t3.a) from t3 where t1.b = t3.b)", "Plan": [ - "HashJoin 9990.00 root anti semi join, equal:[eq(test.t1.b, test.t3.b)], other cond:eq(test.t1.a, test.t3.a)", - "├─TableReader(Build) 3.00 root data:TableFullScan", - "│ └─TableFullScan 3.00 cop[tikv] table:t3 keep order:false", - "└─HashJoin(Probe) 12487.50 root inner join, equal:[eq(test.t1.a, test.t2.a)]", - " ├─TableReader(Build) 9990.00 root data:Selection", - " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", - " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", - " └─TableReader(Probe) 9990.00 root data:Selection", - " └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", - " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" + "HashJoin 4.69 root inner join, equal:[eq(test.t1.b, test.t4.b)]", + "├─IndexJoin(Build) 3.75 root inner join, inner:IndexLookUp, outer key:test.t1.a, inner key:test.t2.a, equal cond:eq(test.t1.a, test.t2.a)", + "│ ├─HashJoin(Build) 3.00 root inner join, equal:[eq(test.t3.b, test.t1.b)], other cond:gt(test.t1.a, Column#13)", + "│ │ ├─Selection(Build) 2.40 root not(isnull(Column#13))", + "│ │ │ └─HashAgg 3.00 root group by:test.t3.b, funcs:min(test.t3.a)->Column#13, funcs:firstrow(test.t3.b)->test.t3.b", + "│ │ │ └─TableReader 3.00 root data:Selection", + "│ │ │ └─Selection 3.00 cop[tikv] not(isnull(test.t3.b))", + "│ │ │ └─TableFullScan 3.00 cop[tikv] table:t3 keep order:false", + "│ │ └─TableReader(Probe) 9980.01 root data:Selection", + "│ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t1.a)), not(isnull(test.t1.b))", + "│ │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", + "│ └─IndexLookUp(Probe) 1.25 root ", + "│ ├─Selection(Build) 1.25 cop[tikv] not(isnull(test.t2.a))", + "│ │ └─IndexRangeScan 1.25 cop[tikv] table:t2, index:a(a) range: decided by [eq(test.t2.a, test.t1.a)], keep order:false, stats:pseudo", + "│ └─TableRowIDScan(Probe) 1.25 cop[tikv] table:t2 keep order:false, stats:pseudo", + "└─TableReader(Probe) 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t4.b))", + " └─TableFullScan 10000.00 cop[tikv] table:t4 keep order:false, stats:pseudo" ], "Warning": [ - "Warning 1815 There are no matching table names for (t3) in optimizer hint /*+ LEADING(t1, t3) */. Maybe you can use the table alias name", + "Warning 1815 There are no matching table names for (t3) in optimizer hint /*+ LEADING(t4, t3) */. Maybe you can use the table alias name", "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" ] }, { - "SQL": "select /*+ leading(t3@sel_2, t2) */ * from t1 join t2 on t1.a=t2.a where t1.a not in (select t3.a from t3 where t1.b = t3.b)", + "SQL": "select /*+ leading(t4) */ * from t1 join t2 on t1.a=t2.a join t4 on t1.b = t4.b where t1.a > (select min(t3.a) from t3 where t1.b = t3.b)", "Plan": [ - "HashJoin 9990.00 root anti semi join, equal:[eq(test.t1.b, test.t3.b)], other cond:eq(test.t1.a, test.t3.a)", - "├─TableReader(Build) 3.00 root data:TableFullScan", - "│ └─TableFullScan 3.00 cop[tikv] table:t3 keep order:false", - "└─HashJoin(Probe) 12487.50 root inner join, equal:[eq(test.t1.a, test.t2.a)]", - " ├─TableReader(Build) 9990.00 root data:Selection", - " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", - " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", - " └─TableReader(Probe) 9990.00 root data:Selection", - " └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", - " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" + "Projection 4.69 root test.t1.a, test.t1.b, test.t2.a, test.t2.b, test.t4.a, test.t4.b", + "└─IndexJoin 4.69 root inner join, inner:IndexLookUp, outer key:test.t1.a, inner key:test.t2.a, equal cond:eq(test.t1.a, test.t2.a)", + " ├─HashJoin(Build) 3.75 root inner join, equal:[eq(test.t1.b, test.t3.b)], other cond:gt(test.t1.a, Column#13)", + " │ ├─Selection(Build) 2.40 root not(isnull(Column#13))", + " │ │ └─HashAgg 3.00 root group by:test.t3.b, funcs:min(test.t3.a)->Column#13, funcs:firstrow(test.t3.b)->test.t3.b", + " │ │ └─TableReader 3.00 root data:Selection", + " │ │ └─Selection 3.00 cop[tikv] not(isnull(test.t3.b))", + " │ │ └─TableFullScan 3.00 cop[tikv] table:t3 keep order:false", + " │ └─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t4.b, test.t1.b)]", + " │ ├─TableReader(Build) 9980.01 root data:Selection", + " │ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t1.a)), not(isnull(test.t1.b))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", + " │ └─TableReader(Probe) 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t4 keep order:false, stats:pseudo", + " └─IndexLookUp(Probe) 1.25 root ", + " ├─Selection(Build) 1.25 cop[tikv] not(isnull(test.t2.a))", + " │ └─IndexRangeScan 1.25 cop[tikv] table:t2, index:a(a) range: decided by [eq(test.t2.a, test.t1.a)], keep order:false, stats:pseudo", + " └─TableRowIDScan(Probe) 1.25 cop[tikv] table:t2 keep order:false, stats:pseudo" + ], + "Warning": null + }, + { + "SQL": "select /*+ leading(t3@sel_2) */ * from t1 join t2 on t1.a=t2.a join t4 on t1.b = t4.b where t1.a > (select min(t3.a) from t3 where t1.b = t3.b)", + "Plan": [ + "HashJoin 4.69 root inner join, equal:[eq(test.t1.b, test.t4.b)]", + "├─IndexJoin(Build) 3.75 root inner join, inner:IndexLookUp, outer key:test.t1.a, inner key:test.t2.a, equal cond:eq(test.t1.a, test.t2.a)", + "│ ├─HashJoin(Build) 3.00 root inner join, equal:[eq(test.t3.b, test.t1.b)], other cond:gt(test.t1.a, Column#13)", + "│ │ ├─Selection(Build) 2.40 root not(isnull(Column#13))", + "│ │ │ └─HashAgg 3.00 root group by:test.t3.b, funcs:min(test.t3.a)->Column#13, funcs:firstrow(test.t3.b)->test.t3.b", + "│ │ │ └─TableReader 3.00 root data:Selection", + "│ │ │ └─Selection 3.00 cop[tikv] not(isnull(test.t3.b))", + "│ │ │ └─TableFullScan 3.00 cop[tikv] table:t3 keep order:false", + "│ │ └─TableReader(Probe) 9980.01 root data:Selection", + "│ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t1.a)), not(isnull(test.t1.b))", + "│ │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", + "│ └─IndexLookUp(Probe) 1.25 root ", + "│ ├─Selection(Build) 1.25 cop[tikv] not(isnull(test.t2.a))", + "│ │ └─IndexRangeScan 1.25 cop[tikv] table:t2, index:a(a) range: decided by [eq(test.t2.a, test.t1.a)], keep order:false, stats:pseudo", + "│ └─TableRowIDScan(Probe) 1.25 cop[tikv] table:t2 keep order:false, stats:pseudo", + "└─TableReader(Probe) 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t4.b))", + " └─TableFullScan 10000.00 cop[tikv] table:t4 keep order:false, stats:pseudo" ], "Warning": [ - "Warning 1815 There are no matching table names for (t3) in optimizer hint /*+ LEADING(t3, t2) */. Maybe you can use the table alias name", - "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" + "Warning 1815 There are no matching table names for (t3) in optimizer hint /*+ LEADING(t3) */. Maybe you can use the table alias name" ] }, { - "SQL": "select /*+ leading(t3@sel_2, t1) */ * from t1 join t2 on t1.a=t2.a where t1.a not in (select t3.a from t3 where t1.b = t3.b)", + "SQL": "select /*+ leading(t3@sel_2, t2) */ * from t1 join t2 on t1.a=t2.a join t4 on t1.b = t4.b where t1.a > (select min(t3.a) from t3 where t1.b = t3.b)", "Plan": [ - "HashJoin 9990.00 root anti semi join, equal:[eq(test.t1.b, test.t3.b)], other cond:eq(test.t1.a, test.t3.a)", - "├─TableReader(Build) 3.00 root data:TableFullScan", - "│ └─TableFullScan 3.00 cop[tikv] table:t3 keep order:false", - "└─HashJoin(Probe) 12487.50 root inner join, equal:[eq(test.t1.a, test.t2.a)]", - " ├─TableReader(Build) 9990.00 root data:Selection", - " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", - " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", - " └─TableReader(Probe) 9990.00 root data:Selection", - " └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", - " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" + "HashJoin 4.69 root inner join, equal:[eq(test.t1.b, test.t4.b)]", + "├─IndexJoin(Build) 3.75 root inner join, inner:IndexLookUp, outer key:test.t1.a, inner key:test.t2.a, equal cond:eq(test.t1.a, test.t2.a)", + "│ ├─HashJoin(Build) 3.00 root inner join, equal:[eq(test.t3.b, test.t1.b)], other cond:gt(test.t1.a, Column#13)", + "│ │ ├─Selection(Build) 2.40 root not(isnull(Column#13))", + "│ │ │ └─HashAgg 3.00 root group by:test.t3.b, funcs:min(test.t3.a)->Column#13, funcs:firstrow(test.t3.b)->test.t3.b", + "│ │ │ └─TableReader 3.00 root data:Selection", + "│ │ │ └─Selection 3.00 cop[tikv] not(isnull(test.t3.b))", + "│ │ │ └─TableFullScan 3.00 cop[tikv] table:t3 keep order:false", + "│ │ └─TableReader(Probe) 9980.01 root data:Selection", + "│ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t1.a)), not(isnull(test.t1.b))", + "│ │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", + "│ └─IndexLookUp(Probe) 1.25 root ", + "│ ├─Selection(Build) 1.25 cop[tikv] not(isnull(test.t2.a))", + "│ │ └─IndexRangeScan 1.25 cop[tikv] table:t2, index:a(a) range: decided by [eq(test.t2.a, test.t1.a)], keep order:false, stats:pseudo", + "│ └─TableRowIDScan(Probe) 1.25 cop[tikv] table:t2 keep order:false, stats:pseudo", + "└─TableReader(Probe) 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t4.b))", + " └─TableFullScan 10000.00 cop[tikv] table:t4 keep order:false, stats:pseudo" ], "Warning": [ - "Warning 1815 There are no matching table names for (t3) in optimizer hint /*+ LEADING(t3, t1) */. Maybe you can use the table alias name", + "Warning 1815 There are no matching table names for (t3) in optimizer hint /*+ LEADING(t3, t2) */. Maybe you can use the table alias name", "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" ] }, { - "SQL": "select /*+ leading(t4) */ * from t1 join t2 on t1.a=t2.a join t4 on t1.b = t4.b where exists (select t3.a from t3 where t1.b = t3.b)", + "SQL": "select /*+ leading(t4) */ * from t1 join t2 on t1.a=t2.a join t4 on t1.b = t4.b where t1.a in (select t3.a from t3)", "Plan": [ - "HashJoin 12475.01 root semi join, equal:[eq(test.t1.b, test.t3.b)]", - "├─TableReader(Build) 3.00 root data:Selection", - "│ └─Selection 3.00 cop[tikv] not(isnull(test.t3.b))", - "│ └─TableFullScan 3.00 cop[tikv] table:t3 keep order:false", - "└─Projection(Probe) 15593.77 root test.t1.a, test.t1.b, test.t2.a, test.t2.b, test.t4.a, test.t4.b", - " └─HashJoin 15593.77 root inner join, equal:[eq(test.t1.a, test.t2.a)]", - " ├─TableReader(Build) 9990.00 root data:Selection", - " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", - " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", - " └─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t4.b, test.t1.b)]", - " ├─TableReader(Build) 9980.01 root data:Selection", - " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t1.a)), not(isnull(test.t1.b))", - " │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", - " └─TableReader(Probe) 9990.00 root data:Selection", - " └─Selection 9990.00 cop[tikv] not(isnull(test.t4.b))", - " └─TableFullScan 10000.00 cop[tikv] table:t4 keep order:false, stats:pseudo" + "Projection 5.86 root test.t1.a, test.t1.b, test.t2.a, test.t2.b, test.t4.a, test.t4.b", + "└─IndexJoin 5.86 root inner join, inner:IndexLookUp, outer key:test.t1.a, inner key:test.t2.a, equal cond:eq(test.t1.a, test.t2.a)", + " ├─HashJoin(Build) 4.69 root inner join, equal:[eq(test.t1.a, test.t3.a)]", + " │ ├─StreamAgg(Build) 3.00 root group by:test.t3.a, funcs:firstrow(test.t3.a)->test.t3.a", + " │ │ └─IndexReader 3.00 root index:IndexFullScan", + " │ │ └─IndexFullScan 3.00 cop[tikv] table:t3, index:a(a) keep order:true", + " │ └─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t4.b, test.t1.b)]", + " │ ├─TableReader(Build) 9980.01 root data:Selection", + " │ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t1.a)), not(isnull(test.t1.b))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", + " │ └─TableReader(Probe) 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t4 keep order:false, stats:pseudo", + " └─IndexLookUp(Probe) 1.25 root ", + " ├─Selection(Build) 1.25 cop[tikv] not(isnull(test.t2.a))", + " │ └─IndexRangeScan 1.25 cop[tikv] table:t2, index:a(a) range: decided by [eq(test.t2.a, test.t1.a)], keep order:false, stats:pseudo", + " └─TableRowIDScan(Probe) 1.25 cop[tikv] table:t2 keep order:false, stats:pseudo" ], "Warning": null }, { - "SQL": "select /*+ leading(t3@sel_2) */ * from t1 join t2 on t1.a=t2.a where exists (select t3.a from t3 where t1.b = t3.b)", + "SQL": "select /*+ leading(t3@sel_2) */ * from t1 join t2 on t1.a=t2.a where t1.a in (select t3.a from t3)", "Plan": [ - "HashJoin 9980.01 root semi join, equal:[eq(test.t1.b, test.t3.b)]", - "├─TableReader(Build) 3.00 root data:Selection", - "│ └─Selection 3.00 cop[tikv] not(isnull(test.t3.b))", - "│ └─TableFullScan 3.00 cop[tikv] table:t3 keep order:false", - "└─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t1.a, test.t2.a)]", - " ├─TableReader(Build) 9980.01 root data:Selection", - " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t1.a)), not(isnull(test.t1.b))", - " │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", - " └─TableReader(Probe) 9990.00 root data:Selection", - " └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", - " └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo" + "IndexJoin 4.69 root inner join, inner:IndexLookUp, outer key:test.t1.a, inner key:test.t2.a, equal cond:eq(test.t1.a, test.t2.a)", + "├─IndexJoin(Build) 3.75 root inner join, inner:IndexLookUp, outer key:test.t3.a, inner key:test.t1.a, equal cond:eq(test.t3.a, test.t1.a)", + "│ ├─StreamAgg(Build) 3.00 root group by:test.t3.a, funcs:firstrow(test.t3.a)->test.t3.a", + "│ │ └─IndexReader 3.00 root index:IndexFullScan", + "│ │ └─IndexFullScan 3.00 cop[tikv] table:t3, index:a(a) keep order:true", + "│ └─IndexLookUp(Probe) 1.25 root ", + "│ ├─Selection(Build) 1.25 cop[tikv] not(isnull(test.t1.a))", + "│ │ └─IndexRangeScan 1.25 cop[tikv] table:t1, index:a(a) range: decided by [eq(test.t1.a, test.t3.a)], keep order:false, stats:pseudo", + "│ └─TableRowIDScan(Probe) 1.25 cop[tikv] table:t1 keep order:false, stats:pseudo", + "└─IndexLookUp(Probe) 1.25 root ", + " ├─Selection(Build) 1.25 cop[tikv] not(isnull(test.t2.a))", + " │ └─IndexRangeScan 1.25 cop[tikv] table:t2, index:a(a) range: decided by [eq(test.t2.a, test.t1.a)], keep order:false, stats:pseudo", + " └─TableRowIDScan(Probe) 1.25 cop[tikv] table:t2 keep order:false, stats:pseudo" ], - "Warning": [ - "Warning 1815 There are no matching table names for (t3) in optimizer hint /*+ LEADING(t3) */. Maybe you can use the table alias name" - ] - }, - { - "SQL": "select /*+ leading(t2, t3@sel_2) */ * from t1 join t2 on t1.a=t2.a where exists (select t3.a from t3 where t1.b = t3.b)", - "Plan": [ - "HashJoin 9980.01 root semi join, equal:[eq(test.t1.b, test.t3.b)]", - "├─TableReader(Build) 3.00 root data:Selection", - "│ └─Selection 3.00 cop[tikv] not(isnull(test.t3.b))", - "│ └─TableFullScan 3.00 cop[tikv] table:t3 keep order:false", - "└─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t1.a, test.t2.a)]", - " ├─TableReader(Build) 9980.01 root data:Selection", - " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t1.a)), not(isnull(test.t1.b))", - " │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", - " └─TableReader(Probe) 9990.00 root data:Selection", - " └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", - " └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo" + "Warning": null + }, + { + "SQL": "select /*+ leading(t2, t3@sel_2) */ * from t1 join t2 on t1.a=t2.a where t1.a in (select t3.a from t3)", + "Plan": [ + "IndexJoin 4.69 root inner join, inner:IndexLookUp, outer key:test.t1.a, inner key:test.t2.a, equal cond:eq(test.t1.a, test.t2.a)", + "├─IndexJoin(Build) 3.75 root inner join, inner:IndexLookUp, outer key:test.t3.a, inner key:test.t1.a, equal cond:eq(test.t3.a, test.t1.a)", + "│ ├─StreamAgg(Build) 3.00 root group by:test.t3.a, funcs:firstrow(test.t3.a)->test.t3.a", + "│ │ └─IndexReader 3.00 root index:IndexFullScan", + "│ │ └─IndexFullScan 3.00 cop[tikv] table:t3, index:a(a) keep order:true", + "│ └─IndexLookUp(Probe) 1.25 root ", + "│ ├─Selection(Build) 1.25 cop[tikv] not(isnull(test.t1.a))", + "│ │ └─IndexRangeScan 1.25 cop[tikv] table:t1, index:a(a) range: decided by [eq(test.t1.a, test.t3.a)], keep order:false, stats:pseudo", + "│ └─TableRowIDScan(Probe) 1.25 cop[tikv] table:t1 keep order:false, stats:pseudo", + "└─IndexLookUp(Probe) 1.25 root ", + " ├─Selection(Build) 1.25 cop[tikv] not(isnull(test.t2.a))", + " │ └─IndexRangeScan 1.25 cop[tikv] table:t2, index:a(a) range: decided by [eq(test.t2.a, test.t1.a)], keep order:false, stats:pseudo", + " └─TableRowIDScan(Probe) 1.25 cop[tikv] table:t2 keep order:false, stats:pseudo" ], "Warning": [ - "Warning 1815 There are no matching table names for (t3) in optimizer hint /*+ LEADING(t2, t3) */. Maybe you can use the table alias name", - "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" + "Warning 1815 We can only use one leading hint at most, when multiple leading hints are used, all leading hints will be invalid" ] }, { - "SQL": "select /*+ leading(t1, t3@sel_2) */ * from t1 join t2 on t1.a=t2.a where exists (select t3.a from t3 where t1.b = t3.b)", + "SQL": "select /*+ leading(t1, t3@sel_2) */ * from t1 join t2 on t1.a=t2.a where t1.a in (select t3.a from t3)", "Plan": [ - "HashJoin 9980.01 root semi join, equal:[eq(test.t1.b, test.t3.b)]", - "├─TableReader(Build) 3.00 root data:Selection", - "│ └─Selection 3.00 cop[tikv] not(isnull(test.t3.b))", - "│ └─TableFullScan 3.00 cop[tikv] table:t3 keep order:false", - "└─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t1.a, test.t2.a)]", - " ├─TableReader(Build) 9980.01 root data:Selection", - " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t1.a)), not(isnull(test.t1.b))", - " │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", - " └─TableReader(Probe) 9990.00 root data:Selection", - " └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", - " └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo" + "IndexJoin 4.69 root inner join, inner:IndexLookUp, outer key:test.t1.a, inner key:test.t2.a, equal cond:eq(test.t1.a, test.t2.a)", + "├─IndexJoin(Build) 3.75 root inner join, inner:IndexLookUp, outer key:test.t3.a, inner key:test.t1.a, equal cond:eq(test.t3.a, test.t1.a)", + "│ ├─StreamAgg(Build) 3.00 root group by:test.t3.a, funcs:firstrow(test.t3.a)->test.t3.a", + "│ │ └─IndexReader 3.00 root index:IndexFullScan", + "│ │ └─IndexFullScan 3.00 cop[tikv] table:t3, index:a(a) keep order:true", + "│ └─IndexLookUp(Probe) 1.25 root ", + "│ ├─Selection(Build) 1.25 cop[tikv] not(isnull(test.t1.a))", + "│ │ └─IndexRangeScan 1.25 cop[tikv] table:t1, index:a(a) range: decided by [eq(test.t1.a, test.t3.a)], keep order:false, stats:pseudo", + "│ └─TableRowIDScan(Probe) 1.25 cop[tikv] table:t1 keep order:false, stats:pseudo", + "└─IndexLookUp(Probe) 1.25 root ", + " ├─Selection(Build) 1.25 cop[tikv] not(isnull(test.t2.a))", + " │ └─IndexRangeScan 1.25 cop[tikv] table:t2, index:a(a) range: decided by [eq(test.t2.a, test.t1.a)], keep order:false, stats:pseudo", + " └─TableRowIDScan(Probe) 1.25 cop[tikv] table:t2 keep order:false, stats:pseudo" ], "Warning": [ - "Warning 1815 There are no matching table names for (t3) in optimizer hint /*+ LEADING(t1, t3) */. Maybe you can use the table alias name", - "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" + "Warning 1815 We can only use one leading hint at most, when multiple leading hints are used, all leading hints will be invalid" ] }, { - "SQL": "select /*+ leading(t3@sel_2, t2) */ * from t1 join t2 on t1.a=t2.a where exists (select t3.a from t3 where t1.b = t3.b)", + "SQL": "select /*+ leading(t3@sel_2, t2) */ * from t1 join t2 on t1.a=t2.a where t1.a in (select t3.a from t3)", "Plan": [ - "HashJoin 9980.01 root semi join, equal:[eq(test.t1.b, test.t3.b)]", - "├─TableReader(Build) 3.00 root data:Selection", - "│ └─Selection 3.00 cop[tikv] not(isnull(test.t3.b))", - "│ └─TableFullScan 3.00 cop[tikv] table:t3 keep order:false", - "└─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t1.a, test.t2.a)]", - " ├─TableReader(Build) 9980.01 root data:Selection", - " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t1.a)), not(isnull(test.t1.b))", - " │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", - " └─TableReader(Probe) 9990.00 root data:Selection", - " └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", - " └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo" + "IndexJoin 4.69 root inner join, inner:IndexLookUp, outer key:test.t1.a, inner key:test.t2.a, equal cond:eq(test.t1.a, test.t2.a)", + "├─IndexJoin(Build) 3.75 root inner join, inner:IndexLookUp, outer key:test.t3.a, inner key:test.t1.a, equal cond:eq(test.t3.a, test.t1.a)", + "│ ├─StreamAgg(Build) 3.00 root group by:test.t3.a, funcs:firstrow(test.t3.a)->test.t3.a", + "│ │ └─IndexReader 3.00 root index:IndexFullScan", + "│ │ └─IndexFullScan 3.00 cop[tikv] table:t3, index:a(a) keep order:true", + "│ └─IndexLookUp(Probe) 1.25 root ", + "│ ├─Selection(Build) 1.25 cop[tikv] not(isnull(test.t1.a))", + "│ │ └─IndexRangeScan 1.25 cop[tikv] table:t1, index:a(a) range: decided by [eq(test.t1.a, test.t3.a)], keep order:false, stats:pseudo", + "│ └─TableRowIDScan(Probe) 1.25 cop[tikv] table:t1 keep order:false, stats:pseudo", + "└─IndexLookUp(Probe) 1.25 root ", + " ├─Selection(Build) 1.25 cop[tikv] not(isnull(test.t2.a))", + " │ └─IndexRangeScan 1.25 cop[tikv] table:t2, index:a(a) range: decided by [eq(test.t2.a, test.t1.a)], keep order:false, stats:pseudo", + " └─TableRowIDScan(Probe) 1.25 cop[tikv] table:t2 keep order:false, stats:pseudo" ], "Warning": [ - "Warning 1815 There are no matching table names for (t3) in optimizer hint /*+ LEADING(t3, t2) */. Maybe you can use the table alias name", - "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" + "Warning 1815 We can only use one leading hint at most, when multiple leading hints are used, all leading hints will be invalid" ] }, { - "SQL": "select /*+ leading(t3@sel_2, t1) */ * from t1 join t2 on t1.a=t2.a where exists (select t3.a from t3 where t1.b = t3.b)", + "SQL": "select /*+ leading(t3@sel_2, t1) */ * from t1 join t2 on t1.a=t2.a where t1.a in (select t3.a from t3)", "Plan": [ - "HashJoin 9980.01 root semi join, equal:[eq(test.t1.b, test.t3.b)]", - "├─TableReader(Build) 3.00 root data:Selection", - "│ └─Selection 3.00 cop[tikv] not(isnull(test.t3.b))", - "│ └─TableFullScan 3.00 cop[tikv] table:t3 keep order:false", - "└─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t1.a, test.t2.a)]", - " ├─TableReader(Build) 9980.01 root data:Selection", - " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t1.a)), not(isnull(test.t1.b))", - " │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", - " └─TableReader(Probe) 9990.00 root data:Selection", - " └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", - " └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo" + "IndexJoin 4.69 root inner join, inner:IndexLookUp, outer key:test.t1.a, inner key:test.t2.a, equal cond:eq(test.t1.a, test.t2.a)", + "├─IndexJoin(Build) 3.75 root inner join, inner:IndexLookUp, outer key:test.t3.a, inner key:test.t1.a, equal cond:eq(test.t3.a, test.t1.a)", + "│ ├─StreamAgg(Build) 3.00 root group by:test.t3.a, funcs:firstrow(test.t3.a)->test.t3.a", + "│ │ └─IndexReader 3.00 root index:IndexFullScan", + "│ │ └─IndexFullScan 3.00 cop[tikv] table:t3, index:a(a) keep order:true", + "│ └─IndexLookUp(Probe) 1.25 root ", + "│ ├─Selection(Build) 1.25 cop[tikv] not(isnull(test.t1.a))", + "│ │ └─IndexRangeScan 1.25 cop[tikv] table:t1, index:a(a) range: decided by [eq(test.t1.a, test.t3.a)], keep order:false, stats:pseudo", + "│ └─TableRowIDScan(Probe) 1.25 cop[tikv] table:t1 keep order:false, stats:pseudo", + "└─IndexLookUp(Probe) 1.25 root ", + " ├─Selection(Build) 1.25 cop[tikv] not(isnull(test.t2.a))", + " │ └─IndexRangeScan 1.25 cop[tikv] table:t2, index:a(a) range: decided by [eq(test.t2.a, test.t1.a)], keep order:false, stats:pseudo", + " └─TableRowIDScan(Probe) 1.25 cop[tikv] table:t2 keep order:false, stats:pseudo" ], "Warning": [ - "Warning 1815 There are no matching table names for (t3) in optimizer hint /*+ LEADING(t3, t1) */. Maybe you can use the table alias name", - "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" + "Warning 1815 We can only use one leading hint at most, when multiple leading hints are used, all leading hints will be invalid" ] }, { - "SQL": "select /*+ leading(t4) */ * from t1 join t2 on t1.a=t2.a join t4 on t1.b = t4.b where not exists (select t3.a from t3 where t1.b = t3.b)", + "SQL": "select /*+ leading(t4) */ * from t1 join t2 on t1.a=t2.a join t4 on t1.b = t4.b where t1.a not in (select t3.a from t3)", "Plan": [ - "HashJoin 12475.01 root anti semi join, equal:[eq(test.t1.b, test.t3.b)]", + "HashJoin 12475.01 root CARTESIAN anti semi join, other cond:eq(test.t1.a, test.t3.a)", "├─TableReader(Build) 3.00 root data:TableFullScan", "│ └─TableFullScan 3.00 cop[tikv] table:t3 keep order:false", "└─Projection(Probe) 15593.77 root test.t1.a, test.t1.b, test.t2.a, test.t2.b, test.t4.a, test.t4.b", @@ -3876,84 +7405,9 @@ "Warning": null }, { - "SQL": "select /*+ leading(t3@sel_2) */ * from t1 join t2 on t1.a=t2.a where not exists (select t3.a from t3 where t1.b = t3.b)", - "Plan": [ - "HashJoin 9990.00 root anti semi join, equal:[eq(test.t1.b, test.t3.b)]", - "├─TableReader(Build) 3.00 root data:TableFullScan", - "│ └─TableFullScan 3.00 cop[tikv] table:t3 keep order:false", - "└─HashJoin(Probe) 12487.50 root inner join, equal:[eq(test.t1.a, test.t2.a)]", - " ├─TableReader(Build) 9990.00 root data:Selection", - " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", - " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", - " └─TableReader(Probe) 9990.00 root data:Selection", - " └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", - " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" - ], - "Warning": [ - "Warning 1815 There are no matching table names for (t3) in optimizer hint /*+ LEADING(t3) */. Maybe you can use the table alias name" - ] - }, - { - "SQL": "select /*+ leading(t2, t3@sel_2) */ * from t1 join t2 on t1.a=t2.a where not exists (select t3.a from t3 where t1.b = t3.b)", - "Plan": [ - "HashJoin 9990.00 root anti semi join, equal:[eq(test.t1.b, test.t3.b)]", - "├─TableReader(Build) 3.00 root data:TableFullScan", - "│ └─TableFullScan 3.00 cop[tikv] table:t3 keep order:false", - "└─HashJoin(Probe) 12487.50 root inner join, equal:[eq(test.t1.a, test.t2.a)]", - " ├─TableReader(Build) 9990.00 root data:Selection", - " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", - " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", - " └─TableReader(Probe) 9990.00 root data:Selection", - " └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", - " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" - ], - "Warning": [ - "Warning 1815 There are no matching table names for (t3) in optimizer hint /*+ LEADING(t2, t3) */. Maybe you can use the table alias name", - "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" - ] - }, - { - "SQL": "select /*+ leading(t1, t3@sel_2) */ * from t1 join t2 on t1.a=t2.a where not exists (select t3.a from t3 where t1.b = t3.b)", - "Plan": [ - "HashJoin 9990.00 root anti semi join, equal:[eq(test.t1.b, test.t3.b)]", - "├─TableReader(Build) 3.00 root data:TableFullScan", - "│ └─TableFullScan 3.00 cop[tikv] table:t3 keep order:false", - "└─HashJoin(Probe) 12487.50 root inner join, equal:[eq(test.t1.a, test.t2.a)]", - " ├─TableReader(Build) 9990.00 root data:Selection", - " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", - " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", - " └─TableReader(Probe) 9990.00 root data:Selection", - " └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", - " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" - ], - "Warning": [ - "Warning 1815 There are no matching table names for (t3) in optimizer hint /*+ LEADING(t1, t3) */. Maybe you can use the table alias name", - "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" - ] - }, - { - "SQL": "select /*+ leading(t3@sel_2, t2) */ * from t1 join t2 on t1.a=t2.a where not exists (select t3.a from t3 where t1.b = t3.b)", - "Plan": [ - "HashJoin 9990.00 root anti semi join, equal:[eq(test.t1.b, test.t3.b)]", - "├─TableReader(Build) 3.00 root data:TableFullScan", - "│ └─TableFullScan 3.00 cop[tikv] table:t3 keep order:false", - "└─HashJoin(Probe) 12487.50 root inner join, equal:[eq(test.t1.a, test.t2.a)]", - " ├─TableReader(Build) 9990.00 root data:Selection", - " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", - " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", - " └─TableReader(Probe) 9990.00 root data:Selection", - " └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", - " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" - ], - "Warning": [ - "Warning 1815 There are no matching table names for (t3) in optimizer hint /*+ LEADING(t3, t2) */. Maybe you can use the table alias name", - "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" - ] - }, - { - "SQL": "select /*+ leading(t3@sel_2, t1) */ * from t1 join t2 on t1.a=t2.a where not exists (select t3.a from t3 where t1.b = t3.b)", + "SQL": "select /*+ leading(t3@sel_2) */ * from t1 join t2 on t1.a=t2.a where t1.a not in (select t3.a from t3)", "Plan": [ - "HashJoin 9990.00 root anti semi join, equal:[eq(test.t1.b, test.t3.b)]", + "HashJoin 9990.00 root CARTESIAN anti semi join, other cond:eq(test.t1.a, test.t3.a)", "├─TableReader(Build) 3.00 root data:TableFullScan", "│ └─TableFullScan 3.00 cop[tikv] table:t3 keep order:false", "└─HashJoin(Probe) 12487.50 root inner join, equal:[eq(test.t1.a, test.t2.a)]", @@ -3962,805 +7416,791 @@ " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", " └─TableReader(Probe) 9990.00 root data:Selection", " └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", - " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" - ], - "Warning": [ - "Warning 1815 There are no matching table names for (t3) in optimizer hint /*+ LEADING(t3, t1) */. Maybe you can use the table alias name", - "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" - ] - }, - { - "SQL": "select /*+ leading(t1) */ t1.a, (select min(t1.a) from t2 where t2.a > t1.a) from t1 join t3 on t1.a = t3.a;", - "Plan": [ - "Projection 1.00 root test.t1.a, Column#14", - "└─Apply 1.00 root CARTESIAN left outer join", - " ├─StreamAgg(Build) 1.00 root funcs:min(test.t1.a)->Column#10, funcs:firstrow(test.t1.a)->test.t1.a", - " │ └─IndexJoin 3.75 root inner join, inner:IndexReader, outer key:test.t3.a, inner key:test.t1.a, equal cond:eq(test.t3.a, test.t1.a)", - " │ ├─IndexReader(Build) 3.00 root index:IndexFullScan", - " │ │ └─IndexFullScan 3.00 cop[tikv] table:t3, index:a(a) keep order:false", - " │ └─IndexReader(Probe) 1.25 root index:Selection", - " │ └─Selection 1.25 cop[tikv] not(isnull(test.t1.a))", - " │ └─IndexRangeScan 1.25 cop[tikv] table:t1, index:a(a) range: decided by [eq(test.t1.a, test.t3.a)], keep order:false, stats:pseudo", - " └─MaxOneRow(Probe) 1.00 root ", - " └─Projection 2.00 root Column#10", - " └─IndexReader 2.00 root index:Selection", - " └─Selection 2.00 cop[tikv] gt(test.t2.a, test.t1.a)", - " └─IndexFullScan 2.50 cop[tikv] table:t2, index:a(a) keep order:false, stats:pseudo" - ], - "Warning": null - }, - { - "SQL": "select /*+ leading(t3@sel_2) */ t1.a, (select min(t1.a) from t2 where t2.a > t1.a) from t1 join t3 on t1.a = t3.a;", - "Plan": [ - "Projection 1.00 root test.t1.a, Column#14", - "└─Apply 1.00 root CARTESIAN left outer join", - " ├─StreamAgg(Build) 1.00 root funcs:min(test.t1.a)->Column#10, funcs:firstrow(test.t1.a)->test.t1.a", - " │ └─IndexJoin 3.75 root inner join, inner:IndexReader, outer key:test.t3.a, inner key:test.t1.a, equal cond:eq(test.t3.a, test.t1.a)", - " │ ├─IndexReader(Build) 3.00 root index:IndexFullScan", - " │ │ └─IndexFullScan 3.00 cop[tikv] table:t3, index:a(a) keep order:false", - " │ └─IndexReader(Probe) 1.25 root index:Selection", - " │ └─Selection 1.25 cop[tikv] not(isnull(test.t1.a))", - " │ └─IndexRangeScan 1.25 cop[tikv] table:t1, index:a(a) range: decided by [eq(test.t1.a, test.t3.a)], keep order:false, stats:pseudo", - " └─MaxOneRow(Probe) 1.00 root ", - " └─Projection 2.00 root Column#10", - " └─IndexReader 2.00 root index:Selection", - " └─Selection 2.00 cop[tikv] gt(test.t2.a, test.t1.a)", - " └─IndexFullScan 2.50 cop[tikv] table:t2, index:a(a) keep order:false, stats:pseudo" - ], - "Warning": [ - "Warning 1815 There are no matching table names for (t3) in optimizer hint /*+ LEADING(t3) */. Maybe you can use the table alias name" - ] - }, - { - "SQL": "select /*+ leading(t2, t3@sel_2) */ t1.a, (select min(t1.a) from t2 where t2.a > t1.a) from t1 join t3 on t1.a = t3.a;", - "Plan": [ - "Projection 1.00 root test.t1.a, Column#14", - "└─Apply 1.00 root CARTESIAN left outer join", - " ├─StreamAgg(Build) 1.00 root funcs:min(test.t1.a)->Column#10, funcs:firstrow(test.t1.a)->test.t1.a", - " │ └─IndexJoin 3.75 root inner join, inner:IndexReader, outer key:test.t3.a, inner key:test.t1.a, equal cond:eq(test.t3.a, test.t1.a)", - " │ ├─IndexReader(Build) 3.00 root index:IndexFullScan", - " │ │ └─IndexFullScan 3.00 cop[tikv] table:t3, index:a(a) keep order:false", - " │ └─IndexReader(Probe) 1.25 root index:Selection", - " │ └─Selection 1.25 cop[tikv] not(isnull(test.t1.a))", - " │ └─IndexRangeScan 1.25 cop[tikv] table:t1, index:a(a) range: decided by [eq(test.t1.a, test.t3.a)], keep order:false, stats:pseudo", - " └─MaxOneRow(Probe) 1.00 root ", - " └─Projection 2.00 root Column#10", - " └─IndexReader 2.00 root index:Selection", - " └─Selection 2.00 cop[tikv] gt(test.t2.a, test.t1.a)", - " └─IndexFullScan 2.50 cop[tikv] table:t2, index:a(a) keep order:false, stats:pseudo" + " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" ], "Warning": [ - "Warning 1815 There are no matching table names for (t2, t3) in optimizer hint /*+ LEADING(t2, t3) */. Maybe you can use the table alias name" + "Warning 1815 There are no matching table names for (t3) in optimizer hint /*+ LEADING(t3) */. Maybe you can use the table alias name" ] }, { - "SQL": "select /*+ leading(t1, t3@sel_2) */ t1.a, (select min(t1.a) from t2 where t2.a > t1.a) from t1 join t3 on t1.a = t3.a;", + "SQL": "select /*+ leading(t2, t3@sel_2) */ * from t1 join t2 on t1.a=t2.a where t1.a not in (select t3.a from t3)", "Plan": [ - "Projection 1.00 root test.t1.a, Column#14", - "└─Apply 1.00 root CARTESIAN left outer join", - " ├─StreamAgg(Build) 1.00 root funcs:min(test.t1.a)->Column#10, funcs:firstrow(test.t1.a)->test.t1.a", - " │ └─IndexJoin 3.75 root inner join, inner:IndexReader, outer key:test.t3.a, inner key:test.t1.a, equal cond:eq(test.t3.a, test.t1.a)", - " │ ├─IndexReader(Build) 3.00 root index:IndexFullScan", - " │ │ └─IndexFullScan 3.00 cop[tikv] table:t3, index:a(a) keep order:false", - " │ └─IndexReader(Probe) 1.25 root index:Selection", - " │ └─Selection 1.25 cop[tikv] not(isnull(test.t1.a))", - " │ └─IndexRangeScan 1.25 cop[tikv] table:t1, index:a(a) range: decided by [eq(test.t1.a, test.t3.a)], keep order:false, stats:pseudo", - " └─MaxOneRow(Probe) 1.00 root ", - " └─Projection 2.00 root Column#10", - " └─IndexReader 2.00 root index:Selection", - " └─Selection 2.00 cop[tikv] gt(test.t2.a, test.t1.a)", - " └─IndexFullScan 2.50 cop[tikv] table:t2, index:a(a) keep order:false, stats:pseudo" + "HashJoin 9990.00 root CARTESIAN anti semi join, other cond:eq(test.t1.a, test.t3.a)", + "├─TableReader(Build) 3.00 root data:TableFullScan", + "│ └─TableFullScan 3.00 cop[tikv] table:t3 keep order:false", + "└─HashJoin(Probe) 12487.50 root inner join, equal:[eq(test.t1.a, test.t2.a)]", + " ├─TableReader(Build) 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", + " └─TableReader(Probe) 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", + " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" ], "Warning": [ - "Warning 1815 There are no matching table names for (t3) in optimizer hint /*+ LEADING(t1, t3) */. Maybe you can use the table alias name", + "Warning 1815 There are no matching table names for (t3) in optimizer hint /*+ LEADING(t2, t3) */. Maybe you can use the table alias name", "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" ] }, { - "SQL": "select /*+ leading(t3@sel_2, t2) */ t1.a, (select min(t1.a) from t2 where t2.a > t1.a) from t1 join t3 on t1.a = t3.a;", + "SQL": "select /*+ leading(t1, t3@sel_2) */ * from t1 join t2 on t1.a=t2.a where t1.a not in (select t3.a from t3)", "Plan": [ - "Projection 1.00 root test.t1.a, Column#14", - "└─Apply 1.00 root CARTESIAN left outer join", - " ├─StreamAgg(Build) 1.00 root funcs:min(test.t1.a)->Column#10, funcs:firstrow(test.t1.a)->test.t1.a", - " │ └─IndexJoin 3.75 root inner join, inner:IndexReader, outer key:test.t3.a, inner key:test.t1.a, equal cond:eq(test.t3.a, test.t1.a)", - " │ ├─IndexReader(Build) 3.00 root index:IndexFullScan", - " │ │ └─IndexFullScan 3.00 cop[tikv] table:t3, index:a(a) keep order:false", - " │ └─IndexReader(Probe) 1.25 root index:Selection", - " │ └─Selection 1.25 cop[tikv] not(isnull(test.t1.a))", - " │ └─IndexRangeScan 1.25 cop[tikv] table:t1, index:a(a) range: decided by [eq(test.t1.a, test.t3.a)], keep order:false, stats:pseudo", - " └─MaxOneRow(Probe) 1.00 root ", - " └─Projection 2.00 root Column#10", - " └─IndexReader 2.00 root index:Selection", - " └─Selection 2.00 cop[tikv] gt(test.t2.a, test.t1.a)", - " └─IndexFullScan 2.50 cop[tikv] table:t2, index:a(a) keep order:false, stats:pseudo" + "HashJoin 9990.00 root CARTESIAN anti semi join, other cond:eq(test.t1.a, test.t3.a)", + "├─TableReader(Build) 3.00 root data:TableFullScan", + "│ └─TableFullScan 3.00 cop[tikv] table:t3 keep order:false", + "└─HashJoin(Probe) 12487.50 root inner join, equal:[eq(test.t1.a, test.t2.a)]", + " ├─TableReader(Build) 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", + " └─TableReader(Probe) 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", + " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" ], "Warning": [ - "Warning 1815 There are no matching table names for (t3, t2) in optimizer hint /*+ LEADING(t3, t2) */. Maybe you can use the table alias name" + "Warning 1815 There are no matching table names for (t3) in optimizer hint /*+ LEADING(t1, t3) */. Maybe you can use the table alias name", + "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" ] }, { - "SQL": "select /*+ leading(t3@sel_2, t1) */ t1.a, (select min(t1.a) from t2 where t2.a > t1.a) from t1 join t3 on t1.a = t3.a;", + "SQL": "select /*+ leading(t3@sel_2, t2) */ * from t1 join t2 on t1.a=t2.a where t1.a not in (select t3.a from t3)", "Plan": [ - "Projection 1.00 root test.t1.a, Column#14", - "└─Apply 1.00 root CARTESIAN left outer join", - " ├─StreamAgg(Build) 1.00 root funcs:min(test.t1.a)->Column#10, funcs:firstrow(test.t1.a)->test.t1.a", - " │ └─IndexJoin 3.75 root inner join, inner:IndexReader, outer key:test.t3.a, inner key:test.t1.a, equal cond:eq(test.t3.a, test.t1.a)", - " │ ├─IndexReader(Build) 3.00 root index:IndexFullScan", - " │ │ └─IndexFullScan 3.00 cop[tikv] table:t3, index:a(a) keep order:false", - " │ └─IndexReader(Probe) 1.25 root index:Selection", - " │ └─Selection 1.25 cop[tikv] not(isnull(test.t1.a))", - " │ └─IndexRangeScan 1.25 cop[tikv] table:t1, index:a(a) range: decided by [eq(test.t1.a, test.t3.a)], keep order:false, stats:pseudo", - " └─MaxOneRow(Probe) 1.00 root ", - " └─Projection 2.00 root Column#10", - " └─IndexReader 2.00 root index:Selection", - " └─Selection 2.00 cop[tikv] gt(test.t2.a, test.t1.a)", - " └─IndexFullScan 2.50 cop[tikv] table:t2, index:a(a) keep order:false, stats:pseudo" + "HashJoin 9990.00 root CARTESIAN anti semi join, other cond:eq(test.t1.a, test.t3.a)", + "├─TableReader(Build) 3.00 root data:TableFullScan", + "│ └─TableFullScan 3.00 cop[tikv] table:t3 keep order:false", + "└─HashJoin(Probe) 12487.50 root inner join, equal:[eq(test.t1.a, test.t2.a)]", + " ├─TableReader(Build) 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", + " └─TableReader(Probe) 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", + " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" ], "Warning": [ - "Warning 1815 There are no matching table names for (t3) in optimizer hint /*+ LEADING(t3, t1) */. Maybe you can use the table alias name", + "Warning 1815 There are no matching table names for (t3) in optimizer hint /*+ LEADING(t3, t2) */. Maybe you can use the table alias name", "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" ] }, { - "SQL": "select /*+ leading(t4, t3@sel_2) */ * from t1 join t2 on t1.a=t2.a join t4 on t1.b = t4.b where t1.a = (select max(t3.a) from t3 where t1.b = t3.b)", + "SQL": "select /*+ leading(t3@sel_2, t1) */ * from t1 join t2 on t1.a=t2.a where t1.a not in (select t3.a from t3)", "Plan": [ - "HashJoin 4.69 root inner join, equal:[eq(test.t1.b, test.t4.b)]", - "├─IndexJoin(Build) 3.75 root inner join, inner:IndexLookUp, outer key:test.t1.a, inner key:test.t2.a, equal cond:eq(test.t1.a, test.t2.a)", - "│ ├─IndexJoin(Build) 3.00 root inner join, inner:IndexLookUp, outer key:Column#13, inner key:test.t1.a, equal cond:eq(Column#13, test.t1.a), eq(test.t3.b, test.t1.b)", - "│ │ ├─Selection(Build) 2.40 root not(isnull(Column#13))", - "│ │ │ └─HashAgg 3.00 root group by:test.t3.b, funcs:max(test.t3.a)->Column#13, funcs:firstrow(test.t3.b)->test.t3.b", - "│ │ │ └─TableReader 3.00 root data:Selection", - "│ │ │ └─Selection 3.00 cop[tikv] not(isnull(test.t3.b))", - "│ │ │ └─TableFullScan 3.00 cop[tikv] table:t3 keep order:false", - "│ │ └─IndexLookUp(Probe) 1.25 root ", - "│ │ ├─Selection(Build) 1.25 cop[tikv] not(isnull(test.t1.a))", - "│ │ │ └─IndexRangeScan 1.25 cop[tikv] table:t1, index:a(a) range: decided by [eq(test.t1.a, Column#13)], keep order:false, stats:pseudo", - "│ │ └─Selection(Probe) 1.25 cop[tikv] not(isnull(test.t1.b))", - "│ │ └─TableRowIDScan 1.25 cop[tikv] table:t1 keep order:false, stats:pseudo", - "│ └─IndexLookUp(Probe) 1.25 root ", - "│ ├─Selection(Build) 1.25 cop[tikv] not(isnull(test.t2.a))", - "│ │ └─IndexRangeScan 1.25 cop[tikv] table:t2, index:a(a) range: decided by [eq(test.t2.a, test.t1.a)], keep order:false, stats:pseudo", - "│ └─TableRowIDScan(Probe) 1.25 cop[tikv] table:t2 keep order:false, stats:pseudo", - "└─TableReader(Probe) 9990.00 root data:Selection", - " └─Selection 9990.00 cop[tikv] not(isnull(test.t4.b))", - " └─TableFullScan 10000.00 cop[tikv] table:t4 keep order:false, stats:pseudo" + "HashJoin 9990.00 root CARTESIAN anti semi join, other cond:eq(test.t1.a, test.t3.a)", + "├─TableReader(Build) 3.00 root data:TableFullScan", + "│ └─TableFullScan 3.00 cop[tikv] table:t3 keep order:false", + "└─HashJoin(Probe) 12487.50 root inner join, equal:[eq(test.t1.a, test.t2.a)]", + " ├─TableReader(Build) 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", + " └─TableReader(Probe) 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", + " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" ], "Warning": [ - "Warning 1815 There are no matching table names for (t3) in optimizer hint /*+ LEADING(t4, t3) */. Maybe you can use the table alias name", + "Warning 1815 There are no matching table names for (t3) in optimizer hint /*+ LEADING(t3, t1) */. Maybe you can use the table alias name", "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" ] }, { - "SQL": "select /*+ leading(t4) */ * from t1 join t2 on t1.a=t2.a join t4 on t1.b = t4.b where t1.a = (select max(t3.a) from t3 where t1.b = t3.b)", + "SQL": "select /*+ leading(t4) */ * from t1 join t2 on t1.a=t2.a join t4 on t1.b = t4.b where exists (select t3.a from t3)", "Plan": [ - "Projection 4.69 root test.t1.a, test.t1.b, test.t2.a, test.t2.b, test.t4.a, test.t4.b", - "└─IndexJoin 4.69 root inner join, inner:IndexLookUp, outer key:test.t1.a, inner key:test.t2.a, equal cond:eq(test.t1.a, test.t2.a)", - " ├─HashJoin(Build) 3.75 root inner join, equal:[eq(test.t1.b, test.t3.b) eq(test.t1.a, Column#13)]", - " │ ├─Selection(Build) 2.40 root not(isnull(Column#13))", - " │ │ └─HashAgg 3.00 root group by:test.t3.b, funcs:max(test.t3.a)->Column#13, funcs:firstrow(test.t3.b)->test.t3.b", - " │ │ └─TableReader 3.00 root data:Selection", - " │ │ └─Selection 3.00 cop[tikv] not(isnull(test.t3.b))", - " │ │ └─TableFullScan 3.00 cop[tikv] table:t3 keep order:false", - " │ └─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t4.b, test.t1.b)]", - " │ ├─TableReader(Build) 9980.01 root data:Selection", - " │ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t1.a)), not(isnull(test.t1.b))", - " │ │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", - " │ └─TableReader(Probe) 9990.00 root data:Selection", - " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.b))", - " │ └─TableFullScan 10000.00 cop[tikv] table:t4 keep order:false, stats:pseudo", - " └─IndexLookUp(Probe) 1.25 root ", - " ├─Selection(Build) 1.25 cop[tikv] not(isnull(test.t2.a))", - " │ └─IndexRangeScan 1.25 cop[tikv] table:t2, index:a(a) range: decided by [eq(test.t2.a, test.t1.a)], keep order:false, stats:pseudo", - " └─TableRowIDScan(Probe) 1.25 cop[tikv] table:t2 keep order:false, stats:pseudo" + "Projection 15593.77 root test.t1.a, test.t1.b, test.t2.a, test.t2.b, test.t4.a, test.t4.b", + "└─HashJoin 15593.77 root inner join, equal:[eq(test.t1.a, test.t2.a)]", + " ├─TableReader(Build) 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t4.b, test.t1.b)]", + " ├─TableReader(Build) 9980.01 root data:Selection", + " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t1.a)), not(isnull(test.t1.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", + " └─TableReader(Probe) 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t4.b))", + " └─TableFullScan 10000.00 cop[tikv] table:t4 keep order:false, stats:pseudo" ], "Warning": null }, { - "SQL": "select /*+ leading(t3@sel_2) */ * from t1 join t2 on t1.a=t2.a join t4 on t1.b = t4.b where t1.a = (select max(t3.a) from t3 where t1.b = t3.b)", + "SQL": "select /*+ leading(t3@sel_2) */ * from t1 join t2 on t1.a=t2.a where exists (select t3.a from t3)", "Plan": [ - "HashJoin 4.69 root inner join, equal:[eq(test.t1.b, test.t4.b)]", - "├─IndexJoin(Build) 3.75 root inner join, inner:IndexLookUp, outer key:test.t1.a, inner key:test.t2.a, equal cond:eq(test.t1.a, test.t2.a)", - "│ ├─IndexJoin(Build) 3.00 root inner join, inner:IndexLookUp, outer key:Column#13, inner key:test.t1.a, equal cond:eq(Column#13, test.t1.a), eq(test.t3.b, test.t1.b)", - "│ │ ├─Selection(Build) 2.40 root not(isnull(Column#13))", - "│ │ │ └─HashAgg 3.00 root group by:test.t3.b, funcs:max(test.t3.a)->Column#13, funcs:firstrow(test.t3.b)->test.t3.b", - "│ │ │ └─TableReader 3.00 root data:Selection", - "│ │ │ └─Selection 3.00 cop[tikv] not(isnull(test.t3.b))", - "│ │ │ └─TableFullScan 3.00 cop[tikv] table:t3 keep order:false", - "│ │ └─IndexLookUp(Probe) 1.25 root ", - "│ │ ├─Selection(Build) 1.25 cop[tikv] not(isnull(test.t1.a))", - "│ │ │ └─IndexRangeScan 1.25 cop[tikv] table:t1, index:a(a) range: decided by [eq(test.t1.a, Column#13)], keep order:false, stats:pseudo", - "│ │ └─Selection(Probe) 1.25 cop[tikv] not(isnull(test.t1.b))", - "│ │ └─TableRowIDScan 1.25 cop[tikv] table:t1 keep order:false, stats:pseudo", - "│ └─IndexLookUp(Probe) 1.25 root ", - "│ ├─Selection(Build) 1.25 cop[tikv] not(isnull(test.t2.a))", - "│ │ └─IndexRangeScan 1.25 cop[tikv] table:t2, index:a(a) range: decided by [eq(test.t2.a, test.t1.a)], keep order:false, stats:pseudo", - "│ └─TableRowIDScan(Probe) 1.25 cop[tikv] table:t2 keep order:false, stats:pseudo", + "HashJoin 12487.50 root inner join, equal:[eq(test.t1.a, test.t2.a)]", + "├─TableReader(Build) 9990.00 root data:Selection", + "│ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", + "│ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", "└─TableReader(Probe) 9990.00 root data:Selection", - " └─Selection 9990.00 cop[tikv] not(isnull(test.t4.b))", - " └─TableFullScan 10000.00 cop[tikv] table:t4 keep order:false, stats:pseudo" + " └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", + " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" ], "Warning": [ "Warning 1815 There are no matching table names for (t3) in optimizer hint /*+ LEADING(t3) */. Maybe you can use the table alias name" ] }, { - "SQL": "select /*+ leading(t3@sel_2, t2) */ * from t1 join t2 on t1.a=t2.a join t4 on t1.b = t4.b where t1.a = (select max(t3.a) from t3 where t1.b = t3.b)", + "SQL": "select /*+ leading(t2, t3@sel_2) */ * from t1 join t2 on t1.a=t2.a where exists (select t3.a from t3)", "Plan": [ - "HashJoin 4.69 root inner join, equal:[eq(test.t1.b, test.t4.b)]", - "├─IndexJoin(Build) 3.75 root inner join, inner:IndexLookUp, outer key:test.t1.a, inner key:test.t2.a, equal cond:eq(test.t1.a, test.t2.a)", - "│ ├─IndexJoin(Build) 3.00 root inner join, inner:IndexLookUp, outer key:Column#13, inner key:test.t1.a, equal cond:eq(Column#13, test.t1.a), eq(test.t3.b, test.t1.b)", - "│ │ ├─Selection(Build) 2.40 root not(isnull(Column#13))", - "│ │ │ └─HashAgg 3.00 root group by:test.t3.b, funcs:max(test.t3.a)->Column#13, funcs:firstrow(test.t3.b)->test.t3.b", - "│ │ │ └─TableReader 3.00 root data:Selection", - "│ │ │ └─Selection 3.00 cop[tikv] not(isnull(test.t3.b))", - "│ │ │ └─TableFullScan 3.00 cop[tikv] table:t3 keep order:false", - "│ │ └─IndexLookUp(Probe) 1.25 root ", - "│ │ ├─Selection(Build) 1.25 cop[tikv] not(isnull(test.t1.a))", - "│ │ │ └─IndexRangeScan 1.25 cop[tikv] table:t1, index:a(a) range: decided by [eq(test.t1.a, Column#13)], keep order:false, stats:pseudo", - "│ │ └─Selection(Probe) 1.25 cop[tikv] not(isnull(test.t1.b))", - "│ │ └─TableRowIDScan 1.25 cop[tikv] table:t1 keep order:false, stats:pseudo", - "│ └─IndexLookUp(Probe) 1.25 root ", - "│ ├─Selection(Build) 1.25 cop[tikv] not(isnull(test.t2.a))", - "│ │ └─IndexRangeScan 1.25 cop[tikv] table:t2, index:a(a) range: decided by [eq(test.t2.a, test.t1.a)], keep order:false, stats:pseudo", - "│ └─TableRowIDScan(Probe) 1.25 cop[tikv] table:t2 keep order:false, stats:pseudo", + "HashJoin 12487.50 root inner join, equal:[eq(test.t1.a, test.t2.a)]", + "├─TableReader(Build) 9990.00 root data:Selection", + "│ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", + "│ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", "└─TableReader(Probe) 9990.00 root data:Selection", - " └─Selection 9990.00 cop[tikv] not(isnull(test.t4.b))", - " └─TableFullScan 10000.00 cop[tikv] table:t4 keep order:false, stats:pseudo" + " └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", + " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" ], "Warning": [ - "Warning 1815 There are no matching table names for (t3) in optimizer hint /*+ LEADING(t3, t2) */. Maybe you can use the table alias name", + "Warning 1815 There are no matching table names for (t3) in optimizer hint /*+ LEADING(t2, t3) */. Maybe you can use the table alias name", "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" ] }, { - "SQL": "select /*+ leading(t4, t3@sel_2) */ * from t1 join t2 on t1.a=t2.a join t4 on t1.b = t4.b where t1.a > (select min(t3.a) from t3 where t1.b = t3.b)", + "SQL": "select /*+ leading(t1, t3@sel_2) */ * from t1 join t2 on t1.a=t2.a where exists (select t3.a from t3)", "Plan": [ - "HashJoin 4.69 root inner join, equal:[eq(test.t1.b, test.t4.b)]", - "├─IndexJoin(Build) 3.75 root inner join, inner:IndexLookUp, outer key:test.t1.a, inner key:test.t2.a, equal cond:eq(test.t1.a, test.t2.a)", - "│ ├─HashJoin(Build) 3.00 root inner join, equal:[eq(test.t3.b, test.t1.b)], other cond:gt(test.t1.a, Column#13)", - "│ │ ├─Selection(Build) 2.40 root not(isnull(Column#13))", - "│ │ │ └─HashAgg 3.00 root group by:test.t3.b, funcs:min(test.t3.a)->Column#13, funcs:firstrow(test.t3.b)->test.t3.b", - "│ │ │ └─TableReader 3.00 root data:Selection", - "│ │ │ └─Selection 3.00 cop[tikv] not(isnull(test.t3.b))", - "│ │ │ └─TableFullScan 3.00 cop[tikv] table:t3 keep order:false", - "│ │ └─TableReader(Probe) 9980.01 root data:Selection", - "│ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t1.a)), not(isnull(test.t1.b))", - "│ │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", - "│ └─IndexLookUp(Probe) 1.25 root ", - "│ ├─Selection(Build) 1.25 cop[tikv] not(isnull(test.t2.a))", - "│ │ └─IndexRangeScan 1.25 cop[tikv] table:t2, index:a(a) range: decided by [eq(test.t2.a, test.t1.a)], keep order:false, stats:pseudo", - "│ └─TableRowIDScan(Probe) 1.25 cop[tikv] table:t2 keep order:false, stats:pseudo", + "HashJoin 12487.50 root inner join, equal:[eq(test.t1.a, test.t2.a)]", + "├─TableReader(Build) 9990.00 root data:Selection", + "│ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", + "│ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", + "└─TableReader(Probe) 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", + " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" + ], + "Warning": [ + "Warning 1815 There are no matching table names for (t3) in optimizer hint /*+ LEADING(t1, t3) */. Maybe you can use the table alias name", + "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" + ] + }, + { + "SQL": "select /*+ leading(t3@sel_2, t2) */ * from t1 join t2 on t1.a=t2.a where exists (select t3.a from t3)", + "Plan": [ + "HashJoin 12487.50 root inner join, equal:[eq(test.t1.a, test.t2.a)]", + "├─TableReader(Build) 9990.00 root data:Selection", + "│ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", + "│ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", + "└─TableReader(Probe) 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", + " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" + ], + "Warning": [ + "Warning 1815 There are no matching table names for (t3) in optimizer hint /*+ LEADING(t3, t2) */. Maybe you can use the table alias name", + "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" + ] + }, + { + "SQL": "select /*+ leading(t3@sel_2, t1) */ * from t1 join t2 on t1.a=t2.a where exists (select t3.a from t3)", + "Plan": [ + "HashJoin 12487.50 root inner join, equal:[eq(test.t1.a, test.t2.a)]", + "├─TableReader(Build) 9990.00 root data:Selection", + "│ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", + "│ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", "└─TableReader(Probe) 9990.00 root data:Selection", - " └─Selection 9990.00 cop[tikv] not(isnull(test.t4.b))", - " └─TableFullScan 10000.00 cop[tikv] table:t4 keep order:false, stats:pseudo" + " └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", + " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" ], "Warning": [ - "Warning 1815 There are no matching table names for (t3) in optimizer hint /*+ LEADING(t4, t3) */. Maybe you can use the table alias name", + "Warning 1815 There are no matching table names for (t3) in optimizer hint /*+ LEADING(t3, t1) */. Maybe you can use the table alias name", "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" ] }, { - "SQL": "select /*+ leading(t4) */ * from t1 join t2 on t1.a=t2.a join t4 on t1.b = t4.b where t1.a > (select min(t3.a) from t3 where t1.b = t3.b)", + "SQL": "select /*+ leading(t4) */ * from t1 join t2 on t1.a=t2.a join t4 on t1.b = t4.b where not exists (select t3.a from t3)", "Plan": [ - "Projection 4.69 root test.t1.a, test.t1.b, test.t2.a, test.t2.b, test.t4.a, test.t4.b", - "└─IndexJoin 4.69 root inner join, inner:IndexLookUp, outer key:test.t1.a, inner key:test.t2.a, equal cond:eq(test.t1.a, test.t2.a)", - " ├─HashJoin(Build) 3.75 root inner join, equal:[eq(test.t1.b, test.t3.b)], other cond:gt(test.t1.a, Column#13)", - " │ ├─Selection(Build) 2.40 root not(isnull(Column#13))", - " │ │ └─HashAgg 3.00 root group by:test.t3.b, funcs:min(test.t3.a)->Column#13, funcs:firstrow(test.t3.b)->test.t3.b", - " │ │ └─TableReader 3.00 root data:Selection", - " │ │ └─Selection 3.00 cop[tikv] not(isnull(test.t3.b))", - " │ │ └─TableFullScan 3.00 cop[tikv] table:t3 keep order:false", - " │ └─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t4.b, test.t1.b)]", - " │ ├─TableReader(Build) 9980.01 root data:Selection", - " │ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t1.a)), not(isnull(test.t1.b))", - " │ │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", - " │ └─TableReader(Probe) 9990.00 root data:Selection", - " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.b))", - " │ └─TableFullScan 10000.00 cop[tikv] table:t4 keep order:false, stats:pseudo", - " └─IndexLookUp(Probe) 1.25 root ", - " ├─Selection(Build) 1.25 cop[tikv] not(isnull(test.t2.a))", - " │ └─IndexRangeScan 1.25 cop[tikv] table:t2, index:a(a) range: decided by [eq(test.t2.a, test.t1.a)], keep order:false, stats:pseudo", - " └─TableRowIDScan(Probe) 1.25 cop[tikv] table:t2 keep order:false, stats:pseudo" + "TableDual 0.00 root rows:0" ], "Warning": null }, { - "SQL": "select /*+ leading(t3@sel_2) */ * from t1 join t2 on t1.a=t2.a join t4 on t1.b = t4.b where t1.a > (select min(t3.a) from t3 where t1.b = t3.b)", + "SQL": "select /*+ leading(t3@sel_2) */ * from t1 join t2 on t1.a=t2.a where not exists (select t3.a from t3)", "Plan": [ - "HashJoin 4.69 root inner join, equal:[eq(test.t1.b, test.t4.b)]", - "├─IndexJoin(Build) 3.75 root inner join, inner:IndexLookUp, outer key:test.t1.a, inner key:test.t2.a, equal cond:eq(test.t1.a, test.t2.a)", - "│ ├─HashJoin(Build) 3.00 root inner join, equal:[eq(test.t3.b, test.t1.b)], other cond:gt(test.t1.a, Column#13)", - "│ │ ├─Selection(Build) 2.40 root not(isnull(Column#13))", - "│ │ │ └─HashAgg 3.00 root group by:test.t3.b, funcs:min(test.t3.a)->Column#13, funcs:firstrow(test.t3.b)->test.t3.b", - "│ │ │ └─TableReader 3.00 root data:Selection", - "│ │ │ └─Selection 3.00 cop[tikv] not(isnull(test.t3.b))", - "│ │ │ └─TableFullScan 3.00 cop[tikv] table:t3 keep order:false", - "│ │ └─TableReader(Probe) 9980.01 root data:Selection", - "│ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t1.a)), not(isnull(test.t1.b))", - "│ │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", - "│ └─IndexLookUp(Probe) 1.25 root ", - "│ ├─Selection(Build) 1.25 cop[tikv] not(isnull(test.t2.a))", - "│ │ └─IndexRangeScan 1.25 cop[tikv] table:t2, index:a(a) range: decided by [eq(test.t2.a, test.t1.a)], keep order:false, stats:pseudo", - "│ └─TableRowIDScan(Probe) 1.25 cop[tikv] table:t2 keep order:false, stats:pseudo", - "└─TableReader(Probe) 9990.00 root data:Selection", - " └─Selection 9990.00 cop[tikv] not(isnull(test.t4.b))", - " └─TableFullScan 10000.00 cop[tikv] table:t4 keep order:false, stats:pseudo" + "TableDual 0.00 root rows:0" ], "Warning": [ "Warning 1815 There are no matching table names for (t3) in optimizer hint /*+ LEADING(t3) */. Maybe you can use the table alias name" ] }, { - "SQL": "select /*+ leading(t3@sel_2, t2) */ * from t1 join t2 on t1.a=t2.a join t4 on t1.b = t4.b where t1.a > (select min(t3.a) from t3 where t1.b = t3.b)", + "SQL": "select /*+ leading(t2, t3@sel_2) */ * from t1 join t2 on t1.a=t2.a where not exists (select t3.a from t3)", "Plan": [ - "HashJoin 4.69 root inner join, equal:[eq(test.t1.b, test.t4.b)]", - "├─IndexJoin(Build) 3.75 root inner join, inner:IndexLookUp, outer key:test.t1.a, inner key:test.t2.a, equal cond:eq(test.t1.a, test.t2.a)", - "│ ├─HashJoin(Build) 3.00 root inner join, equal:[eq(test.t3.b, test.t1.b)], other cond:gt(test.t1.a, Column#13)", - "│ │ ├─Selection(Build) 2.40 root not(isnull(Column#13))", - "│ │ │ └─HashAgg 3.00 root group by:test.t3.b, funcs:min(test.t3.a)->Column#13, funcs:firstrow(test.t3.b)->test.t3.b", - "│ │ │ └─TableReader 3.00 root data:Selection", - "│ │ │ └─Selection 3.00 cop[tikv] not(isnull(test.t3.b))", - "│ │ │ └─TableFullScan 3.00 cop[tikv] table:t3 keep order:false", - "│ │ └─TableReader(Probe) 9980.01 root data:Selection", - "│ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t1.a)), not(isnull(test.t1.b))", - "│ │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", - "│ └─IndexLookUp(Probe) 1.25 root ", - "│ ├─Selection(Build) 1.25 cop[tikv] not(isnull(test.t2.a))", - "│ │ └─IndexRangeScan 1.25 cop[tikv] table:t2, index:a(a) range: decided by [eq(test.t2.a, test.t1.a)], keep order:false, stats:pseudo", - "│ └─TableRowIDScan(Probe) 1.25 cop[tikv] table:t2 keep order:false, stats:pseudo", - "└─TableReader(Probe) 9990.00 root data:Selection", - " └─Selection 9990.00 cop[tikv] not(isnull(test.t4.b))", - " └─TableFullScan 10000.00 cop[tikv] table:t4 keep order:false, stats:pseudo" + "TableDual 0.00 root rows:0" ], "Warning": [ - "Warning 1815 There are no matching table names for (t3) in optimizer hint /*+ LEADING(t3, t2) */. Maybe you can use the table alias name", - "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" + "Warning 1815 There are no matching table names for (t3) in optimizer hint /*+ LEADING(t2, t3) */. Maybe you can use the table alias name" ] }, { - "SQL": "select /*+ leading(t4) */ * from t1 join t2 on t1.a=t2.a join t4 on t1.b = t4.b where t1.a in (select t3.a from t3)", + "SQL": "select /*+ leading(t1, t3@sel_2) */ * from t1 join t2 on t1.a=t2.a where not exists (select t3.a from t3)", "Plan": [ - "Projection 5.86 root test.t1.a, test.t1.b, test.t2.a, test.t2.b, test.t4.a, test.t4.b", - "└─IndexJoin 5.86 root inner join, inner:IndexLookUp, outer key:test.t1.a, inner key:test.t2.a, equal cond:eq(test.t1.a, test.t2.a)", - " ├─HashJoin(Build) 4.69 root inner join, equal:[eq(test.t1.a, test.t3.a)]", - " │ ├─StreamAgg(Build) 3.00 root group by:test.t3.a, funcs:firstrow(test.t3.a)->test.t3.a", - " │ │ └─IndexReader 3.00 root index:IndexFullScan", - " │ │ └─IndexFullScan 3.00 cop[tikv] table:t3, index:a(a) keep order:true", - " │ └─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t4.b, test.t1.b)]", - " │ ├─TableReader(Build) 9980.01 root data:Selection", - " │ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t1.a)), not(isnull(test.t1.b))", - " │ │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", - " │ └─TableReader(Probe) 9990.00 root data:Selection", - " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.b))", - " │ └─TableFullScan 10000.00 cop[tikv] table:t4 keep order:false, stats:pseudo", - " └─IndexLookUp(Probe) 1.25 root ", - " ├─Selection(Build) 1.25 cop[tikv] not(isnull(test.t2.a))", - " │ └─IndexRangeScan 1.25 cop[tikv] table:t2, index:a(a) range: decided by [eq(test.t2.a, test.t1.a)], keep order:false, stats:pseudo", - " └─TableRowIDScan(Probe) 1.25 cop[tikv] table:t2 keep order:false, stats:pseudo" + "TableDual 0.00 root rows:0" ], - "Warning": null + "Warning": [ + "Warning 1815 There are no matching table names for (t3) in optimizer hint /*+ LEADING(t1, t3) */. Maybe you can use the table alias name" + ] }, { - "SQL": "select /*+ leading(t3@sel_2) */ * from t1 join t2 on t1.a=t2.a where t1.a in (select t3.a from t3)", + "SQL": "select /*+ leading(t3@sel_2, t2) */ * from t1 join t2 on t1.a=t2.a where not exists (select t3.a from t3)", "Plan": [ - "IndexJoin 4.69 root inner join, inner:IndexLookUp, outer key:test.t1.a, inner key:test.t2.a, equal cond:eq(test.t1.a, test.t2.a)", - "├─IndexJoin(Build) 3.75 root inner join, inner:IndexLookUp, outer key:test.t3.a, inner key:test.t1.a, equal cond:eq(test.t3.a, test.t1.a)", - "│ ├─StreamAgg(Build) 3.00 root group by:test.t3.a, funcs:firstrow(test.t3.a)->test.t3.a", - "│ │ └─IndexReader 3.00 root index:IndexFullScan", - "│ │ └─IndexFullScan 3.00 cop[tikv] table:t3, index:a(a) keep order:true", - "│ └─IndexLookUp(Probe) 1.25 root ", - "│ ├─Selection(Build) 1.25 cop[tikv] not(isnull(test.t1.a))", - "│ │ └─IndexRangeScan 1.25 cop[tikv] table:t1, index:a(a) range: decided by [eq(test.t1.a, test.t3.a)], keep order:false, stats:pseudo", - "│ └─TableRowIDScan(Probe) 1.25 cop[tikv] table:t1 keep order:false, stats:pseudo", - "└─IndexLookUp(Probe) 1.25 root ", - " ├─Selection(Build) 1.25 cop[tikv] not(isnull(test.t2.a))", - " │ └─IndexRangeScan 1.25 cop[tikv] table:t2, index:a(a) range: decided by [eq(test.t2.a, test.t1.a)], keep order:false, stats:pseudo", - " └─TableRowIDScan(Probe) 1.25 cop[tikv] table:t2 keep order:false, stats:pseudo" + "TableDual 0.00 root rows:0" ], - "Warning": null + "Warning": [ + "Warning 1815 There are no matching table names for (t3) in optimizer hint /*+ LEADING(t3, t2) */. Maybe you can use the table alias name" + ] }, { - "SQL": "select /*+ leading(t2, t3@sel_2) */ * from t1 join t2 on t1.a=t2.a where t1.a in (select t3.a from t3)", + "SQL": "select /*+ leading(t3@sel_2, t1) */ * from t1 join t2 on t1.a=t2.a where not exists (select t3.a from t3)", "Plan": [ - "IndexJoin 4.69 root inner join, inner:IndexLookUp, outer key:test.t1.a, inner key:test.t2.a, equal cond:eq(test.t1.a, test.t2.a)", - "├─IndexJoin(Build) 3.75 root inner join, inner:IndexLookUp, outer key:test.t3.a, inner key:test.t1.a, equal cond:eq(test.t3.a, test.t1.a)", - "│ ├─StreamAgg(Build) 3.00 root group by:test.t3.a, funcs:firstrow(test.t3.a)->test.t3.a", - "│ │ └─IndexReader 3.00 root index:IndexFullScan", - "│ │ └─IndexFullScan 3.00 cop[tikv] table:t3, index:a(a) keep order:true", - "│ └─IndexLookUp(Probe) 1.25 root ", - "│ ├─Selection(Build) 1.25 cop[tikv] not(isnull(test.t1.a))", - "│ │ └─IndexRangeScan 1.25 cop[tikv] table:t1, index:a(a) range: decided by [eq(test.t1.a, test.t3.a)], keep order:false, stats:pseudo", - "│ └─TableRowIDScan(Probe) 1.25 cop[tikv] table:t1 keep order:false, stats:pseudo", - "└─IndexLookUp(Probe) 1.25 root ", - " ├─Selection(Build) 1.25 cop[tikv] not(isnull(test.t2.a))", - " │ └─IndexRangeScan 1.25 cop[tikv] table:t2, index:a(a) range: decided by [eq(test.t2.a, test.t1.a)], keep order:false, stats:pseudo", - " └─TableRowIDScan(Probe) 1.25 cop[tikv] table:t2 keep order:false, stats:pseudo" + "TableDual 0.00 root rows:0" ], "Warning": [ - "Warning 1815 We can only use one leading hint at most, when multiple leading hints are used, all leading hints will be invalid" + "Warning 1815 There are no matching table names for (t3) in optimizer hint /*+ LEADING(t3, t1) */. Maybe you can use the table alias name" ] }, { - "SQL": "select /*+ leading(t1, t3@sel_2) */ * from t1 join t2 on t1.a=t2.a where t1.a in (select t3.a from t3)", + "SQL": "select /*+ leading(t4@sel_2, t1) */ * from t1 join (select * from t4) t2 on t1.a=t2.a join t3 on t2.b=t3.b;", "Plan": [ - "IndexJoin 4.69 root inner join, inner:IndexLookUp, outer key:test.t1.a, inner key:test.t2.a, equal cond:eq(test.t1.a, test.t2.a)", - "├─IndexJoin(Build) 3.75 root inner join, inner:IndexLookUp, outer key:test.t3.a, inner key:test.t1.a, equal cond:eq(test.t3.a, test.t1.a)", - "│ ├─StreamAgg(Build) 3.00 root group by:test.t3.a, funcs:firstrow(test.t3.a)->test.t3.a", - "│ │ └─IndexReader 3.00 root index:IndexFullScan", - "│ │ └─IndexFullScan 3.00 cop[tikv] table:t3, index:a(a) keep order:true", - "│ └─IndexLookUp(Probe) 1.25 root ", - "│ ├─Selection(Build) 1.25 cop[tikv] not(isnull(test.t1.a))", - "│ │ └─IndexRangeScan 1.25 cop[tikv] table:t1, index:a(a) range: decided by [eq(test.t1.a, test.t3.a)], keep order:false, stats:pseudo", - "│ └─TableRowIDScan(Probe) 1.25 cop[tikv] table:t1 keep order:false, stats:pseudo", - "└─IndexLookUp(Probe) 1.25 root ", - " ├─Selection(Build) 1.25 cop[tikv] not(isnull(test.t2.a))", - " │ └─IndexRangeScan 1.25 cop[tikv] table:t2, index:a(a) range: decided by [eq(test.t2.a, test.t1.a)], keep order:false, stats:pseudo", - " └─TableRowIDScan(Probe) 1.25 cop[tikv] table:t2 keep order:false, stats:pseudo" + "Projection 4.69 root test.t1.a, test.t1.b, test.t4.a, test.t4.b, test.t3.a, test.t3.b", + "└─HashJoin 4.69 root inner join, equal:[eq(test.t4.b, test.t3.b)]", + " ├─TableReader(Build) 3.00 root data:Selection", + " │ └─Selection 3.00 cop[tikv] not(isnull(test.t3.b))", + " │ └─TableFullScan 3.00 cop[tikv] table:t3 keep order:false", + " └─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t4.a, test.t1.a)]", + " ├─TableReader(Build) 9980.01 root data:Selection", + " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t4.a)), not(isnull(test.t4.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t4 keep order:false, stats:pseudo", + " └─TableReader(Probe) 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", + " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" ], "Warning": [ - "Warning 1815 We can only use one leading hint at most, when multiple leading hints are used, all leading hints will be invalid" + "Warning 1815 There are no matching table names for (t4) in optimizer hint /*+ LEADING(t4, t1) */. Maybe you can use the table alias name" ] }, { - "SQL": "select /*+ leading(t3@sel_2, t2) */ * from t1 join t2 on t1.a=t2.a where t1.a in (select t3.a from t3)", + "SQL": "select /*+ leading(t2, t4@sel_2) */ * from (select * from t4) t1 join t2 on t1.a=t2.a join t3 on t2.b=t3.b;", "Plan": [ - "IndexJoin 4.69 root inner join, inner:IndexLookUp, outer key:test.t1.a, inner key:test.t2.a, equal cond:eq(test.t1.a, test.t2.a)", - "├─IndexJoin(Build) 3.75 root inner join, inner:IndexLookUp, outer key:test.t3.a, inner key:test.t1.a, equal cond:eq(test.t3.a, test.t1.a)", - "│ ├─StreamAgg(Build) 3.00 root group by:test.t3.a, funcs:firstrow(test.t3.a)->test.t3.a", - "│ │ └─IndexReader 3.00 root index:IndexFullScan", - "│ │ └─IndexFullScan 3.00 cop[tikv] table:t3, index:a(a) keep order:true", - "│ └─IndexLookUp(Probe) 1.25 root ", - "│ ├─Selection(Build) 1.25 cop[tikv] not(isnull(test.t1.a))", - "│ │ └─IndexRangeScan 1.25 cop[tikv] table:t1, index:a(a) range: decided by [eq(test.t1.a, test.t3.a)], keep order:false, stats:pseudo", - "│ └─TableRowIDScan(Probe) 1.25 cop[tikv] table:t1 keep order:false, stats:pseudo", - "└─IndexLookUp(Probe) 1.25 root ", - " ├─Selection(Build) 1.25 cop[tikv] not(isnull(test.t2.a))", - " │ └─IndexRangeScan 1.25 cop[tikv] table:t2, index:a(a) range: decided by [eq(test.t2.a, test.t1.a)], keep order:false, stats:pseudo", - " └─TableRowIDScan(Probe) 1.25 cop[tikv] table:t2 keep order:false, stats:pseudo" + "Projection 4.69 root test.t4.a, test.t4.b, test.t2.a, test.t2.b, test.t3.a, test.t3.b", + "└─HashJoin 4.69 root inner join, equal:[eq(test.t2.b, test.t3.b)]", + " ├─TableReader(Build) 3.00 root data:Selection", + " │ └─Selection 3.00 cop[tikv] not(isnull(test.t3.b))", + " │ └─TableFullScan 3.00 cop[tikv] table:t3 keep order:false", + " └─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t2.a, test.t4.a)]", + " ├─TableReader(Build) 9980.01 root data:Selection", + " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t2.a)), not(isnull(test.t2.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", + " └─TableReader(Probe) 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t4.a))", + " └─TableFullScan 10000.00 cop[tikv] table:t4 keep order:false, stats:pseudo" ], "Warning": [ - "Warning 1815 We can only use one leading hint at most, when multiple leading hints are used, all leading hints will be invalid" + "Warning 1815 There are no matching table names for (t4) in optimizer hint /*+ LEADING(t2, t4) */. Maybe you can use the table alias name" ] }, { - "SQL": "select /*+ leading(t3@sel_2, t1) */ * from t1 join t2 on t1.a=t2.a where t1.a in (select t3.a from t3)", + "SQL": "select /*+ leading(t3) */ * from t1 join t2 on t1.a=t2.a join (select * from t4) t3 on t2.b=t3.b;", "Plan": [ - "IndexJoin 4.69 root inner join, inner:IndexLookUp, outer key:test.t1.a, inner key:test.t2.a, equal cond:eq(test.t1.a, test.t2.a)", - "├─IndexJoin(Build) 3.75 root inner join, inner:IndexLookUp, outer key:test.t3.a, inner key:test.t1.a, equal cond:eq(test.t3.a, test.t1.a)", - "│ ├─StreamAgg(Build) 3.00 root group by:test.t3.a, funcs:firstrow(test.t3.a)->test.t3.a", - "│ │ └─IndexReader 3.00 root index:IndexFullScan", - "│ │ └─IndexFullScan 3.00 cop[tikv] table:t3, index:a(a) keep order:true", - "│ └─IndexLookUp(Probe) 1.25 root ", - "│ ├─Selection(Build) 1.25 cop[tikv] not(isnull(test.t1.a))", - "│ │ └─IndexRangeScan 1.25 cop[tikv] table:t1, index:a(a) range: decided by [eq(test.t1.a, test.t3.a)], keep order:false, stats:pseudo", - "│ └─TableRowIDScan(Probe) 1.25 cop[tikv] table:t1 keep order:false, stats:pseudo", - "└─IndexLookUp(Probe) 1.25 root ", - " ├─Selection(Build) 1.25 cop[tikv] not(isnull(test.t2.a))", - " │ └─IndexRangeScan 1.25 cop[tikv] table:t2, index:a(a) range: decided by [eq(test.t2.a, test.t1.a)], keep order:false, stats:pseudo", - " └─TableRowIDScan(Probe) 1.25 cop[tikv] table:t2 keep order:false, stats:pseudo" + "Projection 15593.77 root test.t1.a, test.t1.b, test.t2.a, test.t2.b, test.t4.a, test.t4.b", + "└─HashJoin 15593.77 root inner join, equal:[eq(test.t2.b, test.t4.b)]", + " ├─TableReader(Build) 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t4 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t2.a, test.t1.a)]", + " ├─TableReader(Build) 9980.01 root data:Selection", + " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t2.a)), not(isnull(test.t2.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", + " └─TableReader(Probe) 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", + " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" + ], + "Warning": [ + "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" + ] + }, + { + "SQL": "select /*+ leading(t1) */ t1.a, (select min(t2.a) from t2) from t1 join t3 on t1.a = t3.a;", + "Plan": [ + "Projection 3.75 root test.t1.a, ->Column#14", + "└─IndexJoin 3.75 root inner join, inner:IndexReader, outer key:test.t3.a, inner key:test.t1.a, equal cond:eq(test.t3.a, test.t1.a)", + " ├─IndexReader(Build) 3.00 root index:IndexFullScan", + " │ └─IndexFullScan 3.00 cop[tikv] table:t3, index:a(a) keep order:false", + " └─IndexReader(Probe) 1.25 root index:Selection", + " └─Selection 1.25 cop[tikv] not(isnull(test.t1.a))", + " └─IndexRangeScan 1.25 cop[tikv] table:t1, index:a(a) range: decided by [eq(test.t1.a, test.t3.a)], keep order:false, stats:pseudo" + ], + "Warning": null + }, + { + "SQL": "select /*+ leading(t1, t2@sel_2) */ t1.a, (select min(t2.a) from t2) from t1 join t3 on t1.a = t3.a;", + "Plan": [ + "Projection 3.75 root test.t1.a, ->Column#14", + "└─IndexJoin 3.75 root inner join, inner:IndexReader, outer key:test.t3.a, inner key:test.t1.a, equal cond:eq(test.t3.a, test.t1.a)", + " ├─IndexReader(Build) 3.00 root index:IndexFullScan", + " │ └─IndexFullScan 3.00 cop[tikv] table:t3, index:a(a) keep order:false", + " └─IndexReader(Probe) 1.25 root index:Selection", + " └─Selection 1.25 cop[tikv] not(isnull(test.t1.a))", + " └─IndexRangeScan 1.25 cop[tikv] table:t1, index:a(a) range: decided by [eq(test.t1.a, test.t3.a)], keep order:false, stats:pseudo" ], "Warning": [ - "Warning 1815 We can only use one leading hint at most, when multiple leading hints are used, all leading hints will be invalid" + "Warning 1815 There are no matching table names for (t2) in optimizer hint /*+ LEADING(t1, t2) */. Maybe you can use the table alias name", + "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" ] }, { - "SQL": "select /*+ leading(t4) */ * from t1 join t2 on t1.a=t2.a join t4 on t1.b = t4.b where t1.a not in (select t3.a from t3)", + "SQL": "select /*+ leading(t1, t3) */ t1.a, (select min(t2.a) from t2) from t1 join t3 on t1.a = t3.a;", "Plan": [ - "HashJoin 12475.01 root CARTESIAN anti semi join, other cond:eq(test.t1.a, test.t3.a)", - "├─TableReader(Build) 3.00 root data:TableFullScan", - "│ └─TableFullScan 3.00 cop[tikv] table:t3 keep order:false", - "└─Projection(Probe) 15593.77 root test.t1.a, test.t1.b, test.t2.a, test.t2.b, test.t4.a, test.t4.b", - " └─HashJoin 15593.77 root inner join, equal:[eq(test.t1.a, test.t2.a)]", - " ├─TableReader(Build) 9990.00 root data:Selection", - " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", - " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", - " └─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t4.b, test.t1.b)]", - " ├─TableReader(Build) 9980.01 root data:Selection", - " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t1.a)), not(isnull(test.t1.b))", - " │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", - " └─TableReader(Probe) 9990.00 root data:Selection", - " └─Selection 9990.00 cop[tikv] not(isnull(test.t4.b))", - " └─TableFullScan 10000.00 cop[tikv] table:t4 keep order:false, stats:pseudo" + "Projection 3.75 root test.t1.a, ->Column#14", + "└─IndexJoin 3.75 root inner join, inner:IndexReader, outer key:test.t3.a, inner key:test.t1.a, equal cond:eq(test.t3.a, test.t1.a)", + " ├─IndexReader(Build) 3.00 root index:IndexFullScan", + " │ └─IndexFullScan 3.00 cop[tikv] table:t3, index:a(a) keep order:false", + " └─IndexReader(Probe) 1.25 root index:Selection", + " └─Selection 1.25 cop[tikv] not(isnull(test.t1.a))", + " └─IndexRangeScan 1.25 cop[tikv] table:t1, index:a(a) range: decided by [eq(test.t1.a, test.t3.a)], keep order:false, stats:pseudo" ], "Warning": null }, { - "SQL": "select /*+ leading(t3@sel_2) */ * from t1 join t2 on t1.a=t2.a where t1.a not in (select t3.a from t3)", + "SQL": "select /*+ leading(t2@sel_2, t1) */ t1.a, (select min(t2.a) from t2) from t1 join t3 on t1.a = t3.a;", "Plan": [ - "HashJoin 9990.00 root CARTESIAN anti semi join, other cond:eq(test.t1.a, test.t3.a)", - "├─TableReader(Build) 3.00 root data:TableFullScan", - "│ └─TableFullScan 3.00 cop[tikv] table:t3 keep order:false", - "└─HashJoin(Probe) 12487.50 root inner join, equal:[eq(test.t1.a, test.t2.a)]", - " ├─TableReader(Build) 9990.00 root data:Selection", - " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", - " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", - " └─TableReader(Probe) 9990.00 root data:Selection", - " └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", - " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" + "Projection 3.75 root test.t1.a, ->Column#14", + "└─IndexJoin 3.75 root inner join, inner:IndexReader, outer key:test.t3.a, inner key:test.t1.a, equal cond:eq(test.t3.a, test.t1.a)", + " ├─IndexReader(Build) 3.00 root index:IndexFullScan", + " │ └─IndexFullScan 3.00 cop[tikv] table:t3, index:a(a) keep order:false", + " └─IndexReader(Probe) 1.25 root index:Selection", + " └─Selection 1.25 cop[tikv] not(isnull(test.t1.a))", + " └─IndexRangeScan 1.25 cop[tikv] table:t1, index:a(a) range: decided by [eq(test.t1.a, test.t3.a)], keep order:false, stats:pseudo" ], "Warning": [ - "Warning 1815 There are no matching table names for (t3) in optimizer hint /*+ LEADING(t3) */. Maybe you can use the table alias name" + "Warning 1815 There are no matching table names for (t2) in optimizer hint /*+ LEADING(t2, t1) */. Maybe you can use the table alias name", + "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" ] }, { - "SQL": "select /*+ leading(t2, t3@sel_2) */ * from t1 join t2 on t1.a=t2.a where t1.a not in (select t3.a from t3)", + "SQL": "select /*+ leading(t2@sel_2, t3) */ t1.a, (select min(t2.a) from t2) from t1 join t3 on t1.a = t3.a;", "Plan": [ - "HashJoin 9990.00 root CARTESIAN anti semi join, other cond:eq(test.t1.a, test.t3.a)", - "├─TableReader(Build) 3.00 root data:TableFullScan", - "│ └─TableFullScan 3.00 cop[tikv] table:t3 keep order:false", - "└─HashJoin(Probe) 12487.50 root inner join, equal:[eq(test.t1.a, test.t2.a)]", - " ├─TableReader(Build) 9990.00 root data:Selection", - " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", - " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", - " └─TableReader(Probe) 9990.00 root data:Selection", - " └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", - " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" + "Projection 3.75 root test.t1.a, ->Column#14", + "└─IndexJoin 3.75 root inner join, inner:IndexReader, outer key:test.t3.a, inner key:test.t1.a, equal cond:eq(test.t3.a, test.t1.a)", + " ├─IndexReader(Build) 3.00 root index:IndexFullScan", + " │ └─IndexFullScan 3.00 cop[tikv] table:t3, index:a(a) keep order:false", + " └─IndexReader(Probe) 1.25 root index:Selection", + " └─Selection 1.25 cop[tikv] not(isnull(test.t1.a))", + " └─IndexRangeScan 1.25 cop[tikv] table:t1, index:a(a) range: decided by [eq(test.t1.a, test.t3.a)], keep order:false, stats:pseudo" ], "Warning": [ - "Warning 1815 There are no matching table names for (t3) in optimizer hint /*+ LEADING(t2, t3) */. Maybe you can use the table alias name", + "Warning 1815 There are no matching table names for (t2) in optimizer hint /*+ LEADING(t2, t3) */. Maybe you can use the table alias name", "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" ] }, { - "SQL": "select /*+ leading(t1, t3@sel_2) */ * from t1 join t2 on t1.a=t2.a where t1.a not in (select t3.a from t3)", + "SQL": "select /*+ leading(t1, t2@sel_2) */ t1.a, (select min(t2.a) from t2) from t1 join t3 on t1.a = t3.a;", "Plan": [ - "HashJoin 9990.00 root CARTESIAN anti semi join, other cond:eq(test.t1.a, test.t3.a)", - "├─TableReader(Build) 3.00 root data:TableFullScan", - "│ └─TableFullScan 3.00 cop[tikv] table:t3 keep order:false", - "└─HashJoin(Probe) 12487.50 root inner join, equal:[eq(test.t1.a, test.t2.a)]", - " ├─TableReader(Build) 9990.00 root data:Selection", - " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", - " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", - " └─TableReader(Probe) 9990.00 root data:Selection", - " └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", - " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" + "Projection 3.75 root test.t1.a, ->Column#14", + "└─IndexJoin 3.75 root inner join, inner:IndexReader, outer key:test.t3.a, inner key:test.t1.a, equal cond:eq(test.t3.a, test.t1.a)", + " ├─IndexReader(Build) 3.00 root index:IndexFullScan", + " │ └─IndexFullScan 3.00 cop[tikv] table:t3, index:a(a) keep order:false", + " └─IndexReader(Probe) 1.25 root index:Selection", + " └─Selection 1.25 cop[tikv] not(isnull(test.t1.a))", + " └─IndexRangeScan 1.25 cop[tikv] table:t1, index:a(a) range: decided by [eq(test.t1.a, test.t3.a)], keep order:false, stats:pseudo" ], "Warning": [ - "Warning 1815 There are no matching table names for (t3) in optimizer hint /*+ LEADING(t1, t3) */. Maybe you can use the table alias name", + "Warning 1815 There are no matching table names for (t2) in optimizer hint /*+ LEADING(t1, t2) */. Maybe you can use the table alias name", "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" ] }, { - "SQL": "select /*+ leading(t3@sel_2, t2) */ * from t1 join t2 on t1.a=t2.a where t1.a not in (select t3.a from t3)", + "SQL": "select /*+ leading(t3, t2@sel_2) */ t1.a, (select min(t2.a) from t2) from t1 join t3 on t1.a = t3.a;", "Plan": [ - "HashJoin 9990.00 root CARTESIAN anti semi join, other cond:eq(test.t1.a, test.t3.a)", - "├─TableReader(Build) 3.00 root data:TableFullScan", - "│ └─TableFullScan 3.00 cop[tikv] table:t3 keep order:false", - "└─HashJoin(Probe) 12487.50 root inner join, equal:[eq(test.t1.a, test.t2.a)]", - " ├─TableReader(Build) 9990.00 root data:Selection", - " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", - " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", - " └─TableReader(Probe) 9990.00 root data:Selection", - " └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", - " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" + "Projection 3.75 root test.t1.a, ->Column#14", + "└─IndexJoin 3.75 root inner join, inner:IndexReader, outer key:test.t3.a, inner key:test.t1.a, equal cond:eq(test.t3.a, test.t1.a)", + " ├─IndexReader(Build) 3.00 root index:IndexFullScan", + " │ └─IndexFullScan 3.00 cop[tikv] table:t3, index:a(a) keep order:false", + " └─IndexReader(Probe) 1.25 root index:Selection", + " └─Selection 1.25 cop[tikv] not(isnull(test.t1.a))", + " └─IndexRangeScan 1.25 cop[tikv] table:t1, index:a(a) range: decided by [eq(test.t1.a, test.t3.a)], keep order:false, stats:pseudo" ], "Warning": [ - "Warning 1815 There are no matching table names for (t3) in optimizer hint /*+ LEADING(t3, t2) */. Maybe you can use the table alias name", + "Warning 1815 There are no matching table names for (t2) in optimizer hint /*+ LEADING(t3, t2) */. Maybe you can use the table alias name", "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" ] - }, + } + ] + }, + { + "Name": "TestLeadingJoinHint4OuterJoin", + "Cases": [ { - "SQL": "select /*+ leading(t3@sel_2, t1) */ * from t1 join t2 on t1.a=t2.a where t1.a not in (select t3.a from t3)", + "SQL": "select /*+ leading(t1, t2) */ * from t4 join t on t4.a=t.a left join t1 on t.a = t1.a join t2 on t.b = t2.b join t3 on t2.b=t3.b;", "Plan": [ - "HashJoin 9990.00 root CARTESIAN anti semi join, other cond:eq(test.t1.a, test.t3.a)", - "├─TableReader(Build) 3.00 root data:TableFullScan", - "│ └─TableFullScan 3.00 cop[tikv] table:t3 keep order:false", - "└─HashJoin(Probe) 12487.50 root inner join, equal:[eq(test.t1.a, test.t2.a)]", + "Projection 24365.26 root test.t4.a, test.t4.b, test.t.a, test.t.b, test.t1.a, test.t1.b, test.t2.a, test.t2.b, test.t3.a, test.t3.b", + "└─HashJoin 24365.26 root inner join, equal:[eq(test.t2.b, test.t3.b)]", " ├─TableReader(Build) 9990.00 root data:Selection", - " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", - " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", - " └─TableReader(Probe) 9990.00 root data:Selection", - " └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", - " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 19492.21 root inner join, equal:[eq(test.t.b, test.t2.b)]", + " ├─TableReader(Build) 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 15593.77 root left outer join, equal:[eq(test.t.a, test.t1.a)]", + " ├─TableReader(Build) 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t.a, test.t4.a)]", + " ├─TableReader(Build) 9980.01 root data:Selection", + " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t.a)), not(isnull(test.t.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t keep order:false, stats:pseudo", + " └─TableReader(Probe) 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t4.a))", + " └─TableFullScan 10000.00 cop[tikv] table:t4 keep order:false, stats:pseudo" ], "Warning": [ - "Warning 1815 There are no matching table names for (t3) in optimizer hint /*+ LEADING(t3, t1) */. Maybe you can use the table alias name", "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" ] }, { - "SQL": "select /*+ leading(t4) */ * from t1 join t2 on t1.a=t2.a join t4 on t1.b = t4.b where exists (select t3.a from t3)", + "SQL": "select /*+ leading(t2, t3) */ * from t4 join t on t4.a=t.a left join t1 on t.a = t1.a join t2 on t.b = t2.b join t3 on t2.b=t3.b;", "Plan": [ - "Projection 15593.77 root test.t1.a, test.t1.b, test.t2.a, test.t2.b, test.t4.a, test.t4.b", - "└─HashJoin 15593.77 root inner join, equal:[eq(test.t1.a, test.t2.a)]", + "Projection 24365.26 root test.t4.a, test.t4.b, test.t.a, test.t.b, test.t1.a, test.t1.b, test.t2.a, test.t2.b, test.t3.a, test.t3.b", + "└─HashJoin 24365.26 root left outer join, equal:[eq(test.t.a, test.t1.a)]", " ├─TableReader(Build) 9990.00 root data:Selection", - " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", - " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", - " └─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t4.b, test.t1.b)]", - " ├─TableReader(Build) 9980.01 root data:Selection", - " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t1.a)), not(isnull(test.t1.b))", - " │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", - " └─TableReader(Probe) 9990.00 root data:Selection", - " └─Selection 9990.00 cop[tikv] not(isnull(test.t4.b))", - " └─TableFullScan 10000.00 cop[tikv] table:t4 keep order:false, stats:pseudo" + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 19492.21 root inner join, equal:[eq(test.t.a, test.t4.a)]", + " ├─TableReader(Build) 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.a))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t4 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 15593.77 root inner join, equal:[eq(test.t2.b, test.t.b)]", + " ├─TableReader(Build) 9980.01 root data:Selection", + " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t.a)), not(isnull(test.t.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t keep order:false, stats:pseudo", + " └─HashJoin(Probe) 12487.50 root inner join, equal:[eq(test.t2.b, test.t3.b)]", + " ├─TableReader(Build) 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", + " └─TableReader(Probe) 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t2.b))", + " └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo" ], "Warning": null }, { - "SQL": "select /*+ leading(t3@sel_2) */ * from t1 join t2 on t1.a=t2.a where exists (select t3.a from t3)", - "Plan": [ - "HashJoin 12487.50 root inner join, equal:[eq(test.t1.a, test.t2.a)]", - "├─TableReader(Build) 9990.00 root data:Selection", - "│ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", - "│ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", - "└─TableReader(Probe) 9990.00 root data:Selection", - " └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", - " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" - ], - "Warning": [ - "Warning 1815 There are no matching table names for (t3) in optimizer hint /*+ LEADING(t3) */. Maybe you can use the table alias name" - ] - }, - { - "SQL": "select /*+ leading(t2, t3@sel_2) */ * from t1 join t2 on t1.a=t2.a where exists (select t3.a from t3)", - "Plan": [ - "HashJoin 12487.50 root inner join, equal:[eq(test.t1.a, test.t2.a)]", - "├─TableReader(Build) 9990.00 root data:Selection", - "│ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", - "│ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", - "└─TableReader(Probe) 9990.00 root data:Selection", - " └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", - " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" - ], - "Warning": [ - "Warning 1815 There are no matching table names for (t3) in optimizer hint /*+ LEADING(t2, t3) */. Maybe you can use the table alias name", - "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" - ] - }, - { - "SQL": "select /*+ leading(t1, t3@sel_2) */ * from t1 join t2 on t1.a=t2.a where exists (select t3.a from t3)", + "SQL": "select /*+ leading(t4, t3, t2, t, t1) */ * from t4 join t on t4.a=t.a left join t1 on t.a = t1.a join t2 on t.b = t2.b join t3 on t2.b=t3.b;", "Plan": [ - "HashJoin 12487.50 root inner join, equal:[eq(test.t1.a, test.t2.a)]", - "├─TableReader(Build) 9990.00 root data:Selection", - "│ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", - "│ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", - "└─TableReader(Probe) 9990.00 root data:Selection", - " └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", - " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" + "Projection 24365.26 root test.t4.a, test.t4.b, test.t.a, test.t.b, test.t1.a, test.t1.b, test.t2.a, test.t2.b, test.t3.a, test.t3.b", + "└─HashJoin 24365.26 root inner join, equal:[eq(test.t2.b, test.t3.b)]", + " ├─TableReader(Build) 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 19492.21 root inner join, equal:[eq(test.t.b, test.t2.b)]", + " ├─TableReader(Build) 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 15593.77 root left outer join, equal:[eq(test.t.a, test.t1.a)]", + " ├─TableReader(Build) 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t.a, test.t4.a)]", + " ├─TableReader(Build) 9980.01 root data:Selection", + " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t.a)), not(isnull(test.t.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t keep order:false, stats:pseudo", + " └─TableReader(Probe) 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t4.a))", + " └─TableFullScan 10000.00 cop[tikv] table:t4 keep order:false, stats:pseudo" ], "Warning": [ - "Warning 1815 There are no matching table names for (t3) in optimizer hint /*+ LEADING(t1, t3) */. Maybe you can use the table alias name", "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" ] }, { - "SQL": "select /*+ leading(t3@sel_2, t2) */ * from t1 join t2 on t1.a=t2.a where exists (select t3.a from t3)", + "SQL": "select /*+ leading(t4, t3, t2, t) */ * from t4 join t on t4.a=t.a left join t1 on t.a = t1.a join t2 on t.b = t2.b join t3 on t2.b=t3.b;", "Plan": [ - "HashJoin 12487.50 root inner join, equal:[eq(test.t1.a, test.t2.a)]", - "├─TableReader(Build) 9990.00 root data:Selection", - "│ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", - "│ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", - "└─TableReader(Probe) 9990.00 root data:Selection", - " └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", - " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" + "Projection 24365.26 root test.t4.a, test.t4.b, test.t.a, test.t.b, test.t1.a, test.t1.b, test.t2.a, test.t2.b, test.t3.a, test.t3.b", + "└─HashJoin 24365.26 root inner join, equal:[eq(test.t2.b, test.t3.b)]", + " ├─TableReader(Build) 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 19492.21 root inner join, equal:[eq(test.t.b, test.t2.b)]", + " ├─TableReader(Build) 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 15593.77 root left outer join, equal:[eq(test.t.a, test.t1.a)]", + " ├─TableReader(Build) 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t.a, test.t4.a)]", + " ├─TableReader(Build) 9980.01 root data:Selection", + " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t.a)), not(isnull(test.t.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t keep order:false, stats:pseudo", + " └─TableReader(Probe) 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t4.a))", + " └─TableFullScan 10000.00 cop[tikv] table:t4 keep order:false, stats:pseudo" ], "Warning": [ - "Warning 1815 There are no matching table names for (t3) in optimizer hint /*+ LEADING(t3, t2) */. Maybe you can use the table alias name", "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" ] }, { - "SQL": "select /*+ leading(t3@sel_2, t1) */ * from t1 join t2 on t1.a=t2.a where exists (select t3.a from t3)", + "SQL": "select /*+ leading(t3, t2, t) */ * from t4 join t on t4.a=t.a left join t1 on t.a = t1.a join t2 on t.b = t2.b join t3 on t2.b=t3.b;", "Plan": [ - "HashJoin 12487.50 root inner join, equal:[eq(test.t1.a, test.t2.a)]", - "├─TableReader(Build) 9990.00 root data:Selection", - "│ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", - "│ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", - "└─TableReader(Probe) 9990.00 root data:Selection", - " └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", - " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" + "Projection 24365.26 root test.t4.a, test.t4.b, test.t.a, test.t.b, test.t1.a, test.t1.b, test.t2.a, test.t2.b, test.t3.a, test.t3.b", + "└─HashJoin 24365.26 root left outer join, equal:[eq(test.t.a, test.t1.a)]", + " ├─TableReader(Build) 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 19492.21 root inner join, equal:[eq(test.t.a, test.t4.a)]", + " ├─TableReader(Build) 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.a))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t4 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 15593.77 root inner join, equal:[eq(test.t2.b, test.t.b)]", + " ├─TableReader(Build) 9980.01 root data:Selection", + " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t.a)), not(isnull(test.t.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t keep order:false, stats:pseudo", + " └─HashJoin(Probe) 12487.50 root inner join, equal:[eq(test.t3.b, test.t2.b)]", + " ├─TableReader(Build) 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", + " └─TableReader(Probe) 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t3.b))", + " └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo" ], - "Warning": [ - "Warning 1815 There are no matching table names for (t3) in optimizer hint /*+ LEADING(t3, t1) */. Maybe you can use the table alias name", - "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" - ] + "Warning": null }, { - "SQL": "select /*+ leading(t4) */ * from t1 join t2 on t1.a=t2.a join t4 on t1.b = t4.b where not exists (select t3.a from t3)", + "SQL": "select /*+ leading(t3) */ * from t2 left join (t1 left join t3 on t1.a=t3.a) on t2.b=t1.b;", "Plan": [ - "TableDual 0.00 root rows:0" + "HashJoin 15609.38 root left outer join, equal:[eq(test.t2.b, test.t1.b)]", + "├─TableReader(Build) 10000.00 root data:TableFullScan", + "│ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", + "└─HashJoin(Probe) 12487.50 root left outer join, equal:[eq(test.t1.a, test.t3.a)]", + " ├─TableReader(Build) 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.a))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", + " └─TableReader(Probe) 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t1.b))", + " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" ], "Warning": null }, { - "SQL": "select /*+ leading(t3@sel_2) */ * from t1 join t2 on t1.a=t2.a where not exists (select t3.a from t3)", + "SQL": "select /*+ leading(t2, t1, t3) */ * from t2 left join (t1 left join t3 on t1.a=t3.a) on t2.b=t1.b;", "Plan": [ - "TableDual 0.00 root rows:0" + "HashJoin 15609.38 root left outer join, equal:[eq(test.t2.b, test.t1.b)]", + "├─TableReader(Build) 10000.00 root data:TableFullScan", + "│ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", + "└─HashJoin(Probe) 12487.50 root left outer join, equal:[eq(test.t1.a, test.t3.a)]", + " ├─TableReader(Build) 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.a))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", + " └─TableReader(Probe) 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t1.b))", + " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" ], "Warning": [ - "Warning 1815 There are no matching table names for (t3) in optimizer hint /*+ LEADING(t3) */. Maybe you can use the table alias name" + "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid", + "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" ] }, { - "SQL": "select /*+ leading(t2, t3@sel_2) */ * from t1 join t2 on t1.a=t2.a where not exists (select t3.a from t3)", + "SQL": "select /*+ leading(t2, t3) */ * from t2 left join (t1 join t3 on t1.a=t3.a join t4 on t3.b = t4.b) on t2.b=t1.b;", "Plan": [ - "TableDual 0.00 root rows:0" + "HashJoin 19492.21 root left outer join, equal:[eq(test.t2.b, test.t1.b)]", + "├─TableReader(Build) 10000.00 root data:TableFullScan", + "│ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", + "└─HashJoin(Probe) 15593.77 root inner join, equal:[eq(test.t3.b, test.t4.b)]", + " ├─TableReader(Build) 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t4 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t1.a, test.t3.a)]", + " ├─TableReader(Build) 9980.01 root data:Selection", + " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t3.a)), not(isnull(test.t3.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", + " └─TableReader(Probe) 9980.01 root data:Selection", + " └─Selection 9980.01 cop[tikv] not(isnull(test.t1.a)), not(isnull(test.t1.b))", + " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" ], "Warning": [ - "Warning 1815 There are no matching table names for (t3) in optimizer hint /*+ LEADING(t2, t3) */. Maybe you can use the table alias name" + "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid", + "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" ] }, { - "SQL": "select /*+ leading(t1, t3@sel_2) */ * from t1 join t2 on t1.a=t2.a where not exists (select t3.a from t3)", + "SQL": "select /*+ leading(t3, t4) */ * from t2 left join (t1 join t3 on t1.a=t3.a join t4 on t3.b = t4.b) on t2.b=t1.b;", "Plan": [ - "TableDual 0.00 root rows:0" + "HashJoin 19492.21 root left outer join, equal:[eq(test.t2.b, test.t1.b)]", + "├─TableReader(Build) 10000.00 root data:TableFullScan", + "│ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", + "└─Projection(Probe) 15593.77 root test.t1.a, test.t1.b, test.t3.a, test.t3.b, test.t4.a, test.t4.b", + " └─HashJoin 15593.77 root inner join, equal:[eq(test.t3.a, test.t1.a)]", + " ├─TableReader(Build) 9980.01 root data:Selection", + " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t1.a)), not(isnull(test.t1.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t3.b, test.t4.b)]", + " ├─TableReader(Build) 9980.01 root data:Selection", + " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t3.a)), not(isnull(test.t3.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", + " └─TableReader(Probe) 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t4.b))", + " └─TableFullScan 10000.00 cop[tikv] table:t4 keep order:false, stats:pseudo" ], - "Warning": [ - "Warning 1815 There are no matching table names for (t3) in optimizer hint /*+ LEADING(t1, t3) */. Maybe you can use the table alias name" - ] + "Warning": null }, { - "SQL": "select /*+ leading(t3@sel_2, t2) */ * from t1 join t2 on t1.a=t2.a where not exists (select t3.a from t3)", + "SQL": "select /*+ leading(t3, t4) */ * from t2 left join (t1 join t3 on t1.a=t3.a join t4 on t3.b = t4.b) on t2.b=t1.b join t5 on t2.a = t5.a join t6 on t5.b=t6.b;", "Plan": [ - "TableDual 0.00 root rows:0" + "Projection 30426.12 root test.t2.a, test.t2.b, test.t1.a, test.t1.b, test.t3.a, test.t3.b, test.t4.a, test.t4.b, test.t5.a, test.t5.b, test.t6.a, test.t6.b", + "└─HashJoin 30426.12 root left outer join, equal:[eq(test.t2.b, test.t1.b)]", + " ├─Projection(Build) 15593.77 root test.t1.a, test.t1.b, test.t3.a, test.t3.b, test.t4.a, test.t4.b", + " │ └─HashJoin 15593.77 root inner join, equal:[eq(test.t3.a, test.t1.a)]", + " │ ├─TableReader(Build) 9980.01 root data:Selection", + " │ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t1.a)), not(isnull(test.t1.b))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", + " │ └─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t3.b, test.t4.b)]", + " │ ├─TableReader(Build) 9980.01 root data:Selection", + " │ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t3.a)), not(isnull(test.t3.b))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", + " │ └─TableReader(Probe) 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t4 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 15593.77 root inner join, equal:[eq(test.t5.b, test.t6.b)]", + " ├─TableReader(Build) 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t6.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t6 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t5.a, test.t2.a)]", + " ├─TableReader(Build) 9980.01 root data:Selection", + " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t5.a)), not(isnull(test.t5.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t5 keep order:false, stats:pseudo", + " └─TableReader(Probe) 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", + " └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo" ], - "Warning": [ - "Warning 1815 There are no matching table names for (t3) in optimizer hint /*+ LEADING(t3, t2) */. Maybe you can use the table alias name" - ] + "Warning": null }, { - "SQL": "select /*+ leading(t3@sel_2, t1) */ * from t1 join t2 on t1.a=t2.a where not exists (select t3.a from t3)", + "SQL": "select /*+ leading(t3, t4) leading(t5, t6) */ * from t2 left join (t1 join t3 on t1.a=t3.a join t4 on t3.b = t4.b) on t2.b=t1.b join t5 on t2.a = t5.a join t6 on t5.b=t6.b;", "Plan": [ - "TableDual 0.00 root rows:0" + "Projection 30426.12 root test.t2.a, test.t2.b, test.t1.a, test.t1.b, test.t3.a, test.t3.b, test.t4.a, test.t4.b, test.t5.a, test.t5.b, test.t6.a, test.t6.b", + "└─HashJoin 30426.12 root left outer join, equal:[eq(test.t2.b, test.t1.b)]", + " ├─HashJoin(Build) 15593.77 root inner join, equal:[eq(test.t3.b, test.t4.b)]", + " │ ├─TableReader(Build) 9990.00 root data:Selection", + " │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.b))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t4 keep order:false, stats:pseudo", + " │ └─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t1.a, test.t3.a)]", + " │ ├─TableReader(Build) 9980.01 root data:Selection", + " │ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t3.a)), not(isnull(test.t3.b))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", + " │ └─TableReader(Probe) 9980.01 root data:Selection", + " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t1.a)), not(isnull(test.t1.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 15593.77 root inner join, equal:[eq(test.t5.b, test.t6.b)]", + " ├─TableReader(Build) 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t6.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t6 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t5.a, test.t2.a)]", + " ├─TableReader(Build) 9980.01 root data:Selection", + " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t5.a)), not(isnull(test.t5.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t5 keep order:false, stats:pseudo", + " └─TableReader(Probe) 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", + " └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo" ], "Warning": [ - "Warning 1815 There are no matching table names for (t3) in optimizer hint /*+ LEADING(t3, t1) */. Maybe you can use the table alias name" + "Warning 1815 We can only use one leading hint at most, when multiple leading hints are used, all leading hints will be invalid" ] }, { - "SQL": "select /*+ leading(t4@sel_2, t1) */ * from t1 join (select * from t4) t2 on t1.a=t2.a join t3 on t2.b=t3.b;", + "SQL": "select /*+ leading(t5, t6, t3, t4) */ * from t2 left join (t1 join t3 on t1.a=t3.a join t4 on t3.b = t4.b) on t2.b=t1.b join t5 on t2.a = t5.a join t6 on t5.b=t6.b;", "Plan": [ - "Projection 4.69 root test.t1.a, test.t1.b, test.t4.a, test.t4.b, test.t3.a, test.t3.b", - "└─HashJoin 4.69 root inner join, equal:[eq(test.t4.b, test.t3.b)]", - " ├─TableReader(Build) 3.00 root data:Selection", - " │ └─Selection 3.00 cop[tikv] not(isnull(test.t3.b))", - " │ └─TableFullScan 3.00 cop[tikv] table:t3 keep order:false", - " └─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t4.a, test.t1.a)]", - " ├─TableReader(Build) 9980.01 root data:Selection", - " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t4.a)), not(isnull(test.t4.b))", - " │ └─TableFullScan 10000.00 cop[tikv] table:t4 keep order:false, stats:pseudo", - " └─TableReader(Probe) 9990.00 root data:Selection", - " └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", - " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" + "Projection 30426.12 root test.t2.a, test.t2.b, test.t1.a, test.t1.b, test.t3.a, test.t3.b, test.t4.a, test.t4.b, test.t5.a, test.t5.b, test.t6.a, test.t6.b", + "└─HashJoin 30426.12 root left outer join, equal:[eq(test.t2.b, test.t1.b)]", + " ├─HashJoin(Build) 15593.77 root inner join, equal:[eq(test.t3.b, test.t4.b)]", + " │ ├─TableReader(Build) 9990.00 root data:Selection", + " │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.b))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t4 keep order:false, stats:pseudo", + " │ └─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t1.a, test.t3.a)]", + " │ ├─TableReader(Build) 9980.01 root data:Selection", + " │ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t3.a)), not(isnull(test.t3.b))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", + " │ └─TableReader(Probe) 9980.01 root data:Selection", + " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t1.a)), not(isnull(test.t1.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 15593.77 root inner join, equal:[eq(test.t5.b, test.t6.b)]", + " ├─TableReader(Build) 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t6.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t6 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t5.a, test.t2.a)]", + " ├─TableReader(Build) 9980.01 root data:Selection", + " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t5.a)), not(isnull(test.t5.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t5 keep order:false, stats:pseudo", + " └─TableReader(Probe) 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", + " └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo" ], "Warning": [ - "Warning 1815 There are no matching table names for (t4) in optimizer hint /*+ LEADING(t4, t1) */. Maybe you can use the table alias name" + "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid", + "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" ] }, { - "SQL": "select /*+ leading(t2, t4@sel_2) */ * from (select * from t4) t1 join t2 on t1.a=t2.a join t3 on t2.b=t3.b;", + "SQL": "select /*+ leading(t1, t2) */ * from t4 join t on t4.a=t.a right join t1 on t.a = t1.a join t2 on t1.b = t2.b join t3 on t2.b=t3.b;", "Plan": [ - "Projection 4.69 root test.t4.a, test.t4.b, test.t2.a, test.t2.b, test.t3.a, test.t3.b", - "└─HashJoin 4.69 root inner join, equal:[eq(test.t2.b, test.t3.b)]", - " ├─TableReader(Build) 3.00 root data:Selection", - " │ └─Selection 3.00 cop[tikv] not(isnull(test.t3.b))", - " │ └─TableFullScan 3.00 cop[tikv] table:t3 keep order:false", - " └─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t2.a, test.t4.a)]", - " ├─TableReader(Build) 9980.01 root data:Selection", - " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t2.a)), not(isnull(test.t2.b))", + "HashJoin 24389.65 root right outer join, equal:[eq(test.t.a, test.t1.a)]", + "├─HashJoin(Build) 12487.50 root inner join, equal:[eq(test.t4.a, test.t.a)]", + "│ ├─TableReader(Build) 9990.00 root data:Selection", + "│ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t.a))", + "│ │ └─TableFullScan 10000.00 cop[tikv] table:t keep order:false, stats:pseudo", + "│ └─TableReader(Probe) 9990.00 root data:Selection", + "│ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.a))", + "│ └─TableFullScan 10000.00 cop[tikv] table:t4 keep order:false, stats:pseudo", + "└─HashJoin(Probe) 15609.38 root inner join, equal:[eq(test.t2.b, test.t3.b)]", + " ├─TableReader(Build) 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 12487.50 root inner join, equal:[eq(test.t1.b, test.t2.b)]", + " ├─TableReader(Build) 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.b))", " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", " └─TableReader(Probe) 9990.00 root data:Selection", - " └─Selection 9990.00 cop[tikv] not(isnull(test.t4.a))", - " └─TableFullScan 10000.00 cop[tikv] table:t4 keep order:false, stats:pseudo" + " └─Selection 9990.00 cop[tikv] not(isnull(test.t1.b))", + " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" ], - "Warning": [ - "Warning 1815 There are no matching table names for (t4) in optimizer hint /*+ LEADING(t2, t4) */. Maybe you can use the table alias name" - ] + "Warning": null }, { - "SQL": "select /*+ leading(t3) */ * from t1 join t2 on t1.a=t2.a join (select * from t4) t3 on t2.b=t3.b;", + "SQL": "select /*+ leading(t2, t3) */ * from t4 join t on t4.a=t.a right join t1 on t.a = t1.a join t2 on t1.b = t2.b join t3 on t2.b=t3.b;", "Plan": [ - "Projection 15593.77 root test.t1.a, test.t1.b, test.t2.a, test.t2.b, test.t4.a, test.t4.b", - "└─HashJoin 15593.77 root inner join, equal:[eq(test.t2.b, test.t4.b)]", + "Projection 24389.65 root test.t4.a, test.t4.b, test.t.a, test.t.b, test.t1.a, test.t1.b, test.t2.a, test.t2.b, test.t3.a, test.t3.b", + "└─HashJoin 24389.65 root right outer join, equal:[eq(test.t.a, test.t1.a)]", + " ├─HashJoin(Build) 12487.50 root inner join, equal:[eq(test.t4.a, test.t.a)]", + " │ ├─TableReader(Build) 9990.00 root data:Selection", + " │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t.a))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t keep order:false, stats:pseudo", + " │ └─TableReader(Probe) 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.a))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t4 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 15609.38 root inner join, equal:[eq(test.t2.b, test.t1.b)]", + " ├─TableReader(Build) 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t1.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 12487.50 root inner join, equal:[eq(test.t2.b, test.t3.b)]", + " ├─TableReader(Build) 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", + " └─TableReader(Probe) 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t2.b))", + " └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo" + ], + "Warning": null + }, + { + "SQL": "select /*+ leading(t1, t3) */ * from t4 join t on t4.a=t.a right join t1 on t.a = t1.a join t2 on t1.b = t2.b join t3 on t2.b=t3.b;", + "Plan": [ + "HashJoin 24389.65 root right outer join, equal:[eq(test.t.a, test.t1.a)]", + "├─HashJoin(Build) 12487.50 root inner join, equal:[eq(test.t4.a, test.t.a)]", + "│ ├─TableReader(Build) 9990.00 root data:Selection", + "│ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t.a))", + "│ │ └─TableFullScan 10000.00 cop[tikv] table:t keep order:false, stats:pseudo", + "│ └─TableReader(Probe) 9990.00 root data:Selection", + "│ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.a))", + "│ └─TableFullScan 10000.00 cop[tikv] table:t4 keep order:false, stats:pseudo", + "└─HashJoin(Probe) 15609.38 root inner join, equal:[eq(test.t2.b, test.t3.b)]", " ├─TableReader(Build) 9990.00 root data:Selection", - " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.b))", - " │ └─TableFullScan 10000.00 cop[tikv] table:t4 keep order:false, stats:pseudo", - " └─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t2.a, test.t1.a)]", - " ├─TableReader(Build) 9980.01 root data:Selection", - " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t2.a)), not(isnull(test.t2.b))", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 12487.50 root inner join, equal:[eq(test.t1.b, test.t2.b)]", + " ├─TableReader(Build) 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.b))", " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", " └─TableReader(Probe) 9990.00 root data:Selection", - " └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t1.b))", " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" ], "Warning": [ @@ -4768,608 +8208,835 @@ ] }, { - "SQL": "select /*+ leading(t1) */ t1.a, (select min(t2.a) from t2) from t1 join t3 on t1.a = t3.a;", + "SQL": "select /*+ leading(t3) */ * from t2 right join (t1 left join t3 on t1.a=t3.a) on t2.b=t1.b;", "Plan": [ - "Projection 3.75 root test.t1.a, ->Column#14", - "└─IndexJoin 3.75 root inner join, inner:IndexReader, outer key:test.t3.a, inner key:test.t1.a, equal cond:eq(test.t3.a, test.t1.a)", - " ├─IndexReader(Build) 3.00 root index:IndexFullScan", - " │ └─IndexFullScan 3.00 cop[tikv] table:t3, index:a(a) keep order:false", - " └─IndexReader(Probe) 1.25 root index:Selection", - " └─Selection 1.25 cop[tikv] not(isnull(test.t1.a))", - " └─IndexRangeScan 1.25 cop[tikv] table:t1, index:a(a) range: decided by [eq(test.t1.a, test.t3.a)], keep order:false, stats:pseudo" + "HashJoin 15593.77 root right outer join, equal:[eq(test.t2.b, test.t1.b)]", + "├─TableReader(Build) 9990.00 root data:Selection", + "│ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.b))", + "│ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", + "└─HashJoin(Probe) 12487.50 root left outer join, equal:[eq(test.t1.a, test.t3.a)]", + " ├─TableReader(Build) 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.a))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", + " └─TableReader(Probe) 10000.00 root data:TableFullScan", + " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" ], "Warning": null }, { - "SQL": "select /*+ leading(t1, t2@sel_2) */ t1.a, (select min(t2.a) from t2) from t1 join t3 on t1.a = t3.a;", - "Plan": [ - "Projection 3.75 root test.t1.a, ->Column#14", - "└─IndexJoin 3.75 root inner join, inner:IndexReader, outer key:test.t3.a, inner key:test.t1.a, equal cond:eq(test.t3.a, test.t1.a)", - " ├─IndexReader(Build) 3.00 root index:IndexFullScan", - " │ └─IndexFullScan 3.00 cop[tikv] table:t3, index:a(a) keep order:false", - " └─IndexReader(Probe) 1.25 root index:Selection", - " └─Selection 1.25 cop[tikv] not(isnull(test.t1.a))", - " └─IndexRangeScan 1.25 cop[tikv] table:t1, index:a(a) range: decided by [eq(test.t1.a, test.t3.a)], keep order:false, stats:pseudo" - ], - "Warning": [ - "Warning 1815 There are no matching table names for (t2) in optimizer hint /*+ LEADING(t1, t2) */. Maybe you can use the table alias name", - "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" - ] - }, - { - "SQL": "select /*+ leading(t1, t3) */ t1.a, (select min(t2.a) from t2) from t1 join t3 on t1.a = t3.a;", + "SQL": "select /*+ leading(t2, t1, t3) */ * from t2 right join (t1 left join t3 on t1.a=t3.a) on t2.b=t1.b;", "Plan": [ - "Projection 3.75 root test.t1.a, ->Column#14", - "└─IndexJoin 3.75 root inner join, inner:IndexReader, outer key:test.t3.a, inner key:test.t1.a, equal cond:eq(test.t3.a, test.t1.a)", - " ├─IndexReader(Build) 3.00 root index:IndexFullScan", - " │ └─IndexFullScan 3.00 cop[tikv] table:t3, index:a(a) keep order:false", - " └─IndexReader(Probe) 1.25 root index:Selection", - " └─Selection 1.25 cop[tikv] not(isnull(test.t1.a))", - " └─IndexRangeScan 1.25 cop[tikv] table:t1, index:a(a) range: decided by [eq(test.t1.a, test.t3.a)], keep order:false, stats:pseudo" + "HashJoin 15593.77 root left outer join, equal:[eq(test.t1.a, test.t3.a)]", + "├─TableReader(Build) 9990.00 root data:Selection", + "│ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.a))", + "│ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", + "└─HashJoin(Probe) 12487.50 root right outer join, equal:[eq(test.t2.b, test.t1.b)]", + " ├─TableReader(Build) 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", + " └─TableReader(Probe) 10000.00 root data:TableFullScan", + " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" ], "Warning": null }, { - "SQL": "select /*+ leading(t2@sel_2, t1) */ t1.a, (select min(t2.a) from t2) from t1 join t3 on t1.a = t3.a;", + "SQL": "select /*+ leading(t2, t3) */ * from t2 right join (t1 join t3 on t1.a=t3.a join t4 on t3.b = t4.b) on t2.b=t1.b;", "Plan": [ - "Projection 3.75 root test.t1.a, ->Column#14", - "└─IndexJoin 3.75 root inner join, inner:IndexReader, outer key:test.t3.a, inner key:test.t1.a, equal cond:eq(test.t3.a, test.t1.a)", - " ├─IndexReader(Build) 3.00 root index:IndexFullScan", - " │ └─IndexFullScan 3.00 cop[tikv] table:t3, index:a(a) keep order:false", - " └─IndexReader(Probe) 1.25 root index:Selection", - " └─Selection 1.25 cop[tikv] not(isnull(test.t1.a))", - " └─IndexRangeScan 1.25 cop[tikv] table:t1, index:a(a) range: decided by [eq(test.t1.a, test.t3.a)], keep order:false, stats:pseudo" + "Projection 19492.21 root test.t2.a, test.t2.b, test.t1.a, test.t1.b, test.t3.a, test.t3.b, test.t4.a, test.t4.b", + "└─HashJoin 19492.21 root inner join, equal:[eq(test.t3.b, test.t4.b)]", + " ├─TableReader(Build) 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t4 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 15593.77 root right outer join, equal:[eq(test.t2.b, test.t1.b)]", + " ├─TableReader(Build) 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t3.a, test.t1.a)]", + " ├─TableReader(Build) 9980.01 root data:Selection", + " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t3.a)), not(isnull(test.t3.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", + " └─TableReader(Probe) 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", + " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" ], "Warning": [ - "Warning 1815 There are no matching table names for (t2) in optimizer hint /*+ LEADING(t2, t1) */. Maybe you can use the table alias name", "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" ] }, { - "SQL": "select /*+ leading(t2@sel_2, t3) */ t1.a, (select min(t2.a) from t2) from t1 join t3 on t1.a = t3.a;", + "SQL": "select /*+ leading(t3, t4) */ * from t2 right join (t1 join t3 on t1.a=t3.a join t4 on t3.b = t4.b) on t2.b=t1.b;", "Plan": [ - "Projection 3.75 root test.t1.a, ->Column#14", - "└─IndexJoin 3.75 root inner join, inner:IndexReader, outer key:test.t3.a, inner key:test.t1.a, equal cond:eq(test.t3.a, test.t1.a)", - " ├─IndexReader(Build) 3.00 root index:IndexFullScan", - " │ └─IndexFullScan 3.00 cop[tikv] table:t3, index:a(a) keep order:false", - " └─IndexReader(Probe) 1.25 root index:Selection", - " └─Selection 1.25 cop[tikv] not(isnull(test.t1.a))", - " └─IndexRangeScan 1.25 cop[tikv] table:t1, index:a(a) range: decided by [eq(test.t1.a, test.t3.a)], keep order:false, stats:pseudo" + "Projection 19492.21 root test.t2.a, test.t2.b, test.t1.a, test.t1.b, test.t3.a, test.t3.b, test.t4.a, test.t4.b", + "└─HashJoin 19492.21 root right outer join, equal:[eq(test.t2.b, test.t1.b)]", + " ├─TableReader(Build) 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 15593.77 root inner join, equal:[eq(test.t3.a, test.t1.a)]", + " ├─TableReader(Build) 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t3.b, test.t4.b)]", + " ├─TableReader(Build) 9980.01 root data:Selection", + " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t3.a)), not(isnull(test.t3.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", + " └─TableReader(Probe) 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t4.b))", + " └─TableFullScan 10000.00 cop[tikv] table:t4 keep order:false, stats:pseudo" + ], + "Warning": null + }, + { + "SQL": "select /*+ leading(t3, t4) */ * from t2 right join (t1 join t3 on t1.a=t3.a join t4 on t3.b = t4.b) on t2.b=t1.b join t5 on t2.a = t5.a join t6 on t5.b=t6.b;", + "Plan": [ + "Projection 30456.57 root test.t2.a, test.t2.b, test.t1.a, test.t1.b, test.t3.a, test.t3.b, test.t4.a, test.t4.b, test.t5.a, test.t5.b, test.t6.a, test.t6.b", + "└─HashJoin 30456.57 root inner join, equal:[eq(test.t5.b, test.t6.b)]", + " ├─TableReader(Build) 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t6.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t6 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 24365.26 root inner join, equal:[eq(test.t2.a, test.t5.a)]", + " ├─TableReader(Build) 9980.01 root data:Selection", + " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t5.a)), not(isnull(test.t5.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t5 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 19492.21 root inner join, equal:[eq(test.t1.b, test.t2.b)]", + " ├─TableReader(Build) 9980.01 root data:Selection", + " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t2.a)), not(isnull(test.t2.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 15593.77 root inner join, equal:[eq(test.t3.a, test.t1.a)]", + " ├─TableReader(Build) 9980.01 root data:Selection", + " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t1.a)), not(isnull(test.t1.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t3.b, test.t4.b)]", + " ├─TableReader(Build) 9980.01 root data:Selection", + " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t3.a)), not(isnull(test.t3.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", + " └─TableReader(Probe) 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t4.b))", + " └─TableFullScan 10000.00 cop[tikv] table:t4 keep order:false, stats:pseudo" ], - "Warning": [ - "Warning 1815 There are no matching table names for (t2) in optimizer hint /*+ LEADING(t2, t3) */. Maybe you can use the table alias name", - "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" - ] + "Warning": null }, { - "SQL": "select /*+ leading(t1, t2@sel_2) */ t1.a, (select min(t2.a) from t2) from t1 join t3 on t1.a = t3.a;", + "SQL": "select /*+ leading(t3, t4) leading(t5, t6) */ * from t2 right join (t1 join t3 on t1.a=t3.a join t4 on t3.b = t4.b) on t2.b=t1.b join t5 on t2.a = t5.a join t6 on t5.b=t6.b;", "Plan": [ - "Projection 3.75 root test.t1.a, ->Column#14", - "└─IndexJoin 3.75 root inner join, inner:IndexReader, outer key:test.t3.a, inner key:test.t1.a, equal cond:eq(test.t3.a, test.t1.a)", - " ├─IndexReader(Build) 3.00 root index:IndexFullScan", - " │ └─IndexFullScan 3.00 cop[tikv] table:t3, index:a(a) keep order:false", - " └─IndexReader(Probe) 1.25 root index:Selection", - " └─Selection 1.25 cop[tikv] not(isnull(test.t1.a))", - " └─IndexRangeScan 1.25 cop[tikv] table:t1, index:a(a) range: decided by [eq(test.t1.a, test.t3.a)], keep order:false, stats:pseudo" + "Projection 30456.57 root test.t2.a, test.t2.b, test.t1.a, test.t1.b, test.t3.a, test.t3.b, test.t4.a, test.t4.b, test.t5.a, test.t5.b, test.t6.a, test.t6.b", + "└─HashJoin 30456.57 root inner join, equal:[eq(test.t5.b, test.t6.b)]", + " ├─TableReader(Build) 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t6.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t6 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 24365.26 root inner join, equal:[eq(test.t3.b, test.t4.b)]", + " ├─TableReader(Build) 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t4 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 19492.21 root inner join, equal:[eq(test.t2.a, test.t5.a)]", + " ├─TableReader(Build) 9980.01 root data:Selection", + " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t5.a)), not(isnull(test.t5.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t5 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 15593.77 root inner join, equal:[eq(test.t1.a, test.t3.a)]", + " ├─TableReader(Build) 9980.01 root data:Selection", + " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t3.a)), not(isnull(test.t3.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t2.b, test.t1.b)]", + " ├─TableReader(Build) 9980.01 root data:Selection", + " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t1.a)), not(isnull(test.t1.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", + " └─TableReader(Probe) 9980.01 root data:Selection", + " └─Selection 9980.01 cop[tikv] not(isnull(test.t2.a)), not(isnull(test.t2.b))", + " └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo" ], "Warning": [ - "Warning 1815 There are no matching table names for (t2) in optimizer hint /*+ LEADING(t1, t2) */. Maybe you can use the table alias name", - "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" + "Warning 1815 We can only use one leading hint at most, when multiple leading hints are used, all leading hints will be invalid" ] }, { - "SQL": "select /*+ leading(t3, t2@sel_2) */ t1.a, (select min(t2.a) from t2) from t1 join t3 on t1.a = t3.a;", + "SQL": "select /*+ leading(t3, t4, t5, t6) */ * from t2 right join (t1 join t3 on t1.a=t3.a join t4 on t3.b = t4.b) on t2.b=t1.b join t5 on t2.a = t5.a join t6 on t5.b=t6.b;", "Plan": [ - "Projection 3.75 root test.t1.a, ->Column#14", - "└─IndexJoin 3.75 root inner join, inner:IndexReader, outer key:test.t3.a, inner key:test.t1.a, equal cond:eq(test.t3.a, test.t1.a)", - " ├─IndexReader(Build) 3.00 root index:IndexFullScan", - " │ └─IndexFullScan 3.00 cop[tikv] table:t3, index:a(a) keep order:false", - " └─IndexReader(Probe) 1.25 root index:Selection", - " └─Selection 1.25 cop[tikv] not(isnull(test.t1.a))", - " └─IndexRangeScan 1.25 cop[tikv] table:t1, index:a(a) range: decided by [eq(test.t1.a, test.t3.a)], keep order:false, stats:pseudo" + "Projection 243165526.37 root test.t2.a, test.t2.b, test.t1.a, test.t1.b, test.t3.a, test.t3.b, test.t4.a, test.t4.b, test.t5.a, test.t5.b, test.t6.a, test.t6.b", + "└─HashJoin 243165526.37 root inner join, equal:[eq(test.t3.a, test.t1.a) eq(test.t2.b, test.t1.b)]", + " ├─TableReader(Build) 9980.01 root data:Selection", + " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t1.a)), not(isnull(test.t1.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 194532421.09 root inner join, equal:[eq(test.t5.a, test.t2.a)]", + " ├─TableReader(Build) 9980.01 root data:Selection", + " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t2.a)), not(isnull(test.t2.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 155625936.88 root inner join, equal:[eq(test.t5.b, test.t6.b)]", + " ├─TableReader(Build) 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t6.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t6 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 124500749.50 root CARTESIAN inner join", + " ├─TableReader(Build) 9980.01 root data:Selection", + " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t5.a)), not(isnull(test.t5.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t5 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t3.b, test.t4.b)]", + " ├─TableReader(Build) 9980.01 root data:Selection", + " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t3.a)), not(isnull(test.t3.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", + " └─TableReader(Probe) 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t4.b))", + " └─TableFullScan 10000.00 cop[tikv] table:t4 keep order:false, stats:pseudo" ], - "Warning": [ - "Warning 1815 There are no matching table names for (t2) in optimizer hint /*+ LEADING(t3, t2) */. Maybe you can use the table alias name", - "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" - ] - } - ] - }, - { - "Name": "TestLeadingJoinHint4OuterJoin", - "Cases": [ + "Warning": null + }, { - "SQL": "select /*+ leading(t3, t2) */ * from t2 left join t1 on t2.a=t1.a left join t3 on t1.b=t3.b;", + "SQL": "select /*+ leading(t2) hash_join(t2) */ * from t left join t1 on t.a = t1.a right join t2 on t1.b = t2.b join t3 on t2.b = t3.b ;", "Plan": [ - "HashJoin 15609.38 root left outer join, equal:[eq(test.t2.a, test.t1.a)]", - "├─TableReader(Build) 10000.00 root data:TableFullScan", - "│ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", - "└─HashJoin(Probe) 12487.50 root left outer join, equal:[eq(test.t1.b, test.t3.b)]", + "Projection 19492.21 root test.t.a, test.t.b, test.t1.a, test.t1.b, test.t2.a, test.t2.b, test.t3.a, test.t3.b", + "└─HashJoin 19492.21 root inner join, equal:[eq(test.t3.b, test.t2.b)]", " ├─TableReader(Build) 9990.00 root data:Selection", " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.b))", " │ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", - " └─TableReader(Probe) 9990.00 root data:Selection", - " └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", - " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" + " └─HashJoin(Probe) 15593.77 root right outer join, equal:[eq(test.t1.b, test.t2.b)]", + " ├─TableReader(Build) 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", + " └─Projection(Probe) 12475.01 root test.t.a, test.t.b, test.t1.a, test.t1.b", + " └─HashJoin 12475.01 root inner join, equal:[eq(test.t1.a, test.t.a)]", + " ├─TableReader(Build) 9980.01 root data:Selection", + " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t1.a)), not(isnull(test.t1.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", + " └─TableReader(Probe) 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t.a))", + " └─TableFullScan 10000.00 cop[tikv] table:t keep order:false, stats:pseudo" ], "Warning": [ + "Warning 1815 leading hint is inapplicable, check the join type or the join algorithm hint", "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" ] }, { - "SQL": "select /*+ leading(t3, t1) */ * from t2 left join t1 on t2.a=t1.a left join t3 on t1.b=t3.b;", + "SQL": "select /*+ leading(t2) hash_join(t1) */ * from t left join t1 on t.a = t1.a right join t2 on t1.b = t2.b join t3 on t2.b = t3.b ;", "Plan": [ - "HashJoin 15609.38 root left outer join, equal:[eq(test.t2.a, test.t1.a)]", - "├─TableReader(Build) 10000.00 root data:TableFullScan", - "│ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", - "└─HashJoin(Probe) 12487.50 root left outer join, equal:[eq(test.t1.b, test.t3.b)]", + "HashJoin 19492.21 root right outer join, equal:[eq(test.t1.b, test.t2.b)]", + "├─HashJoin(Build) 12475.01 root inner join, equal:[eq(test.t.a, test.t1.a)]", + "│ ├─TableReader(Build) 9980.01 root data:Selection", + "│ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t1.a)), not(isnull(test.t1.b))", + "│ │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", + "│ └─TableReader(Probe) 9990.00 root data:Selection", + "│ └─Selection 9990.00 cop[tikv] not(isnull(test.t.a))", + "│ └─TableFullScan 10000.00 cop[tikv] table:t keep order:false, stats:pseudo", + "└─HashJoin(Probe) 12487.50 root inner join, equal:[eq(test.t2.b, test.t3.b)]", " ├─TableReader(Build) 9990.00 root data:Selection", " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.b))", " │ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", " └─TableReader(Probe) 9990.00 root data:Selection", - " └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", - " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" + " └─Selection 9990.00 cop[tikv] not(isnull(test.t2.b))", + " └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo" ], "Warning": null }, { - "SQL": "select /*+ leading(t1, t2) */ * from t2 left join t1 on t2.a=t1.a left join t3 on t1.b=t3.b;", + "SQL": "select /*+ leading(t2) hash_join(t3) */ * from t left join t1 on t.a = t1.a right join t2 on t1.b = t2.b join t3 on t2.b = t3.b ;", "Plan": [ - "HashJoin 15609.38 root left outer join, equal:[eq(test.t1.b, test.t3.b)]", + "HashJoin 19492.21 root inner join, equal:[eq(test.t2.b, test.t3.b)]", "├─TableReader(Build) 9990.00 root data:Selection", "│ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.b))", "│ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", - "└─HashJoin(Probe) 12487.50 root left outer join, equal:[eq(test.t2.a, test.t1.a)]", + "└─HashJoin(Probe) 15593.77 root right outer join, equal:[eq(test.t1.b, test.t2.b)]", " ├─TableReader(Build) 9990.00 root data:Selection", - " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", - " │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", - " └─TableReader(Probe) 10000.00 root data:TableFullScan", - " └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo" + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", + " └─Projection(Probe) 12475.01 root test.t.a, test.t.b, test.t1.a, test.t1.b", + " └─HashJoin 12475.01 root inner join, equal:[eq(test.t1.a, test.t.a)]", + " ├─TableReader(Build) 9980.01 root data:Selection", + " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t1.a)), not(isnull(test.t1.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", + " └─TableReader(Probe) 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t.a))", + " └─TableFullScan 10000.00 cop[tikv] table:t keep order:false, stats:pseudo" ], "Warning": null }, { - "SQL": "select /*+ leading(t3) */ * from t2 left join t1 on t2.a=t1.a left join t3 on t1.b=t3.b;", + "SQL": "select /*+ leading(t) hash_join(t2) */ * from t left join t1 on t.a = t1.a left join t2 on t1.b = t2.b join t3 on t2.b = t3.b ;", "Plan": [ - "HashJoin 15609.38 root left outer join, equal:[eq(test.t2.a, test.t1.a)]", - "├─TableReader(Build) 10000.00 root data:TableFullScan", - "│ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", - "└─HashJoin(Probe) 12487.50 root left outer join, equal:[eq(test.t1.b, test.t3.b)]", + "Projection 19492.21 root test.t.a, test.t.b, test.t1.a, test.t1.b, test.t2.a, test.t2.b, test.t3.a, test.t3.b", + "└─HashJoin 19492.21 root inner join, equal:[eq(test.t3.b, test.t2.b)]", " ├─TableReader(Build) 9990.00 root data:Selection", " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.b))", " │ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", - " └─TableReader(Probe) 9990.00 root data:Selection", - " └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", - " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" + " └─HashJoin(Probe) 15593.77 root inner join, equal:[eq(test.t1.b, test.t2.b)]", + " ├─TableReader(Build) 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t.a, test.t1.a)]", + " ├─TableReader(Build) 9980.01 root data:Selection", + " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t1.a)), not(isnull(test.t1.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", + " └─TableReader(Probe) 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t.a))", + " └─TableFullScan 10000.00 cop[tikv] table:t keep order:false, stats:pseudo" ], "Warning": null }, { - "SQL": "select /*+ leading(t2) */ * from t2 left join t1 on t2.a=t1.a left join t3 on t1.b=t3.b;", + "SQL": "select /*+ leading(t) hash_join(t1) */ * from t left join t1 on t.a = t1.a left join t2 on t1.b = t2.b join t3 on t2.b = t3.b ;", + "Plan": [ + "Projection 19492.21 root test.t.a, test.t.b, test.t1.a, test.t1.b, test.t2.a, test.t2.b, test.t3.a, test.t3.b", + "└─HashJoin 19492.21 root inner join, equal:[eq(test.t2.b, test.t1.b)]", + " ├─HashJoin(Build) 12475.01 root inner join, equal:[eq(test.t.a, test.t1.a)]", + " │ ├─TableReader(Build) 9980.01 root data:Selection", + " │ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t1.a)), not(isnull(test.t1.b))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", + " │ └─TableReader(Probe) 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t.a))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t keep order:false, stats:pseudo", + " └─HashJoin(Probe) 12487.50 root inner join, equal:[eq(test.t2.b, test.t3.b)]", + " ├─TableReader(Build) 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", + " └─TableReader(Probe) 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t2.b))", + " └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo" + ], + "Warning": [ + "Warning 1815 leading hint is inapplicable, check the join type or the join algorithm hint", + "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" + ] + }, + { + "SQL": "select /*+ leading(t) hash_join(t3) */ * from t left join t1 on t.a = t1.a left join t2 on t1.b = t2.b join t3 on t2.b = t3.b ;", "Plan": [ - "HashJoin 15609.38 root left outer join, equal:[eq(test.t1.b, test.t3.b)]", + "HashJoin 19492.21 root inner join, equal:[eq(test.t2.b, test.t3.b)]", "├─TableReader(Build) 9990.00 root data:Selection", "│ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.b))", "│ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", - "└─HashJoin(Probe) 12487.50 root left outer join, equal:[eq(test.t2.a, test.t1.a)]", + "└─HashJoin(Probe) 15593.77 root inner join, equal:[eq(test.t1.b, test.t2.b)]", " ├─TableReader(Build) 9990.00 root data:Selection", - " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", - " │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", - " └─TableReader(Probe) 10000.00 root data:TableFullScan", - " └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo" + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t.a, test.t1.a)]", + " ├─TableReader(Build) 9980.01 root data:Selection", + " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t1.a)), not(isnull(test.t1.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", + " └─TableReader(Probe) 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t.a))", + " └─TableFullScan 10000.00 cop[tikv] table:t keep order:false, stats:pseudo" ], "Warning": null }, { - "SQL": "select /*+ leading(t1) */ * from t2 left join t1 on t2.a=t1.a left join t3 on t1.b=t3.b;", + "SQL": "select /*+ leading(t2) INL_JOIN(t1) */ * from t left join t1 on t.a = t1.a right join t2 on t1.b = t2.b join t3 on t2.b = t3.b ;", "Plan": [ - "HashJoin 15609.38 root left outer join, equal:[eq(test.t2.a, test.t1.a)]", - "├─TableReader(Build) 10000.00 root data:TableFullScan", - "│ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", - "└─HashJoin(Probe) 12487.50 root left outer join, equal:[eq(test.t1.b, test.t3.b)]", + "HashJoin 19492.21 root right outer join, equal:[eq(test.t1.b, test.t2.b)]", + "├─IndexJoin(Build) 12475.01 root inner join, inner:IndexLookUp, outer key:test.t.a, inner key:test.t1.a, equal cond:eq(test.t.a, test.t1.a)", + "│ ├─TableReader(Build) 9990.00 root data:Selection", + "│ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t.a))", + "│ │ └─TableFullScan 10000.00 cop[tikv] table:t keep order:false, stats:pseudo", + "│ └─IndexLookUp(Probe) 1.25 root ", + "│ ├─Selection(Build) 1.25 cop[tikv] not(isnull(test.t1.a))", + "│ │ └─IndexRangeScan 1.25 cop[tikv] table:t1, index:a(a) range: decided by [eq(test.t1.a, test.t.a)], keep order:false, stats:pseudo", + "│ └─Selection(Probe) 1.25 cop[tikv] not(isnull(test.t1.b))", + "│ └─TableRowIDScan 1.25 cop[tikv] table:t1 keep order:false, stats:pseudo", + "└─HashJoin(Probe) 12487.50 root inner join, equal:[eq(test.t2.b, test.t3.b)]", " ├─TableReader(Build) 9990.00 root data:Selection", " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.b))", " │ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", " └─TableReader(Probe) 9990.00 root data:Selection", - " └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", - " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" + " └─Selection 9990.00 cop[tikv] not(isnull(test.t2.b))", + " └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo" ], "Warning": null }, { - "SQL": "select /*+ leading(t3, t2, t1) */ * from t2 left join t1 on t2.a=t1.a left join t3 on t1.b=t3.b;", + "SQL": "select /*+ leading(t2) INL_JOIN(t3) */ * from t left join t1 on t.a = t1.a right join t2 on t1.b = t2.b join t3 on t2.b = t3.b ;", "Plan": [ - "HashJoin 15609.38 root left outer join, equal:[eq(test.t2.a, test.t1.a)]", - "├─TableReader(Build) 10000.00 root data:TableFullScan", - "│ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", - "└─HashJoin(Probe) 12487.50 root left outer join, equal:[eq(test.t1.b, test.t3.b)]", + "HashJoin 19492.21 root inner join, equal:[eq(test.t2.b, test.t3.b)]", + "├─TableReader(Build) 9990.00 root data:Selection", + "│ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.b))", + "│ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", + "└─HashJoin(Probe) 15593.77 root right outer join, equal:[eq(test.t1.b, test.t2.b)]", " ├─TableReader(Build) 9990.00 root data:Selection", - " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.b))", - " │ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", - " └─TableReader(Probe) 9990.00 root data:Selection", - " └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", - " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", + " └─Projection(Probe) 12475.01 root test.t.a, test.t.b, test.t1.a, test.t1.b", + " └─HashJoin 12475.01 root inner join, equal:[eq(test.t1.a, test.t.a)]", + " ├─TableReader(Build) 9980.01 root data:Selection", + " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t1.a)), not(isnull(test.t1.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", + " └─TableReader(Probe) 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t.a))", + " └─TableFullScan 10000.00 cop[tikv] table:t keep order:false, stats:pseudo" ], "Warning": [ - "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" + "Warning 1815 Optimizer Hint /*+ INL_JOIN(t3) */ or /*+ TIDB_INLJ(t3) */ is inapplicable" ] }, { - "SQL": "select /*+ leading(t1, t2, t3) */ * from t2 left join t1 on t2.a=t1.a left join t3 on t1.b=t3.b;", + "SQL": "select /*+ leading(t3) INL_JOIN(t1) */ * from t left join t1 on t.a = t1.a right join t2 on t1.b = t2.b join t3 on t2.b = t3.b ;", + "Plan": [ + "Projection 19492.21 root test.t.a, test.t.b, test.t1.a, test.t1.b, test.t2.a, test.t2.b, test.t3.a, test.t3.b", + "└─HashJoin 19492.21 root right outer join, equal:[eq(test.t1.b, test.t2.b)]", + " ├─IndexJoin(Build) 12475.01 root inner join, inner:IndexLookUp, outer key:test.t.a, inner key:test.t1.a, equal cond:eq(test.t.a, test.t1.a)", + " │ ├─TableReader(Build) 9990.00 root data:Selection", + " │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t.a))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t keep order:false, stats:pseudo", + " │ └─IndexLookUp(Probe) 1.25 root ", + " │ ├─Selection(Build) 1.25 cop[tikv] not(isnull(test.t1.a))", + " │ │ └─IndexRangeScan 1.25 cop[tikv] table:t1, index:a(a) range: decided by [eq(test.t1.a, test.t.a)], keep order:false, stats:pseudo", + " │ └─Selection(Probe) 1.25 cop[tikv] not(isnull(test.t1.b))", + " │ └─TableRowIDScan 1.25 cop[tikv] table:t1 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 12487.50 root inner join, equal:[eq(test.t3.b, test.t2.b)]", + " ├─TableReader(Build) 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", + " └─TableReader(Probe) 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t3.b))", + " └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo" + ], + "Warning": null + }, + { + "SQL": "select /*+ leading(t3) INL_JOIN(t3) */ * from t left join t1 on t.a = t1.a right join t2 on t1.b = t2.b join t3 on t2.b = t3.b ;", "Plan": [ - "HashJoin 15609.38 root left outer join, equal:[eq(test.t1.b, test.t3.b)]", + "HashJoin 19492.21 root inner join, equal:[eq(test.t2.b, test.t3.b)]", "├─TableReader(Build) 9990.00 root data:Selection", "│ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.b))", "│ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", - "└─HashJoin(Probe) 12487.50 root left outer join, equal:[eq(test.t2.a, test.t1.a)]", + "└─HashJoin(Probe) 15593.77 root right outer join, equal:[eq(test.t1.b, test.t2.b)]", " ├─TableReader(Build) 9990.00 root data:Selection", - " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", - " │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", - " └─TableReader(Probe) 10000.00 root data:TableFullScan", - " └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo" + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", + " └─Projection(Probe) 12475.01 root test.t.a, test.t.b, test.t1.a, test.t1.b", + " └─HashJoin 12475.01 root inner join, equal:[eq(test.t1.a, test.t.a)]", + " ├─TableReader(Build) 9980.01 root data:Selection", + " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t1.a)), not(isnull(test.t1.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", + " └─TableReader(Probe) 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t.a))", + " └─TableFullScan 10000.00 cop[tikv] table:t keep order:false, stats:pseudo" ], - "Warning": null + "Warning": [ + "Warning 1815 leading hint is inapplicable, check the join type or the join algorithm hint", + "Warning 1815 Optimizer Hint INL_JOIN or TIDB_INLJ is inapplicable" + ] }, { - "SQL": "select /*+ leading(t3, t1, t2) */ * from t2 left join t1 on t2.a=t1.a left join t3 on t1.b=t3.b;", + "SQL": "select /*+ leading(t2) merge_join(t2) */ * from t left join t1 on t.a = t1.a right join t2 on t1.b = t2.b join t3 on t2.b = t3.b ;", "Plan": [ - "HashJoin 15609.38 root left outer join, equal:[eq(test.t2.a, test.t1.a)]", - "├─TableReader(Build) 10000.00 root data:TableFullScan", - "│ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", - "└─HashJoin(Probe) 12487.50 root left outer join, equal:[eq(test.t1.b, test.t3.b)]", + "Projection 19492.21 root test.t.a, test.t.b, test.t1.a, test.t1.b, test.t2.a, test.t2.b, test.t3.a, test.t3.b", + "└─HashJoin 19492.21 root inner join, equal:[eq(test.t3.b, test.t2.b)]", " ├─TableReader(Build) 9990.00 root data:Selection", " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.b))", " │ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", - " └─TableReader(Probe) 9990.00 root data:Selection", - " └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", - " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" + " └─MergeJoin(Probe) 15593.77 root right outer join, left key:test.t1.b, right key:test.t2.b", + " ├─Sort(Build) 12475.01 root test.t1.b", + " │ └─Projection 12475.01 root test.t.a, test.t.b, test.t1.a, test.t1.b", + " │ └─HashJoin 12475.01 root inner join, equal:[eq(test.t1.a, test.t.a)]", + " │ ├─TableReader(Build) 9980.01 root data:Selection", + " │ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t1.a)), not(isnull(test.t1.b))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", + " │ └─TableReader(Probe) 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t.a))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t keep order:false, stats:pseudo", + " └─Sort(Probe) 9990.00 root test.t2.b", + " └─TableReader 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t2.b))", + " └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo" + ], + "Warning": [ + "Warning 1815 leading hint is inapplicable, check the join type or the join algorithm hint", + "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" + ] + }, + { + "SQL": "select /*+ leading(t1) merge_join(t2) */ * from t join t1 on t.a = t1.a left join t2 on t1.b = t2.b join t3 on t2.b = t3.b ;", + "Plan": [ + "Projection 19492.21 root test.t.a, test.t.b, test.t1.a, test.t1.b, test.t2.a, test.t2.b, test.t3.a, test.t3.b", + "└─HashJoin 19492.21 root inner join, equal:[eq(test.t3.b, test.t2.b)]", + " ├─TableReader(Build) 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", + " └─MergeJoin(Probe) 15593.77 root inner join, left key:test.t1.b, right key:test.t2.b", + " ├─Sort(Build) 9990.00 root test.t2.b", + " │ └─TableReader 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", + " └─Sort(Probe) 12475.01 root test.t1.b", + " └─Projection 12475.01 root test.t.a, test.t.b, test.t1.a, test.t1.b", + " └─HashJoin 12475.01 root inner join, equal:[eq(test.t1.a, test.t.a)]", + " ├─TableReader(Build) 9980.01 root data:Selection", + " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t1.a)), not(isnull(test.t1.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", + " └─TableReader(Probe) 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t.a))", + " └─TableFullScan 10000.00 cop[tikv] table:t keep order:false, stats:pseudo" + ], + "Warning": null + }, + { + "SQL": "select /*+ leading(t2) merge_join(t3) */ * from t left join t1 on t.a = t1.a right join t2 on t1.b = t2.b join t3 on t2.b = t3.b ;", + "Plan": [ + "MergeJoin 19492.21 root inner join, left key:test.t2.b, right key:test.t3.b", + "├─Sort(Build) 9990.00 root test.t3.b", + "│ └─TableReader 9990.00 root data:Selection", + "│ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.b))", + "│ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", + "└─Sort(Probe) 15593.77 root test.t2.b", + " └─HashJoin 15593.77 root right outer join, equal:[eq(test.t1.b, test.t2.b)]", + " ├─TableReader(Build) 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", + " └─Projection(Probe) 12475.01 root test.t.a, test.t.b, test.t1.a, test.t1.b", + " └─HashJoin 12475.01 root inner join, equal:[eq(test.t1.a, test.t.a)]", + " ├─TableReader(Build) 9980.01 root data:Selection", + " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t1.a)), not(isnull(test.t1.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", + " └─TableReader(Probe) 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t.a))", + " └─TableFullScan 10000.00 cop[tikv] table:t keep order:false, stats:pseudo" ], "Warning": null }, { - "SQL": "select /*+ leading(t2) */ * from t2 left join (t1 left join t3 on t1.a=t3.a) on t2.a=1;", + "SQL": "select /*+ leading(t3) merge_join(t3) */ * from t join t1 on t.a = t1.a join t2 on t1.b = t2.b join t3 on t2.b = t3.b ;", "Plan": [ - "HashJoin 124875000.00 root CARTESIAN left outer join, left cond:[eq(test.t2.a, 1)]", - "├─HashJoin(Build) 12487.50 root left outer join, equal:[eq(test.t1.a, test.t3.a)]", - "│ ├─TableReader(Build) 9990.00 root data:Selection", - "│ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.a))", - "│ │ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", - "│ └─TableReader(Probe) 10000.00 root data:TableFullScan", - "│ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", - "└─TableReader(Probe) 10000.00 root data:TableFullScan", - " └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo" + "MergeJoin 19492.21 root inner join, left key:test.t2.b, right key:test.t3.b", + "├─Sort(Build) 9990.00 root test.t3.b", + "│ └─TableReader 9990.00 root data:Selection", + "│ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.b))", + "│ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", + "└─Sort(Probe) 15593.77 root test.t2.b", + " └─Projection 15593.77 root test.t.a, test.t.b, test.t1.a, test.t1.b, test.t2.a, test.t2.b", + " └─HashJoin 15593.77 root inner join, equal:[eq(test.t1.b, test.t2.b)]", + " ├─TableReader(Build) 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t1.a, test.t.a)]", + " ├─TableReader(Build) 9980.01 root data:Selection", + " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t1.a)), not(isnull(test.t1.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", + " └─TableReader(Probe) 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t.a))", + " └─TableFullScan 10000.00 cop[tikv] table:t keep order:false, stats:pseudo" ], "Warning": [ "Warning 1815 leading hint is inapplicable, check the join type or the join algorithm hint" ] }, { - "SQL": "select /*+ leading(t1) */ * from t2 left join (t1 left join t3 on t1.a=t3.a) on t2.a=1;", + "SQL": "select /*+ leading(t3) merge_join(t2) */ * from t right join t1 on t.a = t1.a join t2 on t1.b = t2.b join t3 on t2.b = t3.b ;", "Plan": [ - "HashJoin 124875000.00 root CARTESIAN left outer join, left cond:[eq(test.t2.a, 1)]", - "├─HashJoin(Build) 12487.50 root left outer join, equal:[eq(test.t1.a, test.t3.a)]", - "│ ├─TableReader(Build) 9990.00 root data:Selection", - "│ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.a))", - "│ │ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", - "│ └─TableReader(Probe) 10000.00 root data:TableFullScan", - "│ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", - "└─TableReader(Probe) 10000.00 root data:TableFullScan", - " └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo" + "Projection 19511.72 root test.t.a, test.t.b, test.t1.a, test.t1.b, test.t2.a, test.t2.b, test.t3.a, test.t3.b", + "└─HashJoin 19511.72 root inner join, equal:[eq(test.t3.b, test.t2.b)]", + " ├─TableReader(Build) 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", + " └─MergeJoin(Probe) 15609.38 root inner join, left key:test.t1.b, right key:test.t2.b", + " ├─Sort(Build) 9990.00 root test.t2.b", + " │ └─TableReader 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", + " └─Sort(Probe) 12487.50 root test.t1.b", + " └─HashJoin 12487.50 root right outer join, equal:[eq(test.t.a, test.t1.a)]", + " ├─TableReader(Build) 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t.a))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t keep order:false, stats:pseudo", + " └─TableReader(Probe) 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t1.b))", + " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" ], "Warning": null }, { - "SQL": "select /*+ leading(t3) */ * from t2 left join (t1 left join t3 on t1.a=t3.a) on t2.a=1;", + "SQL": "select /*+ leading(t3) merge_join(t2) */ * from t right join t1 on t.a = t1.a join t2 on t1.b = t2.b join t3 on t2.b = t3.b ;", "Plan": [ - "HashJoin 124875000.00 root CARTESIAN left outer join, left cond:[eq(test.t2.a, 1)]", - "├─HashJoin(Build) 12487.50 root left outer join, equal:[eq(test.t1.a, test.t3.a)]", - "│ ├─TableReader(Build) 9990.00 root data:Selection", - "│ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.a))", - "│ │ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", - "│ └─TableReader(Probe) 10000.00 root data:TableFullScan", - "│ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", - "└─TableReader(Probe) 10000.00 root data:TableFullScan", - " └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo" + "Projection 19511.72 root test.t.a, test.t.b, test.t1.a, test.t1.b, test.t2.a, test.t2.b, test.t3.a, test.t3.b", + "└─HashJoin 19511.72 root inner join, equal:[eq(test.t3.b, test.t2.b)]", + " ├─TableReader(Build) 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", + " └─MergeJoin(Probe) 15609.38 root inner join, left key:test.t1.b, right key:test.t2.b", + " ├─Sort(Build) 9990.00 root test.t2.b", + " │ └─TableReader 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", + " └─Sort(Probe) 12487.50 root test.t1.b", + " └─HashJoin 12487.50 root right outer join, equal:[eq(test.t.a, test.t1.a)]", + " ├─TableReader(Build) 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t.a))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t keep order:false, stats:pseudo", + " └─TableReader(Probe) 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t1.b))", + " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" ], "Warning": null }, { - "SQL": "select /*+ leading(t2, t1) */ * from t2 left join (t1 left join t3 on t1.a=t3.a) on t2.a=1;", + "SQL": "select /*+ leading(t3) merge_join(t3) */ * from t right join t1 on t.a = t1.a join t2 on t1.b = t2.b join t3 on t2.b = t3.b ;", "Plan": [ - "HashJoin 124875000.00 root CARTESIAN left outer join, left cond:[eq(test.t2.a, 1)]", - "├─HashJoin(Build) 12487.50 root left outer join, equal:[eq(test.t1.a, test.t3.a)]", - "│ ├─TableReader(Build) 9990.00 root data:Selection", - "│ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.a))", - "│ │ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", - "│ └─TableReader(Probe) 10000.00 root data:TableFullScan", - "│ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", - "└─TableReader(Probe) 10000.00 root data:TableFullScan", - " └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo" + "MergeJoin 19511.72 root inner join, left key:test.t2.b, right key:test.t3.b", + "├─Sort(Build) 9990.00 root test.t3.b", + "│ └─TableReader 9990.00 root data:Selection", + "│ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.b))", + "│ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", + "└─Sort(Probe) 15609.38 root test.t2.b", + " └─HashJoin 15609.38 root inner join, equal:[eq(test.t1.b, test.t2.b)]", + " ├─TableReader(Build) 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 12487.50 root right outer join, equal:[eq(test.t.a, test.t1.a)]", + " ├─TableReader(Build) 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t.a))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t keep order:false, stats:pseudo", + " └─TableReader(Probe) 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t1.b))", + " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" ], "Warning": [ - "Warning 1815 leading hint is inapplicable, check the join type or the join algorithm hint", - "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" + "Warning 1815 leading hint is inapplicable, check the join type or the join algorithm hint" ] }, { - "SQL": "select /*+ leading(t2, t3) */ * from t2 left join (t1 left join t3 on t1.a=t3.a) on t2.a=1;", + "SQL": "select /*+ leading(t3) merge_join(t3) */ * from t left join t1 on t.a = t1.a left join t2 on t1.b = t2.b join t3 on t2.b = t3.b ;", "Plan": [ - "HashJoin 124875000.00 root CARTESIAN left outer join, left cond:[eq(test.t2.a, 1)]", - "├─HashJoin(Build) 12487.50 root left outer join, equal:[eq(test.t1.a, test.t3.a)]", - "│ ├─TableReader(Build) 9990.00 root data:Selection", - "│ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.a))", - "│ │ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", - "│ └─TableReader(Probe) 10000.00 root data:TableFullScan", - "│ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", - "└─TableReader(Probe) 10000.00 root data:TableFullScan", - " └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo" + "MergeJoin 19492.21 root inner join, left key:test.t2.b, right key:test.t3.b", + "├─Sort(Build) 9990.00 root test.t3.b", + "│ └─TableReader 9990.00 root data:Selection", + "│ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.b))", + "│ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", + "└─Sort(Probe) 15593.77 root test.t2.b", + " └─Projection 15593.77 root test.t.a, test.t.b, test.t1.a, test.t1.b, test.t2.a, test.t2.b", + " └─HashJoin 15593.77 root inner join, equal:[eq(test.t1.b, test.t2.b)]", + " ├─TableReader(Build) 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t1.a, test.t.a)]", + " ├─TableReader(Build) 9980.01 root data:Selection", + " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t1.a)), not(isnull(test.t1.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", + " └─TableReader(Probe) 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t.a))", + " └─TableFullScan 10000.00 cop[tikv] table:t keep order:false, stats:pseudo" ], "Warning": [ - "Warning 1815 leading hint is inapplicable, check the join type or the join algorithm hint", - "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" + "Warning 1815 leading hint is inapplicable, check the join type or the join algorithm hint" ] }, { - "SQL": "select /*+ leading(t3, t1) */ * from t2 left join (t1 left join t3 on t1.a=t3.a) on t2.a=1;", + "SQL": "select /*+ leading(t2) INL_JOIN(t1) */ * from t join t1 on t.a = t1.a left join t2 on t1.b = t2.b join t3 on t2.b = t3.b ;", "Plan": [ - "HashJoin 124875000.00 root CARTESIAN left outer join, left cond:[eq(test.t2.a, 1)]", - "├─HashJoin(Build) 12487.50 root left outer join, equal:[eq(test.t1.a, test.t3.a)]", - "│ ├─TableReader(Build) 9990.00 root data:Selection", - "│ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.a))", - "│ │ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", - "│ └─TableReader(Probe) 10000.00 root data:TableFullScan", - "│ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", - "└─TableReader(Probe) 10000.00 root data:TableFullScan", - " └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo" + "Projection 19492.21 root test.t.a, test.t.b, test.t1.a, test.t1.b, test.t2.a, test.t2.b, test.t3.a, test.t3.b", + "└─HashJoin 19492.21 root inner join, equal:[eq(test.t2.b, test.t1.b)]", + " ├─IndexJoin(Build) 12475.01 root inner join, inner:IndexLookUp, outer key:test.t.a, inner key:test.t1.a, equal cond:eq(test.t.a, test.t1.a)", + " │ ├─TableReader(Build) 9990.00 root data:Selection", + " │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t.a))", + " │ │ └─TableFullScan 10000.00 cop[tikv] table:t keep order:false, stats:pseudo", + " │ └─IndexLookUp(Probe) 1.25 root ", + " │ ├─Selection(Build) 1.25 cop[tikv] not(isnull(test.t1.a))", + " │ │ └─IndexRangeScan 1.25 cop[tikv] table:t1, index:a(a) range: decided by [eq(test.t1.a, test.t.a)], keep order:false, stats:pseudo", + " │ └─Selection(Probe) 1.25 cop[tikv] not(isnull(test.t1.b))", + " │ └─TableRowIDScan 1.25 cop[tikv] table:t1 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 12487.50 root inner join, equal:[eq(test.t2.b, test.t3.b)]", + " ├─TableReader(Build) 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", + " └─TableReader(Probe) 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t2.b))", + " └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo" ], "Warning": null }, { - "SQL": "select /*+ leading(t2, t1, t3) */ * from t2 left join (t1 left join t3 on t1.a=t3.a) on t2.a=1;", + "SQL": "select /*+ leading(t4) */ * from t1 join t2 on t1.a=t2.a right join t4 on t1.b = t4.b where t1.a in (select t3.a from t3 where t1.b = t3.b)", "Plan": [ - "HashJoin 124875000.00 root CARTESIAN left outer join, left cond:[eq(test.t2.a, 1)]", - "├─HashJoin(Build) 12487.50 root left outer join, equal:[eq(test.t1.a, test.t3.a)]", - "│ ├─TableReader(Build) 9990.00 root data:Selection", - "│ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.a))", - "│ │ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", - "│ └─TableReader(Probe) 10000.00 root data:TableFullScan", - "│ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", - "└─TableReader(Probe) 10000.00 root data:TableFullScan", - " └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo" + "HashJoin 12475.01 root semi join, equal:[eq(test.t1.b, test.t3.b) eq(test.t1.a, test.t3.a)]", + "├─TableReader(Build) 9980.01 root data:Selection", + "│ └─Selection 9980.01 cop[tikv] not(isnull(test.t3.a)), not(isnull(test.t3.b))", + "│ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", + "└─Projection(Probe) 15593.77 root test.t1.a, test.t1.b, test.t2.a, test.t2.b, test.t4.a, test.t4.b", + " └─HashJoin 15593.77 root inner join, equal:[eq(test.t1.a, test.t2.a)]", + " ├─TableReader(Build) 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t4.b, test.t1.b)]", + " ├─TableReader(Build) 9980.01 root data:Selection", + " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t1.a)), not(isnull(test.t1.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", + " └─TableReader(Probe) 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t4.b))", + " └─TableFullScan 10000.00 cop[tikv] table:t4 keep order:false, stats:pseudo" ], - "Warning": [ - "Warning 1815 leading hint is inapplicable, check the join type or the join algorithm hint", - "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" - ] + "Warning": null }, { - "SQL": "select /*+ leading(t1, t3, t2) */ * from t2 left join (t1 left join t3 on t1.a=t3.a) on t2.a=1;", + "SQL": "select /*+ leading(t3@sel_2) */ * from t1 left join t2 on t1.a=t2.a where t1.a in (select t3.a from t3 where t1.b = t3.b)", "Plan": [ - "HashJoin 124875000.00 root CARTESIAN left outer join, left cond:[eq(test.t2.a, 1)]", - "├─HashJoin(Build) 12487.50 root left outer join, equal:[eq(test.t1.a, test.t3.a)]", - "│ ├─TableReader(Build) 9990.00 root data:Selection", - "│ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.a))", - "│ │ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", - "│ └─TableReader(Probe) 10000.00 root data:TableFullScan", - "│ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", - "└─TableReader(Probe) 10000.00 root data:TableFullScan", - " └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo" + "HashJoin 9980.01 root semi join, equal:[eq(test.t1.b, test.t3.b) eq(test.t1.a, test.t3.a)]", + "├─TableReader(Build) 9980.01 root data:Selection", + "│ └─Selection 9980.01 cop[tikv] not(isnull(test.t3.a)), not(isnull(test.t3.b))", + "│ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", + "└─HashJoin(Probe) 12475.01 root left outer join, equal:[eq(test.t1.a, test.t2.a)]", + " ├─TableReader(Build) 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", + " └─TableReader(Probe) 9980.01 root data:Selection", + " └─Selection 9980.01 cop[tikv] not(isnull(test.t1.a)), not(isnull(test.t1.b))", + " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" ], "Warning": [ - "Warning 1815 leading hint is inapplicable, check the join type or the join algorithm hint", - "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" + "Warning 1815 There are no matching table names for (t3) in optimizer hint /*+ LEADING(t3) */. Maybe you can use the table alias name" ] }, { - "SQL": "select /*+ leading(t2, t3, t1) */ * from t2 left join (t1 left join t3 on t1.a=t3.a) on t2.a=1;", + "SQL": "select /*+ leading(t2, t3@sel_2) */ * from t1 right join t2 on t1.a=t2.a where t1.a in (select t3.a from t3 where t1.b = t3.b)", "Plan": [ - "HashJoin 124875000.00 root CARTESIAN left outer join, left cond:[eq(test.t2.a, 1)]", - "├─HashJoin(Build) 12487.50 root left outer join, equal:[eq(test.t1.a, test.t3.a)]", - "│ ├─TableReader(Build) 9990.00 root data:Selection", - "│ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.a))", - "│ │ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", - "│ └─TableReader(Probe) 10000.00 root data:TableFullScan", - "│ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", - "└─TableReader(Probe) 10000.00 root data:TableFullScan", - " └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo" + "HashJoin 9980.01 root semi join, equal:[eq(test.t1.b, test.t3.b) eq(test.t1.a, test.t3.a)]", + "├─TableReader(Build) 9980.01 root data:Selection", + "│ └─Selection 9980.01 cop[tikv] not(isnull(test.t3.a)), not(isnull(test.t3.b))", + "│ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", + "└─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t1.a, test.t2.a)]", + " ├─TableReader(Build) 9980.01 root data:Selection", + " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t1.a)), not(isnull(test.t1.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", + " └─TableReader(Probe) 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", + " └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo" ], "Warning": [ - "Warning 1815 leading hint is inapplicable, check the join type or the join algorithm hint", + "Warning 1815 There are no matching table names for (t3) in optimizer hint /*+ LEADING(t2, t3) */. Maybe you can use the table alias name", "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" ] }, { - "SQL": "select /*+ leading(t1) */ * from t2 left join (t1 left join t3 on t1.a=t3.a) on t2.a=t3.a;", - "Plan": [ - "HashJoin 15609.38 root left outer join, equal:[eq(test.t2.a, test.t3.a)]", - "├─TableReader(Build) 10000.00 root data:TableFullScan", - "│ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", - "└─HashJoin(Probe) 12487.50 root inner join, equal:[eq(test.t1.a, test.t3.a)]", - " ├─TableReader(Build) 9990.00 root data:Selection", - " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.a))", - " │ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", - " └─TableReader(Probe) 9990.00 root data:Selection", - " └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", - " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" - ], - "Warning": null - }, - { - "SQL": "select /*+ leading(t2) */ * from t2 left join (t1 left join t3 on t1.a=t3.a) on t2.a=t3.a;", - "Plan": [ - "HashJoin 15609.38 root left outer join, equal:[eq(test.t2.a, test.t3.a)]", - "├─TableReader(Build) 10000.00 root data:TableFullScan", - "│ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", - "└─HashJoin(Probe) 12487.50 root inner join, equal:[eq(test.t1.a, test.t3.a)]", - " ├─TableReader(Build) 9990.00 root data:Selection", - " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.a))", - " │ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", - " └─TableReader(Probe) 9990.00 root data:Selection", - " └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", - " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" - ], - "Warning": null - }, - { - "SQL": "select /*+ leading(t3) */ * from t2 left join (t1 left join t3 on t1.a=t3.a) on t2.a=t3.a;", + "SQL": "select /*+ leading(t4) */ * from t1 join t2 on t1.a=t2.a right join t4 on t1.b = t4.b where t1.a not in (select t3.a from t3 where t1.b = t3.b)", "Plan": [ - "HashJoin 15609.38 root left outer join, equal:[eq(test.t2.a, test.t3.a)]", + "HashJoin 12475.01 root anti semi join, equal:[eq(test.t1.b, test.t3.b)], other cond:eq(test.t1.a, test.t3.a)", "├─TableReader(Build) 10000.00 root data:TableFullScan", - "│ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", - "└─Projection(Probe) 12487.50 root test.t1.a, test.t1.b, test.t3.a, test.t3.b", - " └─HashJoin 12487.50 root inner join, equal:[eq(test.t3.a, test.t1.a)]", - " ├─TableReader(Build) 9990.00 root data:Selection", - " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", + "│ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", + "└─HashJoin(Probe) 15593.77 root right outer join, equal:[eq(test.t1.b, test.t4.b)]", + " ├─TableReader(Build) 10000.00 root data:TableFullScan", + " │ └─TableFullScan 10000.00 cop[tikv] table:t4 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t1.a, test.t2.a)]", + " ├─TableReader(Build) 9980.01 root data:Selection", + " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t1.a)), not(isnull(test.t1.b))", " │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", " └─TableReader(Probe) 9990.00 root data:Selection", - " └─Selection 9990.00 cop[tikv] not(isnull(test.t3.a))", - " └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo" + " └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", + " └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo" ], "Warning": null }, { - "SQL": "select /*+ leading(t1, t2) */ * from t2 left join (t1 left join t3 on t1.a=t3.a) on t2.a=t3.a;", + "SQL": "select /*+ leading(t3@sel_2) */ * from t1 left join t2 on t1.a=t2.a where t1.a not in (select t3.a from t3 where t1.b = t3.b)", "Plan": [ - "HashJoin 15609.38 root left outer join, equal:[eq(test.t2.a, test.t3.a)]", + "HashJoin 9990.00 root anti semi join, equal:[eq(test.t1.b, test.t3.b)], other cond:eq(test.t1.a, test.t3.a)", "├─TableReader(Build) 10000.00 root data:TableFullScan", - "│ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", - "└─HashJoin(Probe) 12487.50 root inner join, equal:[eq(test.t1.a, test.t3.a)]", + "│ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", + "└─HashJoin(Probe) 12487.50 root left outer join, equal:[eq(test.t1.a, test.t2.a)]", " ├─TableReader(Build) 9990.00 root data:Selection", - " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.a))", - " │ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", - " └─TableReader(Probe) 9990.00 root data:Selection", - " └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", - " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", + " └─TableReader(Probe) 10000.00 root data:TableFullScan", + " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" ], "Warning": [ - "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid", - "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" + "Warning 1815 There are no matching table names for (t3) in optimizer hint /*+ LEADING(t3) */. Maybe you can use the table alias name" ] }, { - "SQL": "select /*+ leading(t3, t2) */ * from t2 left join (t1 left join t3 on t1.a=t3.a) on t2.a=t3.a;", + "SQL": "select /*+ leading(t2, t3@sel_2) */ * from t1 right join t2 on t1.a=t2.a where t1.a not in (select t3.a from t3 where t1.b = t3.b)", "Plan": [ - "HashJoin 15609.38 root left outer join, equal:[eq(test.t2.a, test.t3.a)]", + "HashJoin 9990.00 root anti semi join, equal:[eq(test.t1.b, test.t3.b)], other cond:eq(test.t1.a, test.t3.a)", "├─TableReader(Build) 10000.00 root data:TableFullScan", - "│ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", - "└─HashJoin(Probe) 12487.50 root inner join, equal:[eq(test.t1.a, test.t3.a)]", + "│ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", + "└─HashJoin(Probe) 12487.50 root right outer join, equal:[eq(test.t1.a, test.t2.a)]", " ├─TableReader(Build) 9990.00 root data:Selection", - " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.a))", - " │ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", - " └─TableReader(Probe) 9990.00 root data:Selection", - " └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", - " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", + " └─TableReader(Probe) 10000.00 root data:TableFullScan", + " └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo" ], "Warning": [ - "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid", + "Warning 1815 There are no matching table names for (t3) in optimizer hint /*+ LEADING(t2, t3) */. Maybe you can use the table alias name", "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" ] }, { - "SQL": "select /*+ leading(t1, t3) */ * from t2 left join (t1 left join t3 on t1.a=t3.a) on t2.a=t3.a;", - "Plan": [ - "HashJoin 15609.38 root left outer join, equal:[eq(test.t2.a, test.t3.a)]", - "├─TableReader(Build) 10000.00 root data:TableFullScan", - "│ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", - "└─HashJoin(Probe) 12487.50 root inner join, equal:[eq(test.t1.a, test.t3.a)]", - " ├─TableReader(Build) 9990.00 root data:Selection", - " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.a))", - " │ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", - " └─TableReader(Probe) 9990.00 root data:Selection", - " └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", - " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" - ], - "Warning": null - }, - { - "SQL": "select /*+ leading(t1, t2, t3) */ * from t2 left join (t1 left join t3 on t1.a=t3.a) on t2.a=t3.a;", + "SQL": "select /*+ leading(t4) */ * from t1 join t2 on t1.a=t2.a right join t4 on t1.b = t4.b where exists (select t3.a from t3 where t1.b = t3.b)", "Plan": [ - "HashJoin 15609.38 root left outer join, equal:[eq(test.t2.a, test.t3.a)]", - "├─TableReader(Build) 10000.00 root data:TableFullScan", - "│ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", - "└─HashJoin(Probe) 12487.50 root inner join, equal:[eq(test.t1.a, test.t3.a)]", - " ├─TableReader(Build) 9990.00 root data:Selection", - " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.a))", - " │ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", - " └─TableReader(Probe) 9990.00 root data:Selection", - " └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", - " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" + "HashJoin 12475.01 root semi join, equal:[eq(test.t1.b, test.t3.b)]", + "├─TableReader(Build) 9990.00 root data:Selection", + "│ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.b))", + "│ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", + "└─Projection(Probe) 15593.77 root test.t1.a, test.t1.b, test.t2.a, test.t2.b, test.t4.a, test.t4.b", + " └─HashJoin 15593.77 root inner join, equal:[eq(test.t1.a, test.t2.a)]", + " ├─TableReader(Build) 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t4.b, test.t1.b)]", + " ├─TableReader(Build) 9980.01 root data:Selection", + " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t1.a)), not(isnull(test.t1.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", + " └─TableReader(Probe) 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t4.b))", + " └─TableFullScan 10000.00 cop[tikv] table:t4 keep order:false, stats:pseudo" ], - "Warning": [ - "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid", - "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" - ] + "Warning": null }, { - "SQL": "select /*+ leading(t3, t1, t2) */ * from t2 left join (t1 left join t3 on t1.a=t3.a) on t2.a=t3.a;", + "SQL": "select /*+ leading(t3@sel_2) */ * from t1 left join t2 on t1.a=t2.a where exists (select t3.a from t3 where t1.b = t3.b)", "Plan": [ - "HashJoin 15609.38 root left outer join, equal:[eq(test.t2.a, test.t3.a)]", - "├─TableReader(Build) 10000.00 root data:TableFullScan", - "│ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", - "└─HashJoin(Probe) 12487.50 root inner join, equal:[eq(test.t1.a, test.t3.a)]", + "HashJoin 9990.00 root semi join, equal:[eq(test.t1.b, test.t3.b)]", + "├─TableReader(Build) 9990.00 root data:Selection", + "│ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.b))", + "│ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", + "└─HashJoin(Probe) 12487.50 root left outer join, equal:[eq(test.t1.a, test.t2.a)]", " ├─TableReader(Build) 9990.00 root data:Selection", - " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.a))", - " │ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", " └─TableReader(Probe) 9990.00 root data:Selection", - " └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t1.b))", " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" ], "Warning": [ - "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid", - "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" + "Warning 1815 There are no matching table names for (t3) in optimizer hint /*+ LEADING(t3) */. Maybe you can use the table alias name" ] }, { - "SQL": "select /*+ leading(t1) */ * from (t1 left join t2 on t1.a=t2.a) left join (t3 left join t4 on t3.a=t4.a) on t2.a=t4.a;", + "SQL": "select /*+ leading(t2, t3@sel_2) */ * from t1 right join t2 on t1.a=t2.a where exists (select t3.a from t3 where t1.b = t3.b)", "Plan": [ - "HashJoin 19511.72 root left outer join, equal:[eq(test.t2.a, test.t4.a)]", - "├─HashJoin(Build) 12487.50 root inner join, equal:[eq(test.t3.a, test.t4.a)]", - "│ ├─TableReader(Build) 9990.00 root data:Selection", - "│ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.a))", - "│ │ └─TableFullScan 10000.00 cop[tikv] table:t4 keep order:false, stats:pseudo", - "│ └─TableReader(Probe) 9990.00 root data:Selection", - "│ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.a))", - "│ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", - "└─HashJoin(Probe) 12487.50 root left outer join, equal:[eq(test.t1.a, test.t2.a)]", - " ├─TableReader(Build) 9990.00 root data:Selection", - " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", - " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", - " └─TableReader(Probe) 10000.00 root data:TableFullScan", - " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" + "HashJoin 9980.01 root semi join, equal:[eq(test.t1.b, test.t3.b)]", + "├─TableReader(Build) 9990.00 root data:Selection", + "│ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.b))", + "│ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", + "└─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t1.a, test.t2.a)]", + " ├─TableReader(Build) 9980.01 root data:Selection", + " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t1.a)), not(isnull(test.t1.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", + " └─TableReader(Probe) 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", + " └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo" ], - "Warning": null + "Warning": [ + "Warning 1815 There are no matching table names for (t3) in optimizer hint /*+ LEADING(t2, t3) */. Maybe you can use the table alias name", + "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" + ] }, { - "SQL": "select /*+ leading(t2) */ * from (t1 left join t2 on t1.a=t2.a) left join (t3 left join t4 on t3.a=t4.a) on t2.a=t4.a;", + "SQL": "select /*+ leading(t4) */ * from t1 join t2 on t1.a=t2.a right join t4 on t1.b = t4.b where not exists (select t3.a from t3 where t1.b = t3.b)", "Plan": [ - "HashJoin 19511.72 root left outer join, equal:[eq(test.t2.a, test.t4.a)]", - "├─HashJoin(Build) 12487.50 root inner join, equal:[eq(test.t3.a, test.t4.a)]", - "│ ├─TableReader(Build) 9990.00 root data:Selection", - "│ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.a))", - "│ │ └─TableFullScan 10000.00 cop[tikv] table:t4 keep order:false, stats:pseudo", - "│ └─TableReader(Probe) 9990.00 root data:Selection", - "│ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.a))", - "│ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", - "└─HashJoin(Probe) 12487.50 root left outer join, equal:[eq(test.t1.a, test.t2.a)]", - " ├─TableReader(Build) 9990.00 root data:Selection", - " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", - " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", - " └─TableReader(Probe) 10000.00 root data:TableFullScan", - " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" + "HashJoin 12475.01 root anti semi join, equal:[eq(test.t1.b, test.t3.b)]", + "├─TableReader(Build) 10000.00 root data:TableFullScan", + "│ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", + "└─HashJoin(Probe) 15593.77 root right outer join, equal:[eq(test.t1.b, test.t4.b)]", + " ├─TableReader(Build) 10000.00 root data:TableFullScan", + " │ └─TableFullScan 10000.00 cop[tikv] table:t4 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t1.a, test.t2.a)]", + " ├─TableReader(Build) 9980.01 root data:Selection", + " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t1.a)), not(isnull(test.t1.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", + " └─TableReader(Probe) 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", + " └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo" ], "Warning": null }, { - "SQL": "select /*+ leading(t3) */ * from (t1 left join t2 on t1.a=t2.a) left join (t3 left join t4 on t3.a=t4.a) on t2.a=t4.a;", + "SQL": "select /*+ leading(t3@sel_2) */ * from t1 left join t2 on t1.a=t2.a where not exists (select t3.a from t3 where t1.b = t3.b)", "Plan": [ - "HashJoin 19511.72 root left outer join, equal:[eq(test.t2.a, test.t4.a)]", - "├─HashJoin(Build) 12487.50 root inner join, equal:[eq(test.t3.a, test.t4.a)]", - "│ ├─TableReader(Build) 9990.00 root data:Selection", - "│ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.a))", - "│ │ └─TableFullScan 10000.00 cop[tikv] table:t4 keep order:false, stats:pseudo", - "│ └─TableReader(Probe) 9990.00 root data:Selection", - "│ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.a))", - "│ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", + "HashJoin 9990.00 root anti semi join, equal:[eq(test.t1.b, test.t3.b)]", + "├─TableReader(Build) 10000.00 root data:TableFullScan", + "│ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", "└─HashJoin(Probe) 12487.50 root left outer join, equal:[eq(test.t1.a, test.t2.a)]", " ├─TableReader(Build) 9990.00 root data:Selection", " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", @@ -5377,772 +9044,608 @@ " └─TableReader(Probe) 10000.00 root data:TableFullScan", " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" ], - "Warning": null + "Warning": [ + "Warning 1815 There are no matching table names for (t3) in optimizer hint /*+ LEADING(t3) */. Maybe you can use the table alias name" + ] }, { - "SQL": "select /*+ leading(t4) */ * from (t1 left join t2 on t1.a=t2.a) left join (t3 left join t4 on t3.a=t4.a) on t2.a=t4.a;", + "SQL": "select /*+ leading(t2, t3@sel_2) */ * from t1 right join t2 on t1.a=t2.a where not exists (select t3.a from t3 where t1.b = t3.b)", "Plan": [ - "HashJoin 19511.72 root left outer join, equal:[eq(test.t2.a, test.t4.a)]", - "├─Projection(Build) 12487.50 root test.t3.a, test.t3.b, test.t4.a, test.t4.b", - "│ └─HashJoin 12487.50 root inner join, equal:[eq(test.t4.a, test.t3.a)]", - "│ ├─TableReader(Build) 9990.00 root data:Selection", - "│ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.a))", - "│ │ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", - "│ └─TableReader(Probe) 9990.00 root data:Selection", - "│ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.a))", - "│ └─TableFullScan 10000.00 cop[tikv] table:t4 keep order:false, stats:pseudo", - "└─HashJoin(Probe) 12487.50 root left outer join, equal:[eq(test.t1.a, test.t2.a)]", + "HashJoin 9990.00 root anti semi join, equal:[eq(test.t1.b, test.t3.b)]", + "├─TableReader(Build) 10000.00 root data:TableFullScan", + "│ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", + "└─HashJoin(Probe) 12487.50 root right outer join, equal:[eq(test.t1.a, test.t2.a)]", " ├─TableReader(Build) 9990.00 root data:Selection", - " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", - " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", " └─TableReader(Probe) 10000.00 root data:TableFullScan", - " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" + " └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo" ], - "Warning": null + "Warning": [ + "Warning 1815 There are no matching table names for (t3) in optimizer hint /*+ LEADING(t2, t3) */. Maybe you can use the table alias name", + "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" + ] }, { - "SQL": "select /*+ leading(t1, t2) */ * from (t1 left join t2 on t1.a=t2.a) left join (t3 left join t4 on t3.a=t4.a) on t2.a=t4.a;", + "SQL": "select /*+ leading(t1) */ t1.a, (select min(t1.a) from t2 where t2.a > t1.a) from t1 join t3 on t1.a = t3.a;", "Plan": [ - "HashJoin 19511.72 root left outer join, equal:[eq(test.t2.a, test.t4.a)]", - "├─HashJoin(Build) 12487.50 root inner join, equal:[eq(test.t3.a, test.t4.a)]", - "│ ├─TableReader(Build) 9990.00 root data:Selection", - "│ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.a))", - "│ │ └─TableFullScan 10000.00 cop[tikv] table:t4 keep order:false, stats:pseudo", - "│ └─TableReader(Probe) 9990.00 root data:Selection", - "│ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.a))", - "│ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", - "└─HashJoin(Probe) 12487.50 root left outer join, equal:[eq(test.t1.a, test.t2.a)]", - " ├─TableReader(Build) 9990.00 root data:Selection", - " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", - " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", - " └─TableReader(Probe) 10000.00 root data:TableFullScan", - " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" + "Projection 1.00 root test.t1.a, Column#14", + "└─Apply 1.00 root CARTESIAN left outer join", + " ├─HashAgg(Build) 1.00 root funcs:min(test.t1.a)->Column#10, funcs:firstrow(test.t1.a)->test.t1.a", + " │ └─MergeJoin 12487.50 root inner join, left key:test.t1.a, right key:test.t3.a", + " │ ├─IndexReader(Build) 9990.00 root index:IndexFullScan", + " │ │ └─IndexFullScan 9990.00 cop[tikv] table:t3, index:a(a) keep order:true, stats:pseudo", + " │ └─IndexReader(Probe) 9990.00 root index:IndexFullScan", + " │ └─IndexFullScan 9990.00 cop[tikv] table:t1, index:a(a) keep order:true, stats:pseudo", + " └─MaxOneRow(Probe) 1.00 root ", + " └─Projection 2.00 root Column#10", + " └─IndexReader 2.00 root index:Selection", + " └─Selection 2.00 cop[tikv] gt(test.t2.a, test.t1.a)", + " └─IndexFullScan 2.50 cop[tikv] table:t2, index:a(a) keep order:false, stats:pseudo" ], "Warning": null }, { - "SQL": "select /*+ leading(t1, t3) */ * from (t1 left join t2 on t1.a=t2.a) left join (t3 left join t4 on t3.a=t4.a) on t2.a=t4.a;", + "SQL": "select /*+ leading(t3@sel_2) */ t1.a, (select min(t1.a) from t2 where t2.a > t1.a) from t1 join t3 on t1.a = t3.a;", "Plan": [ - "HashJoin 19511.72 root left outer join, equal:[eq(test.t2.a, test.t4.a)]", - "├─HashJoin(Build) 12487.50 root inner join, equal:[eq(test.t3.a, test.t4.a)]", - "│ ├─TableReader(Build) 9990.00 root data:Selection", - "│ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.a))", - "│ │ └─TableFullScan 10000.00 cop[tikv] table:t4 keep order:false, stats:pseudo", - "│ └─TableReader(Probe) 9990.00 root data:Selection", - "│ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.a))", - "│ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", - "└─HashJoin(Probe) 12487.50 root left outer join, equal:[eq(test.t1.a, test.t2.a)]", - " ├─TableReader(Build) 9990.00 root data:Selection", - " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", - " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", - " └─TableReader(Probe) 10000.00 root data:TableFullScan", - " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" + "Projection 1.00 root test.t1.a, Column#14", + "└─Apply 1.00 root CARTESIAN left outer join", + " ├─HashAgg(Build) 1.00 root funcs:min(test.t1.a)->Column#10, funcs:firstrow(test.t1.a)->test.t1.a", + " │ └─MergeJoin 12487.50 root inner join, left key:test.t1.a, right key:test.t3.a", + " │ ├─IndexReader(Build) 9990.00 root index:IndexFullScan", + " │ │ └─IndexFullScan 9990.00 cop[tikv] table:t3, index:a(a) keep order:true, stats:pseudo", + " │ └─IndexReader(Probe) 9990.00 root index:IndexFullScan", + " │ └─IndexFullScan 9990.00 cop[tikv] table:t1, index:a(a) keep order:true, stats:pseudo", + " └─MaxOneRow(Probe) 1.00 root ", + " └─Projection 2.00 root Column#10", + " └─IndexReader 2.00 root index:Selection", + " └─Selection 2.00 cop[tikv] gt(test.t2.a, test.t1.a)", + " └─IndexFullScan 2.50 cop[tikv] table:t2, index:a(a) keep order:false, stats:pseudo" ], "Warning": [ - "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid", - "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" + "Warning 1815 There are no matching table names for (t3) in optimizer hint /*+ LEADING(t3) */. Maybe you can use the table alias name" ] }, { - "SQL": "select /*+ leading(t4, t1) */ * from (t1 left join t2 on t1.a=t2.a) left join (t3 left join t4 on t3.a=t4.a) on t2.a=t4.a;", + "SQL": "select /*+ leading(t2, t3@sel_2) */ t1.a, (select min(t1.a) from t2 where t2.a > t1.a) from t1 join t3 on t1.a = t3.a;", "Plan": [ - "HashJoin 19511.72 root left outer join, equal:[eq(test.t2.a, test.t4.a)]", - "├─HashJoin(Build) 12487.50 root inner join, equal:[eq(test.t3.a, test.t4.a)]", - "│ ├─TableReader(Build) 9990.00 root data:Selection", - "│ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.a))", - "│ │ └─TableFullScan 10000.00 cop[tikv] table:t4 keep order:false, stats:pseudo", - "│ └─TableReader(Probe) 9990.00 root data:Selection", - "│ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.a))", - "│ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", - "└─HashJoin(Probe) 12487.50 root left outer join, equal:[eq(test.t1.a, test.t2.a)]", - " ├─TableReader(Build) 9990.00 root data:Selection", - " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", - " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", - " └─TableReader(Probe) 10000.00 root data:TableFullScan", - " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" + "Projection 1.00 root test.t1.a, Column#14", + "└─Apply 1.00 root CARTESIAN left outer join", + " ├─HashAgg(Build) 1.00 root funcs:min(test.t1.a)->Column#10, funcs:firstrow(test.t1.a)->test.t1.a", + " │ └─MergeJoin 12487.50 root inner join, left key:test.t1.a, right key:test.t3.a", + " │ ├─IndexReader(Build) 9990.00 root index:IndexFullScan", + " │ │ └─IndexFullScan 9990.00 cop[tikv] table:t3, index:a(a) keep order:true, stats:pseudo", + " │ └─IndexReader(Probe) 9990.00 root index:IndexFullScan", + " │ └─IndexFullScan 9990.00 cop[tikv] table:t1, index:a(a) keep order:true, stats:pseudo", + " └─MaxOneRow(Probe) 1.00 root ", + " └─Projection 2.00 root Column#10", + " └─IndexReader 2.00 root index:Selection", + " └─Selection 2.00 cop[tikv] gt(test.t2.a, test.t1.a)", + " └─IndexFullScan 2.50 cop[tikv] table:t2, index:a(a) keep order:false, stats:pseudo" ], "Warning": [ - "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid", - "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" + "Warning 1815 There are no matching table names for (t2, t3) in optimizer hint /*+ LEADING(t2, t3) */. Maybe you can use the table alias name" ] }, { - "SQL": "select /*+ leading(t4, t2) */ * from (t1 left join t2 on t1.a=t2.a) left join (t3 left join t4 on t3.a=t4.a) on t2.a=t4.a;", + "SQL": "select /*+ leading(t4, t3@sel_2) */ * from t1 right join t2 on t1.a=t2.a join t4 on t1.b = t4.b where t1.a = (select max(t3.a) from t3 where t1.b = t3.b)", "Plan": [ - "HashJoin 19511.72 root left outer join, equal:[eq(test.t2.a, test.t4.a)]", - "├─HashJoin(Build) 12487.50 root inner join, equal:[eq(test.t3.a, test.t4.a)]", - "│ ├─TableReader(Build) 9990.00 root data:Selection", - "│ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.a))", - "│ │ └─TableFullScan 10000.00 cop[tikv] table:t4 keep order:false, stats:pseudo", - "│ └─TableReader(Probe) 9990.00 root data:Selection", - "│ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.a))", - "│ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", - "└─HashJoin(Probe) 12487.50 root left outer join, equal:[eq(test.t1.a, test.t2.a)]", + "HashJoin 12487.50 root inner join, equal:[eq(test.t1.b, test.t3.b) eq(test.t1.a, Column#13)]", + "├─Selection(Build) 6393.60 root not(isnull(Column#13))", + "│ └─HashAgg 7992.00 root group by:test.t3.b, funcs:max(Column#26)->Column#13, funcs:firstrow(test.t3.b)->test.t3.b", + "│ └─TableReader 7992.00 root data:HashAgg", + "│ └─HashAgg 7992.00 cop[tikv] group by:test.t3.b, funcs:max(test.t3.a)->Column#26", + "│ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.b))", + "│ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", + "└─HashJoin(Probe) 15593.77 root inner join, equal:[eq(test.t1.b, test.t4.b)]", " ├─TableReader(Build) 9990.00 root data:Selection", - " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", - " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", - " └─TableReader(Probe) 10000.00 root data:TableFullScan", - " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t4 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t1.a, test.t2.a)]", + " ├─TableReader(Build) 9980.01 root data:Selection", + " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t1.a)), not(isnull(test.t1.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", + " └─TableReader(Probe) 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", + " └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo" ], "Warning": [ - "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid", + "Warning 1815 There are no matching table names for (t3) in optimizer hint /*+ LEADING(t4, t3) */. Maybe you can use the table alias name", "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" ] }, { - "SQL": "select /*+ leading(t3, t2) */ * from (t1 left join t2 on t1.a=t2.a) left join (t3 left join t4 on t3.a=t4.a) on t2.a=t4.a;", + "SQL": "select /*+ leading(t4) */ * from t1 right join t2 on t1.a=t2.a join t4 on t1.b = t4.b where t1.a = (select max(t3.a) from t3 where t1.b = t3.b)", "Plan": [ - "HashJoin 19511.72 root left outer join, equal:[eq(test.t2.a, test.t4.a)]", - "├─HashJoin(Build) 12487.50 root inner join, equal:[eq(test.t3.a, test.t4.a)]", - "│ ├─TableReader(Build) 9990.00 root data:Selection", - "│ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.a))", - "│ │ └─TableFullScan 10000.00 cop[tikv] table:t4 keep order:false, stats:pseudo", - "│ └─TableReader(Probe) 9990.00 root data:Selection", - "│ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.a))", - "│ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", - "└─HashJoin(Probe) 12487.50 root left outer join, equal:[eq(test.t1.a, test.t2.a)]", - " ├─TableReader(Build) 9990.00 root data:Selection", - " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", - " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", - " └─TableReader(Probe) 10000.00 root data:TableFullScan", - " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" + "Projection 12487.50 root test.t1.a, test.t1.b, test.t2.a, test.t2.b, test.t4.a, test.t4.b", + "└─HashJoin 12487.50 root inner join, equal:[eq(test.t1.b, test.t3.b) eq(test.t1.a, Column#13)]", + " ├─Selection(Build) 6393.60 root not(isnull(Column#13))", + " │ └─HashAgg 7992.00 root group by:test.t3.b, funcs:max(Column#19)->Column#13, funcs:firstrow(test.t3.b)->test.t3.b", + " │ └─TableReader 7992.00 root data:HashAgg", + " │ └─HashAgg 7992.00 cop[tikv] group by:test.t3.b, funcs:max(test.t3.a)->Column#19", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 15593.77 root inner join, equal:[eq(test.t1.a, test.t2.a)]", + " ├─TableReader(Build) 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t4.b, test.t1.b)]", + " ├─TableReader(Build) 9980.01 root data:Selection", + " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t1.a)), not(isnull(test.t1.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", + " └─TableReader(Probe) 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t4.b))", + " └─TableFullScan 10000.00 cop[tikv] table:t4 keep order:false, stats:pseudo" ], - "Warning": [ - "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid", - "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" - ] + "Warning": null }, { - "SQL": "select /*+ leading(t3, t4) */ * from (t1 left join t2 on t1.a=t2.a) left join (t3 left join t4 on t3.a=t4.a) on t2.a=t4.a;", + "SQL": "select /*+ leading(t3@sel_2) */ * from t1 left join t2 on t1.a=t2.a join t4 on t1.b = t4.b where t1.a = (select max(t3.a) from t3 where t1.b = t3.b)", "Plan": [ - "HashJoin 19511.72 root left outer join, equal:[eq(test.t2.a, test.t4.a)]", - "├─HashJoin(Build) 12487.50 root inner join, equal:[eq(test.t3.a, test.t4.a)]", - "│ ├─TableReader(Build) 9990.00 root data:Selection", - "│ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.a))", - "│ │ └─TableFullScan 10000.00 cop[tikv] table:t4 keep order:false, stats:pseudo", - "│ └─TableReader(Probe) 9990.00 root data:Selection", - "│ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.a))", - "│ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", - "└─HashJoin(Probe) 12487.50 root left outer join, equal:[eq(test.t1.a, test.t2.a)]", + "HashJoin 12487.50 root inner join, equal:[eq(test.t1.b, test.t3.b) eq(test.t1.a, Column#13)]", + "├─Selection(Build) 6393.60 root not(isnull(Column#13))", + "│ └─HashAgg 7992.00 root group by:test.t3.b, funcs:max(Column#23)->Column#13, funcs:firstrow(test.t3.b)->test.t3.b", + "│ └─TableReader 7992.00 root data:HashAgg", + "│ └─HashAgg 7992.00 cop[tikv] group by:test.t3.b, funcs:max(test.t3.a)->Column#23", + "│ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.b))", + "│ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", + "└─HashJoin(Probe) 15593.77 root inner join, equal:[eq(test.t1.b, test.t4.b)]", " ├─TableReader(Build) 9990.00 root data:Selection", - " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", - " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", - " └─TableReader(Probe) 10000.00 root data:TableFullScan", - " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t4 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 12475.01 root left outer join, equal:[eq(test.t1.a, test.t2.a)]", + " ├─TableReader(Build) 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", + " └─TableReader(Probe) 9980.01 root data:Selection", + " └─Selection 9980.01 cop[tikv] not(isnull(test.t1.a)), not(isnull(test.t1.b))", + " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" ], - "Warning": null + "Warning": [ + "Warning 1815 There are no matching table names for (t3) in optimizer hint /*+ LEADING(t3) */. Maybe you can use the table alias name" + ] }, { - "SQL": "select /*+ leading(t1, t2, t3) */ * from (t1 left join t2 on t1.a=t2.a) left join (t3 left join t4 on t3.a=t4.a) on t2.a=t4.a;", + "SQL": "select /*+ leading(t3@sel_2, t1) */ * from t1 left join t2 on t1.a=t2.a join t4 on t1.b = t4.b where t1.a = (select max(t3.a) from t3 where t1.b = t3.b)", "Plan": [ - "HashJoin 19511.72 root left outer join, equal:[eq(test.t2.a, test.t4.a)]", - "├─HashJoin(Build) 12487.50 root inner join, equal:[eq(test.t3.a, test.t4.a)]", - "│ ├─TableReader(Build) 9990.00 root data:Selection", - "│ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.a))", - "│ │ └─TableFullScan 10000.00 cop[tikv] table:t4 keep order:false, stats:pseudo", - "│ └─TableReader(Probe) 9990.00 root data:Selection", - "│ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.a))", - "│ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", - "└─HashJoin(Probe) 12487.50 root left outer join, equal:[eq(test.t1.a, test.t2.a)]", + "HashJoin 12487.50 root inner join, equal:[eq(test.t1.b, test.t3.b) eq(test.t1.a, Column#13)]", + "├─Selection(Build) 6393.60 root not(isnull(Column#13))", + "│ └─HashAgg 7992.00 root group by:test.t3.b, funcs:max(Column#23)->Column#13, funcs:firstrow(test.t3.b)->test.t3.b", + "│ └─TableReader 7992.00 root data:HashAgg", + "│ └─HashAgg 7992.00 cop[tikv] group by:test.t3.b, funcs:max(test.t3.a)->Column#23", + "│ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.b))", + "│ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", + "└─HashJoin(Probe) 15593.77 root inner join, equal:[eq(test.t1.b, test.t4.b)]", " ├─TableReader(Build) 9990.00 root data:Selection", - " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", - " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", - " └─TableReader(Probe) 10000.00 root data:TableFullScan", - " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t4 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 12475.01 root left outer join, equal:[eq(test.t1.a, test.t2.a)]", + " ├─TableReader(Build) 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", + " └─TableReader(Probe) 9980.01 root data:Selection", + " └─Selection 9980.01 cop[tikv] not(isnull(test.t1.a)), not(isnull(test.t1.b))", + " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" ], "Warning": [ - "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid", + "Warning 1815 There are no matching table names for (t3) in optimizer hint /*+ LEADING(t3, t1) */. Maybe you can use the table alias name", "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" ] }, { - "SQL": "select /*+ leading(t1, t4, t3) */ * from (t1 left join t2 on t1.a=t2.a) left join (t3 left join t4 on t3.a=t4.a) on t2.a=t4.a;", + "SQL": "select /*+ leading(t4, t3@sel_2) */ * from t1 left join t2 on t1.a=t2.a right join t4 on t1.b = t4.b where t1.a > (select min(t3.a) from t3 where t1.b = t3.b)", "Plan": [ - "HashJoin 19511.72 root left outer join, equal:[eq(test.t2.a, test.t4.a)]", - "├─HashJoin(Build) 12487.50 root inner join, equal:[eq(test.t3.a, test.t4.a)]", - "│ ├─TableReader(Build) 9990.00 root data:Selection", - "│ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.a))", - "│ │ └─TableFullScan 10000.00 cop[tikv] table:t4 keep order:false, stats:pseudo", - "│ └─TableReader(Probe) 9990.00 root data:Selection", - "│ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.a))", - "│ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", - "└─HashJoin(Probe) 12487.50 root left outer join, equal:[eq(test.t1.a, test.t2.a)]", + "HashJoin 12487.50 root inner join, equal:[eq(test.t1.b, test.t3.b)], other cond:gt(test.t1.a, Column#13)", + "├─Selection(Build) 6393.60 root not(isnull(Column#13))", + "│ └─HashAgg 7992.00 root group by:test.t3.b, funcs:min(Column#23)->Column#13, funcs:firstrow(test.t3.b)->test.t3.b", + "│ └─TableReader 7992.00 root data:HashAgg", + "│ └─HashAgg 7992.00 cop[tikv] group by:test.t3.b, funcs:min(test.t3.a)->Column#23", + "│ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.b))", + "│ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", + "└─HashJoin(Probe) 15593.77 root inner join, equal:[eq(test.t1.b, test.t4.b)]", " ├─TableReader(Build) 9990.00 root data:Selection", - " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", - " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", - " └─TableReader(Probe) 10000.00 root data:TableFullScan", - " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t4 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 12475.01 root left outer join, equal:[eq(test.t1.a, test.t2.a)]", + " ├─TableReader(Build) 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", + " └─TableReader(Probe) 9980.01 root data:Selection", + " └─Selection 9980.01 cop[tikv] not(isnull(test.t1.a)), not(isnull(test.t1.b))", + " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" ], "Warning": [ - "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid", + "Warning 1815 There are no matching table names for (t3) in optimizer hint /*+ LEADING(t4, t3) */. Maybe you can use the table alias name", "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" ] }, { - "SQL": "select /*+ leading(t4, t2, t3) */ * from (t1 left join t2 on t1.a=t2.a) left join (t3 left join t4 on t3.a=t4.a) on t2.a=t4.a;", + "SQL": "select /*+ leading(t4) */ * from t1 left join t2 on t1.a=t2.a right join t4 on t1.b = t4.b where t1.a > (select min(t3.a) from t3 where t1.b = t3.b)", "Plan": [ - "HashJoin 19511.72 root left outer join, equal:[eq(test.t2.a, test.t4.a)]", - "├─HashJoin(Build) 12487.50 root inner join, equal:[eq(test.t3.a, test.t4.a)]", - "│ ├─TableReader(Build) 9990.00 root data:Selection", - "│ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.a))", - "│ │ └─TableFullScan 10000.00 cop[tikv] table:t4 keep order:false, stats:pseudo", - "│ └─TableReader(Probe) 9990.00 root data:Selection", - "│ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.a))", - "│ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", - "└─HashJoin(Probe) 12487.50 root left outer join, equal:[eq(test.t1.a, test.t2.a)]", + "Projection 12487.50 root test.t1.a, test.t1.b, test.t2.a, test.t2.b, test.t4.a, test.t4.b", + "└─HashJoin 12487.50 root inner join, equal:[eq(test.t1.b, test.t3.b)], other cond:gt(test.t1.a, Column#13)", + " ├─Selection(Build) 6393.60 root not(isnull(Column#13))", + " │ └─HashAgg 7992.00 root group by:test.t3.b, funcs:min(Column#19)->Column#13, funcs:firstrow(test.t3.b)->test.t3.b", + " │ └─TableReader 7992.00 root data:HashAgg", + " │ └─HashAgg 7992.00 cop[tikv] group by:test.t3.b, funcs:min(test.t3.a)->Column#19", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 15593.77 root left outer join, equal:[eq(test.t1.a, test.t2.a)]", + " ├─TableReader(Build) 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t4.b, test.t1.b)]", + " ├─TableReader(Build) 9980.01 root data:Selection", + " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t1.a)), not(isnull(test.t1.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", + " └─TableReader(Probe) 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t4.b))", + " └─TableFullScan 10000.00 cop[tikv] table:t4 keep order:false, stats:pseudo" + ], + "Warning": null + }, + { + "SQL": "select /*+ leading(t3@sel_2) */ * from t1 left join t2 on t1.a=t2.a join t4 on t1.b = t4.b where t1.a > (select min(t3.a) from t3 where t1.b = t3.b)", + "Plan": [ + "HashJoin 12487.50 root inner join, equal:[eq(test.t1.b, test.t3.b)], other cond:gt(test.t1.a, Column#13)", + "├─Selection(Build) 6393.60 root not(isnull(Column#13))", + "│ └─HashAgg 7992.00 root group by:test.t3.b, funcs:min(Column#23)->Column#13, funcs:firstrow(test.t3.b)->test.t3.b", + "│ └─TableReader 7992.00 root data:HashAgg", + "│ └─HashAgg 7992.00 cop[tikv] group by:test.t3.b, funcs:min(test.t3.a)->Column#23", + "│ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.b))", + "│ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", + "└─HashJoin(Probe) 15593.77 root inner join, equal:[eq(test.t1.b, test.t4.b)]", " ├─TableReader(Build) 9990.00 root data:Selection", - " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", - " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", - " └─TableReader(Probe) 10000.00 root data:TableFullScan", - " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t4 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 12475.01 root left outer join, equal:[eq(test.t1.a, test.t2.a)]", + " ├─TableReader(Build) 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", + " └─TableReader(Probe) 9980.01 root data:Selection", + " └─Selection 9980.01 cop[tikv] not(isnull(test.t1.a)), not(isnull(test.t1.b))", + " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" ], "Warning": [ - "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid", - "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" + "Warning 1815 There are no matching table names for (t3) in optimizer hint /*+ LEADING(t3) */. Maybe you can use the table alias name" ] }, { - "SQL": "select /*+ leading(t1, t2, t3, t4) */ * from (t1 left join t2 on t1.a=t2.a) left join (t3 left join t4 on t3.a=t4.a) on t2.a=t4.a;", + "SQL": "select /*+ leading(t3@sel_2, t2) */ * from t1 right join t2 on t1.a=t2.a join t4 on t1.b = t4.b where t1.a > (select min(t3.a) from t3 where t1.b = t3.b)", "Plan": [ - "HashJoin 19511.72 root left outer join, equal:[eq(test.t2.a, test.t4.a)]", - "├─HashJoin(Build) 12487.50 root inner join, equal:[eq(test.t3.a, test.t4.a)]", - "│ ├─TableReader(Build) 9990.00 root data:Selection", - "│ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.a))", - "│ │ └─TableFullScan 10000.00 cop[tikv] table:t4 keep order:false, stats:pseudo", - "│ └─TableReader(Probe) 9990.00 root data:Selection", - "│ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.a))", - "│ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", - "└─HashJoin(Probe) 12487.50 root left outer join, equal:[eq(test.t1.a, test.t2.a)]", + "HashJoin 12487.50 root inner join, equal:[eq(test.t1.b, test.t3.b)], other cond:gt(test.t1.a, Column#13)", + "├─Selection(Build) 6393.60 root not(isnull(Column#13))", + "│ └─HashAgg 7992.00 root group by:test.t3.b, funcs:min(Column#26)->Column#13, funcs:firstrow(test.t3.b)->test.t3.b", + "│ └─TableReader 7992.00 root data:HashAgg", + "│ └─HashAgg 7992.00 cop[tikv] group by:test.t3.b, funcs:min(test.t3.a)->Column#26", + "│ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.b))", + "│ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", + "└─HashJoin(Probe) 15593.77 root inner join, equal:[eq(test.t1.b, test.t4.b)]", " ├─TableReader(Build) 9990.00 root data:Selection", - " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", - " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", - " └─TableReader(Probe) 10000.00 root data:TableFullScan", - " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t4 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t1.a, test.t2.a)]", + " ├─TableReader(Build) 9980.01 root data:Selection", + " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t1.a)), not(isnull(test.t1.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", + " └─TableReader(Probe) 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", + " └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo" ], "Warning": [ - "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid", + "Warning 1815 There are no matching table names for (t3) in optimizer hint /*+ LEADING(t3, t2) */. Maybe you can use the table alias name", "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" ] }, { - "SQL": "select /*+ leading(t1) */ * from ((select t8.a, t8.b from t8, t7, t6, t5 where t5.a = t6.a and t6.b=t7.b) t3 left join t4 on t3.a=t4.a) left join (t1 left join t2 on t1.a=t2.a) on t1.a=t4.a;", + "SQL": "select /*+ leading(t4) */ * from t1 join t2 on t1.a=t2.a right join t4 on t1.b = t4.b where t1.a in (select t3.a from t3)", "Plan": [ - "HashJoin 304261169.13 root CARTESIAN inner join", - "├─HashJoin(Build) 15593.77 root inner join, equal:[eq(test.t6.a, test.t5.a)]", - "│ ├─IndexReader(Build) 9990.00 root index:IndexFullScan", - "│ │ └─IndexFullScan 9990.00 cop[tikv] table:t5, index:a(a) keep order:false, stats:pseudo", - "│ └─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t6.b, test.t7.b)]", - "│ ├─TableReader(Build) 9980.01 root data:Selection", - "│ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t6.a)), not(isnull(test.t6.b))", - "│ │ └─TableFullScan 10000.00 cop[tikv] table:t6 keep order:false, stats:pseudo", - "│ └─TableReader(Probe) 9990.00 root data:Selection", - "│ └─Selection 9990.00 cop[tikv] not(isnull(test.t7.b))", - "│ └─TableFullScan 10000.00 cop[tikv] table:t7 keep order:false, stats:pseudo", - "└─HashJoin(Probe) 19511.72 root left outer join, equal:[eq(test.t4.a, test.t1.a)]", - " ├─HashJoin(Build) 12487.50 root left outer join, equal:[eq(test.t1.a, test.t2.a)]", - " │ ├─TableReader(Build) 9990.00 root data:Selection", - " │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", - " │ │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", - " │ └─TableReader(Probe) 9990.00 root data:Selection", - " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", - " │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", - " └─HashJoin(Probe) 12487.50 root left outer join, equal:[eq(test.t8.a, test.t4.a)]", + "Projection 15593.77 root test.t1.a, test.t1.b, test.t2.a, test.t2.b, test.t4.a, test.t4.b", + "└─HashJoin 15593.77 root inner join, equal:[eq(test.t1.a, test.t3.a)]", + " ├─HashAgg(Build) 7992.00 root group by:test.t3.a, funcs:firstrow(test.t3.a)->test.t3.a", + " │ └─IndexReader 9990.00 root index:IndexFullScan", + " │ └─IndexFullScan 9990.00 cop[tikv] table:t3, index:a(a) keep order:false, stats:pseudo", + " └─HashJoin(Probe) 15593.77 root inner join, equal:[eq(test.t1.a, test.t2.a)]", " ├─TableReader(Build) 9990.00 root data:Selection", - " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.a))", - " │ └─TableFullScan 10000.00 cop[tikv] table:t4 keep order:false, stats:pseudo", - " └─TableReader(Probe) 10000.00 root data:TableFullScan", - " └─TableFullScan 10000.00 cop[tikv] table:t8 keep order:false, stats:pseudo" + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t4.b, test.t1.b)]", + " ├─TableReader(Build) 9980.01 root data:Selection", + " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t1.a)), not(isnull(test.t1.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", + " └─TableReader(Probe) 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t4.b))", + " └─TableFullScan 10000.00 cop[tikv] table:t4 keep order:false, stats:pseudo" ], "Warning": null }, { - "SQL": "select /*+ leading(t2) */ * from ((select t8.a, t8.b from t8, t7, t6, t5 where t5.a = t6.a and t6.b=t7.b) t3 left join t4 on t3.a=t4.a) left join (t1 left join t2 on t1.a=t2.a) on t1.a=t4.a;", + "SQL": "select /*+ leading(t3@sel_2) */ * from t1 left join t2 on t1.a=t2.a where t1.a in (select t3.a from t3)", "Plan": [ - "HashJoin 304261169.13 root CARTESIAN inner join", - "├─HashJoin(Build) 15593.77 root inner join, equal:[eq(test.t6.a, test.t5.a)]", - "│ ├─IndexReader(Build) 9990.00 root index:IndexFullScan", - "│ │ └─IndexFullScan 9990.00 cop[tikv] table:t5, index:a(a) keep order:false, stats:pseudo", - "│ └─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t6.b, test.t7.b)]", - "│ ├─TableReader(Build) 9980.01 root data:Selection", - "│ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t6.a)), not(isnull(test.t6.b))", - "│ │ └─TableFullScan 10000.00 cop[tikv] table:t6 keep order:false, stats:pseudo", - "│ └─TableReader(Probe) 9990.00 root data:Selection", - "│ └─Selection 9990.00 cop[tikv] not(isnull(test.t7.b))", - "│ └─TableFullScan 10000.00 cop[tikv] table:t7 keep order:false, stats:pseudo", - "└─HashJoin(Probe) 19511.72 root left outer join, equal:[eq(test.t4.a, test.t1.a)]", - " ├─HashJoin(Build) 12487.50 root left outer join, equal:[eq(test.t1.a, test.t2.a)]", - " │ ├─TableReader(Build) 9990.00 root data:Selection", - " │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", - " │ │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", - " │ └─TableReader(Probe) 9990.00 root data:Selection", - " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", - " │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", - " └─HashJoin(Probe) 12487.50 root left outer join, equal:[eq(test.t8.a, test.t4.a)]", - " ├─TableReader(Build) 9990.00 root data:Selection", - " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.a))", - " │ └─TableFullScan 10000.00 cop[tikv] table:t4 keep order:false, stats:pseudo", - " └─TableReader(Probe) 10000.00 root data:TableFullScan", - " └─TableFullScan 10000.00 cop[tikv] table:t8 keep order:false, stats:pseudo" + "HashJoin 12487.50 root left outer join, equal:[eq(test.t1.a, test.t2.a)]", + "├─TableReader(Build) 9990.00 root data:Selection", + "│ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", + "│ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", + "└─HashJoin(Probe) 9990.00 root inner join, equal:[eq(test.t3.a, test.t1.a)]", + " ├─HashAgg(Build) 7992.00 root group by:test.t3.a, funcs:firstrow(test.t3.a)->test.t3.a", + " │ └─IndexReader 9990.00 root index:IndexFullScan", + " │ └─IndexFullScan 9990.00 cop[tikv] table:t3, index:a(a) keep order:false, stats:pseudo", + " └─TableReader(Probe) 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", + " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" ], "Warning": null }, { - "SQL": "select /*+ leading(t3) */ * from ((select t8.a, t8.b from t8, t7, t6, t5 where t5.a = t6.a and t6.b=t7.b) t3 left join t4 on t3.a=t4.a) left join (t1 left join t2 on t1.a=t2.a) on t1.a=t4.a;", + "SQL": "select /*+ leading(t2, t3@sel_2) */ * from t1 join t2 on t1.a=t2.a where t1.a in (select t3.a from t3)", "Plan": [ - "HashJoin 304261169.13 root CARTESIAN inner join", - "├─HashJoin(Build) 15593.77 root inner join, equal:[eq(test.t6.a, test.t5.a)]", - "│ ├─IndexReader(Build) 9990.00 root index:IndexFullScan", - "│ │ └─IndexFullScan 9990.00 cop[tikv] table:t5, index:a(a) keep order:false, stats:pseudo", - "│ └─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t6.b, test.t7.b)]", - "│ ├─TableReader(Build) 9980.01 root data:Selection", - "│ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t6.a)), not(isnull(test.t6.b))", - "│ │ └─TableFullScan 10000.00 cop[tikv] table:t6 keep order:false, stats:pseudo", - "│ └─TableReader(Probe) 9990.00 root data:Selection", - "│ └─Selection 9990.00 cop[tikv] not(isnull(test.t7.b))", - "│ └─TableFullScan 10000.00 cop[tikv] table:t7 keep order:false, stats:pseudo", - "└─HashJoin(Probe) 19511.72 root left outer join, equal:[eq(test.t4.a, test.t1.a)]", - " ├─HashJoin(Build) 12487.50 root left outer join, equal:[eq(test.t1.a, test.t2.a)]", - " │ ├─TableReader(Build) 9990.00 root data:Selection", - " │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", - " │ │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", - " │ └─TableReader(Probe) 9990.00 root data:Selection", - " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", - " │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", - " └─HashJoin(Probe) 12487.50 root left outer join, equal:[eq(test.t8.a, test.t4.a)]", - " ├─TableReader(Build) 9990.00 root data:Selection", - " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.a))", - " │ └─TableFullScan 10000.00 cop[tikv] table:t4 keep order:false, stats:pseudo", - " └─TableReader(Probe) 10000.00 root data:TableFullScan", - " └─TableFullScan 10000.00 cop[tikv] table:t8 keep order:false, stats:pseudo" + "HashJoin 12487.50 root inner join, equal:[eq(test.t1.a, test.t3.a)]", + "├─HashAgg(Build) 7992.00 root group by:test.t3.a, funcs:firstrow(test.t3.a)->test.t3.a", + "│ └─IndexReader 9990.00 root index:IndexFullScan", + "│ └─IndexFullScan 9990.00 cop[tikv] table:t3, index:a(a) keep order:false, stats:pseudo", + "└─HashJoin(Probe) 12487.50 root inner join, equal:[eq(test.t1.a, test.t2.a)]", + " ├─TableReader(Build) 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", + " └─TableReader(Probe) 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", + " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" ], "Warning": [ - "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" + "Warning 1815 We can only use one leading hint at most, when multiple leading hints are used, all leading hints will be invalid" ] }, { - "SQL": "select /*+ leading(t4) */ * from ((select t8.a, t8.b from t8, t7, t6, t5 where t5.a = t6.a and t6.b=t7.b) t3 left join t4 on t3.a=t4.a) left join (t1 left join t2 on t1.a=t2.a) on t1.a=t4.a;", + "SQL": "select /*+ leading(t4) */ * from t1 left join t2 on t1.a=t2.a right join t4 on t1.b = t4.b where t1.a not in (select t3.a from t3)", "Plan": [ - "HashJoin 304261169.13 root CARTESIAN inner join", - "├─HashJoin(Build) 15593.77 root inner join, equal:[eq(test.t6.a, test.t5.a)]", - "│ ├─IndexReader(Build) 9990.00 root index:IndexFullScan", - "│ │ └─IndexFullScan 9990.00 cop[tikv] table:t5, index:a(a) keep order:false, stats:pseudo", - "│ └─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t6.b, test.t7.b)]", - "│ ├─TableReader(Build) 9980.01 root data:Selection", - "│ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t6.a)), not(isnull(test.t6.b))", - "│ │ └─TableFullScan 10000.00 cop[tikv] table:t6 keep order:false, stats:pseudo", - "│ └─TableReader(Probe) 9990.00 root data:Selection", - "│ └─Selection 9990.00 cop[tikv] not(isnull(test.t7.b))", - "│ └─TableFullScan 10000.00 cop[tikv] table:t7 keep order:false, stats:pseudo", - "└─HashJoin(Probe) 19511.72 root left outer join, equal:[eq(test.t4.a, test.t1.a)]", - " ├─HashJoin(Build) 12487.50 root left outer join, equal:[eq(test.t1.a, test.t2.a)]", - " │ ├─TableReader(Build) 9990.00 root data:Selection", - " │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", - " │ │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", - " │ └─TableReader(Probe) 9990.00 root data:Selection", - " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", - " │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", - " └─HashJoin(Probe) 12487.50 root left outer join, equal:[eq(test.t8.a, test.t4.a)]", + "HashJoin 12487.50 root CARTESIAN anti semi join, other cond:eq(test.t1.a, test.t3.a)", + "├─IndexReader(Build) 10000.00 root index:IndexFullScan", + "│ └─IndexFullScan 10000.00 cop[tikv] table:t3, index:a(a) keep order:false, stats:pseudo", + "└─HashJoin(Probe) 15609.38 root right outer join, equal:[eq(test.t1.b, test.t4.b)]", + " ├─TableReader(Build) 10000.00 root data:TableFullScan", + " │ └─TableFullScan 10000.00 cop[tikv] table:t4 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 12487.50 root left outer join, equal:[eq(test.t1.a, test.t2.a)]", " ├─TableReader(Build) 9990.00 root data:Selection", - " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.a))", - " │ └─TableFullScan 10000.00 cop[tikv] table:t4 keep order:false, stats:pseudo", - " └─TableReader(Probe) 10000.00 root data:TableFullScan", - " └─TableFullScan 10000.00 cop[tikv] table:t8 keep order:false, stats:pseudo" + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", + " └─TableReader(Probe) 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t1.b))", + " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" ], "Warning": null }, { - "SQL": "select /*+ leading(t2, t1) */ * from ((select t8.a, t8.b from t8, t7, t6, t5 where t5.a = t6.a and t6.b=t7.b) t3 left join t4 on t3.a=t4.a) left join (t1 left join t2 on t1.a=t2.a) on t1.a=t4.a;", + "SQL": "select /*+ leading(t3@sel_2) */ * from t1 left join t2 on t1.a=t2.a where t1.a not in (select t3.a from t3)", "Plan": [ - "HashJoin 304261169.13 root CARTESIAN inner join", - "├─HashJoin(Build) 15593.77 root inner join, equal:[eq(test.t6.a, test.t5.a)]", - "│ ├─IndexReader(Build) 9990.00 root index:IndexFullScan", - "│ │ └─IndexFullScan 9990.00 cop[tikv] table:t5, index:a(a) keep order:false, stats:pseudo", - "│ └─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t6.b, test.t7.b)]", - "│ ├─TableReader(Build) 9980.01 root data:Selection", - "│ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t6.a)), not(isnull(test.t6.b))", - "│ │ └─TableFullScan 10000.00 cop[tikv] table:t6 keep order:false, stats:pseudo", - "│ └─TableReader(Probe) 9990.00 root data:Selection", - "│ └─Selection 9990.00 cop[tikv] not(isnull(test.t7.b))", - "│ └─TableFullScan 10000.00 cop[tikv] table:t7 keep order:false, stats:pseudo", - "└─HashJoin(Probe) 19511.72 root left outer join, equal:[eq(test.t4.a, test.t1.a)]", - " ├─HashJoin(Build) 12487.50 root left outer join, equal:[eq(test.t1.a, test.t2.a)]", - " │ ├─TableReader(Build) 9990.00 root data:Selection", - " │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", - " │ │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", - " │ └─TableReader(Probe) 9990.00 root data:Selection", - " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", - " │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", - " └─HashJoin(Probe) 12487.50 root left outer join, equal:[eq(test.t8.a, test.t4.a)]", - " ├─TableReader(Build) 9990.00 root data:Selection", - " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.a))", - " │ └─TableFullScan 10000.00 cop[tikv] table:t4 keep order:false, stats:pseudo", - " └─TableReader(Probe) 10000.00 root data:TableFullScan", - " └─TableFullScan 10000.00 cop[tikv] table:t8 keep order:false, stats:pseudo" + "HashJoin 9990.00 root CARTESIAN anti semi join, other cond:eq(test.t1.a, test.t3.a)", + "├─IndexReader(Build) 10000.00 root index:IndexFullScan", + "│ └─IndexFullScan 10000.00 cop[tikv] table:t3, index:a(a) keep order:false, stats:pseudo", + "└─HashJoin(Probe) 12487.50 root left outer join, equal:[eq(test.t1.a, test.t2.a)]", + " ├─TableReader(Build) 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", + " └─TableReader(Probe) 10000.00 root data:TableFullScan", + " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" ], - "Warning": null + "Warning": [ + "Warning 1815 There are no matching table names for (t3) in optimizer hint /*+ LEADING(t3) */. Maybe you can use the table alias name" + ] }, { - "SQL": "select /*+ leading(t2, t3) */ * from ((select t8.a, t8.b from t8, t7, t6, t5 where t5.a = t6.a and t6.b=t7.b) t3 left join t4 on t3.a=t4.a) left join (t1 left join t2 on t1.a=t2.a) on t1.a=t4.a;", + "SQL": "select /*+ leading(t2, t3@sel_2) */ * from t1 join t2 on t1.a=t2.a where t1.a not in (select t3.a from t3)", "Plan": [ - "HashJoin 304261169.13 root CARTESIAN inner join", - "├─HashJoin(Build) 15593.77 root inner join, equal:[eq(test.t6.a, test.t5.a)]", - "│ ├─IndexReader(Build) 9990.00 root index:IndexFullScan", - "│ │ └─IndexFullScan 9990.00 cop[tikv] table:t5, index:a(a) keep order:false, stats:pseudo", - "│ └─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t6.b, test.t7.b)]", - "│ ├─TableReader(Build) 9980.01 root data:Selection", - "│ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t6.a)), not(isnull(test.t6.b))", - "│ │ └─TableFullScan 10000.00 cop[tikv] table:t6 keep order:false, stats:pseudo", - "│ └─TableReader(Probe) 9990.00 root data:Selection", - "│ └─Selection 9990.00 cop[tikv] not(isnull(test.t7.b))", - "│ └─TableFullScan 10000.00 cop[tikv] table:t7 keep order:false, stats:pseudo", - "└─HashJoin(Probe) 19511.72 root left outer join, equal:[eq(test.t4.a, test.t1.a)]", - " ├─HashJoin(Build) 12487.50 root left outer join, equal:[eq(test.t1.a, test.t2.a)]", - " │ ├─TableReader(Build) 9990.00 root data:Selection", - " │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", - " │ │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", - " │ └─TableReader(Probe) 9990.00 root data:Selection", - " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", - " │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", - " └─HashJoin(Probe) 12487.50 root left outer join, equal:[eq(test.t8.a, test.t4.a)]", - " ├─TableReader(Build) 9990.00 root data:Selection", - " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.a))", - " │ └─TableFullScan 10000.00 cop[tikv] table:t4 keep order:false, stats:pseudo", - " └─TableReader(Probe) 10000.00 root data:TableFullScan", - " └─TableFullScan 10000.00 cop[tikv] table:t8 keep order:false, stats:pseudo" + "HashJoin 9990.00 root CARTESIAN anti semi join, other cond:eq(test.t1.a, test.t3.a)", + "├─IndexReader(Build) 10000.00 root index:IndexFullScan", + "│ └─IndexFullScan 10000.00 cop[tikv] table:t3, index:a(a) keep order:false, stats:pseudo", + "└─HashJoin(Probe) 12487.50 root inner join, equal:[eq(test.t1.a, test.t2.a)]", + " ├─TableReader(Build) 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", + " └─TableReader(Probe) 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", + " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" ], "Warning": [ - "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid", + "Warning 1815 There are no matching table names for (t3) in optimizer hint /*+ LEADING(t2, t3) */. Maybe you can use the table alias name", "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" ] }, { - "SQL": "select /*+ leading(t4, t1) */ * from ((select t8.a, t8.b from t8, t7, t6, t5 where t5.a = t6.a and t6.b=t7.b) t3 left join t4 on t3.a=t4.a) left join (t1 left join t2 on t1.a=t2.a) on t1.a=t4.a;", - "Plan": [ - "HashJoin 304261169.13 root CARTESIAN inner join", - "├─HashJoin(Build) 15593.77 root inner join, equal:[eq(test.t6.a, test.t5.a)]", - "│ ├─IndexReader(Build) 9990.00 root index:IndexFullScan", - "│ │ └─IndexFullScan 9990.00 cop[tikv] table:t5, index:a(a) keep order:false, stats:pseudo", - "│ └─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t6.b, test.t7.b)]", - "│ ├─TableReader(Build) 9980.01 root data:Selection", - "│ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t6.a)), not(isnull(test.t6.b))", - "│ │ └─TableFullScan 10000.00 cop[tikv] table:t6 keep order:false, stats:pseudo", - "│ └─TableReader(Probe) 9990.00 root data:Selection", - "│ └─Selection 9990.00 cop[tikv] not(isnull(test.t7.b))", - "│ └─TableFullScan 10000.00 cop[tikv] table:t7 keep order:false, stats:pseudo", - "└─HashJoin(Probe) 19511.72 root left outer join, equal:[eq(test.t4.a, test.t1.a)]", - " ├─HashJoin(Build) 12487.50 root left outer join, equal:[eq(test.t1.a, test.t2.a)]", - " │ ├─TableReader(Build) 9990.00 root data:Selection", - " │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", - " │ │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", - " │ └─TableReader(Probe) 9990.00 root data:Selection", - " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", - " │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", - " └─HashJoin(Probe) 12487.50 root left outer join, equal:[eq(test.t8.a, test.t4.a)]", - " ├─TableReader(Build) 9990.00 root data:Selection", - " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.a))", - " │ └─TableFullScan 10000.00 cop[tikv] table:t4 keep order:false, stats:pseudo", - " └─TableReader(Probe) 10000.00 root data:TableFullScan", - " └─TableFullScan 10000.00 cop[tikv] table:t8 keep order:false, stats:pseudo" + "SQL": "select /*+ leading(t4) */ * from t1 left join t2 on t1.a=t2.a right join t4 on t1.b = t4.b where exists (select t3.a from t3)", + "Plan": [ + "TableDual 0.00 root rows:0" + ], + "Warning": null + }, + { + "SQL": "select /*+ leading(t3@sel_2) */ * from t1 left join t2 on t1.a=t2.a where exists (select t3.a from t3)", + "Plan": [ + "TableDual 0.00 root rows:0" ], "Warning": [ - "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid", - "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" + "Warning 1815 There are no matching table names for (t3) in optimizer hint /*+ LEADING(t3) */. Maybe you can use the table alias name" ] }, { - "SQL": "select /*+ leading(t3, t1) */ * from ((select t8.a, t8.b from t8, t7, t6, t5 where t5.a = t6.a and t6.b=t7.b) t3 left join t4 on t3.a=t4.a) left join (t1 left join t2 on t1.a=t2.a) on t1.a=t4.a;", + "SQL": "select /*+ leading(t2, t3@sel_2) */ * from t1 join t2 on t1.a=t2.a where exists (select t3.a from t3)", "Plan": [ - "HashJoin 304261169.13 root CARTESIAN inner join", - "├─HashJoin(Build) 15593.77 root inner join, equal:[eq(test.t6.a, test.t5.a)]", - "│ ├─IndexReader(Build) 9990.00 root index:IndexFullScan", - "│ │ └─IndexFullScan 9990.00 cop[tikv] table:t5, index:a(a) keep order:false, stats:pseudo", - "│ └─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t6.b, test.t7.b)]", - "│ ├─TableReader(Build) 9980.01 root data:Selection", - "│ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t6.a)), not(isnull(test.t6.b))", - "│ │ └─TableFullScan 10000.00 cop[tikv] table:t6 keep order:false, stats:pseudo", - "│ └─TableReader(Probe) 9990.00 root data:Selection", - "│ └─Selection 9990.00 cop[tikv] not(isnull(test.t7.b))", - "│ └─TableFullScan 10000.00 cop[tikv] table:t7 keep order:false, stats:pseudo", - "└─HashJoin(Probe) 19511.72 root left outer join, equal:[eq(test.t4.a, test.t1.a)]", - " ├─HashJoin(Build) 12487.50 root left outer join, equal:[eq(test.t1.a, test.t2.a)]", - " │ ├─TableReader(Build) 9990.00 root data:Selection", - " │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", - " │ │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", - " │ └─TableReader(Probe) 9990.00 root data:Selection", - " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", - " │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", - " └─HashJoin(Probe) 12487.50 root left outer join, equal:[eq(test.t8.a, test.t4.a)]", - " ├─TableReader(Build) 9990.00 root data:Selection", - " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.a))", - " │ └─TableFullScan 10000.00 cop[tikv] table:t4 keep order:false, stats:pseudo", - " └─TableReader(Probe) 10000.00 root data:TableFullScan", - " └─TableFullScan 10000.00 cop[tikv] table:t8 keep order:false, stats:pseudo" + "TableDual 0.00 root rows:0" ], "Warning": [ - "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid", - "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" + "Warning 1815 There are no matching table names for (t3) in optimizer hint /*+ LEADING(t2, t3) */. Maybe you can use the table alias name" ] }, { - "SQL": "select * from ((select /*+ leading(t5) */ t8.a, t8.b from t8, t7, t6, t5 where t5.a = t6.a and t6.b=t7.b) t3 left join t4 on t3.a=t4.a) left join (t1 left join t2 on t1.a=t2.a) on t1.a=t4.a;", + "SQL": "select /*+ leading(t4) */ * from t1 join t2 on t1.a=t2.a right join t4 on t1.b = t4.b where not exists (select t3.a from t3)", "Plan": [ - "HashJoin 304261169.13 root CARTESIAN inner join", - "├─HashJoin(Build) 15593.77 root inner join, equal:[eq(test.t6.b, test.t7.b)]", - "│ ├─TableReader(Build) 9990.00 root data:Selection", - "│ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t7.b))", - "│ │ └─TableFullScan 10000.00 cop[tikv] table:t7 keep order:false, stats:pseudo", - "│ └─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t5.a, test.t6.a)]", - "│ ├─TableReader(Build) 9980.01 root data:Selection", - "│ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t6.a)), not(isnull(test.t6.b))", - "│ │ └─TableFullScan 10000.00 cop[tikv] table:t6 keep order:false, stats:pseudo", - "│ └─IndexReader(Probe) 9990.00 root index:IndexFullScan", - "│ └─IndexFullScan 9990.00 cop[tikv] table:t5, index:a(a) keep order:false, stats:pseudo", - "└─HashJoin(Probe) 19511.72 root left outer join, equal:[eq(test.t4.a, test.t1.a)]", - " ├─HashJoin(Build) 12487.50 root left outer join, equal:[eq(test.t1.a, test.t2.a)]", - " │ ├─TableReader(Build) 9990.00 root data:Selection", - " │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", - " │ │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", - " │ └─TableReader(Probe) 9990.00 root data:Selection", - " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", - " │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", - " └─HashJoin(Probe) 12487.50 root left outer join, equal:[eq(test.t8.a, test.t4.a)]", - " ├─TableReader(Build) 9990.00 root data:Selection", - " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.a))", - " │ └─TableFullScan 10000.00 cop[tikv] table:t4 keep order:false, stats:pseudo", - " └─TableReader(Probe) 10000.00 root data:TableFullScan", - " └─TableFullScan 10000.00 cop[tikv] table:t8 keep order:false, stats:pseudo" + "HashJoin 15593.77 root right outer join, equal:[eq(test.t1.b, test.t4.b)]", + "├─TableReader(Build) 10000.00 root data:TableFullScan", + "│ └─TableFullScan 10000.00 cop[tikv] table:t4 keep order:false, stats:pseudo", + "└─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t1.a, test.t2.a)]", + " ├─TableReader(Build) 9980.01 root data:Selection", + " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t1.a)), not(isnull(test.t1.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", + " └─TableReader(Probe) 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", + " └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo" ], "Warning": null }, { - "SQL": "select * from ((select /*+ leading(t6) */ t8.a, t8.b from t8, t7, t6, t5 where t5.a = t6.a and t6.b=t7.b) t3 left join t4 on t3.a=t4.a) left join (t1 left join t2 on t1.a=t2.a) on t1.a=t4.a;", + "SQL": "select /*+ leading(t3@sel_2) */ * from t1 left join t2 on t1.a=t2.a where not exists (select t3.a from t3)", "Plan": [ - "HashJoin 304261169.13 root CARTESIAN inner join", - "├─HashJoin(Build) 15593.77 root inner join, equal:[eq(test.t6.a, test.t5.a)]", - "│ ├─IndexReader(Build) 9990.00 root index:IndexFullScan", - "│ │ └─IndexFullScan 9990.00 cop[tikv] table:t5, index:a(a) keep order:false, stats:pseudo", - "│ └─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t6.b, test.t7.b)]", - "│ ├─TableReader(Build) 9980.01 root data:Selection", - "│ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t6.a)), not(isnull(test.t6.b))", - "│ │ └─TableFullScan 10000.00 cop[tikv] table:t6 keep order:false, stats:pseudo", - "│ └─TableReader(Probe) 9990.00 root data:Selection", - "│ └─Selection 9990.00 cop[tikv] not(isnull(test.t7.b))", - "│ └─TableFullScan 10000.00 cop[tikv] table:t7 keep order:false, stats:pseudo", - "└─HashJoin(Probe) 19511.72 root left outer join, equal:[eq(test.t4.a, test.t1.a)]", - " ├─HashJoin(Build) 12487.50 root left outer join, equal:[eq(test.t1.a, test.t2.a)]", - " │ ├─TableReader(Build) 9990.00 root data:Selection", - " │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", - " │ │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", - " │ └─TableReader(Probe) 9990.00 root data:Selection", - " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", - " │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", - " └─HashJoin(Probe) 12487.50 root left outer join, equal:[eq(test.t8.a, test.t4.a)]", - " ├─TableReader(Build) 9990.00 root data:Selection", - " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.a))", - " │ └─TableFullScan 10000.00 cop[tikv] table:t4 keep order:false, stats:pseudo", - " └─TableReader(Probe) 10000.00 root data:TableFullScan", - " └─TableFullScan 10000.00 cop[tikv] table:t8 keep order:false, stats:pseudo" + "HashJoin 12487.50 root left outer join, equal:[eq(test.t1.a, test.t2.a)]", + "├─TableReader(Build) 9990.00 root data:Selection", + "│ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", + "│ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", + "└─TableReader(Probe) 10000.00 root data:TableFullScan", + " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" ], - "Warning": null + "Warning": [ + "Warning 1815 There are no matching table names for (t3) in optimizer hint /*+ LEADING(t3) */. Maybe you can use the table alias name" + ] }, { - "SQL": "select * from ((select /*+ leading(t5, t7) */ t8.a, t8.b from t8, t7, t6, t5 where t5.a = t6.a and t6.b=t7.b) t3 left join t4 on t3.a=t4.a) left join (t1 left join t2 on t1.a=t2.a) on t1.a=t4.a;", + "SQL": "select /*+ leading(t2, t3@sel_2) */ * from t1 join t2 on t1.a=t2.a where not exists (select t3.a from t3)", "Plan": [ - "HashJoin 304261169.13 root CARTESIAN inner join", - "├─HashJoin(Build) 15593.77 root inner join, equal:[eq(test.t6.a, test.t5.a)]", - "│ ├─IndexReader(Build) 9990.00 root index:IndexFullScan", - "│ │ └─IndexFullScan 9990.00 cop[tikv] table:t5, index:a(a) keep order:false, stats:pseudo", - "│ └─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t6.b, test.t7.b)]", - "│ ├─TableReader(Build) 9980.01 root data:Selection", - "│ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t6.a)), not(isnull(test.t6.b))", - "│ │ └─TableFullScan 10000.00 cop[tikv] table:t6 keep order:false, stats:pseudo", - "│ └─TableReader(Probe) 9990.00 root data:Selection", - "│ └─Selection 9990.00 cop[tikv] not(isnull(test.t7.b))", - "│ └─TableFullScan 10000.00 cop[tikv] table:t7 keep order:false, stats:pseudo", - "└─HashJoin(Probe) 19511.72 root left outer join, equal:[eq(test.t4.a, test.t1.a)]", - " ├─HashJoin(Build) 12487.50 root left outer join, equal:[eq(test.t1.a, test.t2.a)]", - " │ ├─TableReader(Build) 9990.00 root data:Selection", - " │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", - " │ │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", - " │ └─TableReader(Probe) 9990.00 root data:Selection", - " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", - " │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", - " └─HashJoin(Probe) 12487.50 root left outer join, equal:[eq(test.t8.a, test.t4.a)]", - " ├─TableReader(Build) 9990.00 root data:Selection", - " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.a))", - " │ └─TableFullScan 10000.00 cop[tikv] table:t4 keep order:false, stats:pseudo", - " └─TableReader(Probe) 10000.00 root data:TableFullScan", - " └─TableFullScan 10000.00 cop[tikv] table:t8 keep order:false, stats:pseudo" + "HashJoin 12487.50 root inner join, equal:[eq(test.t1.a, test.t2.a)]", + "├─TableReader(Build) 9990.00 root data:Selection", + "│ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", + "│ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", + "└─TableReader(Probe) 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", + " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" ], "Warning": [ + "Warning 1815 There are no matching table names for (t3) in optimizer hint /*+ LEADING(t2, t3) */. Maybe you can use the table alias name", "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" ] }, { - "SQL": "select * from ((select /*+ leading(t6, t8, t7) */ t8.a, t8.b from t8, t7, t6, t5 where t5.a = t6.a and t6.b=t7.b) t3 left join t4 on t3.a=t4.a) left join (t1 left join t2 on t1.a=t2.a) on t1.a=t4.a;", + "SQL": "select /*+ leading(t4@sel_2, t1) */ * from t1 join (select * from t4) t2 on t1.a=t2.a join t3 on t2.b=t3.b;", "Plan": [ - "HashJoin 304261169.13 root CARTESIAN inner join", - "├─HashJoin(Build) 15593.77 root inner join, equal:[eq(test.t6.a, test.t5.a)]", - "│ ├─IndexReader(Build) 9990.00 root index:IndexFullScan", - "│ │ └─IndexFullScan 9990.00 cop[tikv] table:t5, index:a(a) keep order:false, stats:pseudo", - "│ └─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t6.b, test.t7.b)]", - "│ ├─TableReader(Build) 9980.01 root data:Selection", - "│ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t6.a)), not(isnull(test.t6.b))", - "│ │ └─TableFullScan 10000.00 cop[tikv] table:t6 keep order:false, stats:pseudo", - "│ └─TableReader(Probe) 9990.00 root data:Selection", - "│ └─Selection 9990.00 cop[tikv] not(isnull(test.t7.b))", - "│ └─TableFullScan 10000.00 cop[tikv] table:t7 keep order:false, stats:pseudo", - "└─HashJoin(Probe) 19511.72 root left outer join, equal:[eq(test.t4.a, test.t1.a)]", - " ├─HashJoin(Build) 12487.50 root left outer join, equal:[eq(test.t1.a, test.t2.a)]", - " │ ├─TableReader(Build) 9990.00 root data:Selection", - " │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", - " │ │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", - " │ └─TableReader(Probe) 9990.00 root data:Selection", - " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", - " │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", - " └─HashJoin(Probe) 12487.50 root left outer join, equal:[eq(test.t8.a, test.t4.a)]", - " ├─TableReader(Build) 9990.00 root data:Selection", - " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.a))", + "Projection 15593.77 root test.t1.a, test.t1.b, test.t4.a, test.t4.b, test.t3.a, test.t3.b", + "└─HashJoin 15593.77 root inner join, equal:[eq(test.t4.b, test.t3.b)]", + " ├─TableReader(Build) 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", + " └─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t4.a, test.t1.a)]", + " ├─TableReader(Build) 9980.01 root data:Selection", + " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t4.a)), not(isnull(test.t4.b))", " │ └─TableFullScan 10000.00 cop[tikv] table:t4 keep order:false, stats:pseudo", - " └─TableReader(Probe) 10000.00 root data:TableFullScan", - " └─TableFullScan 10000.00 cop[tikv] table:t8 keep order:false, stats:pseudo" + " └─TableReader(Probe) 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", + " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" ], "Warning": [ - "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" + "Warning 1815 There are no matching table names for (t4) in optimizer hint /*+ LEADING(t4, t1) */. Maybe you can use the table alias name" ] }, { - "SQL": "select /*+ leading(t3) */ * from ((select /*+ leading(t5) */ t8.a, t8.b from t8, t7, t6, t5 where t5.a = t6.a and t6.b=t7.b) t3 left join t4 on t3.a=t4.a) left join (t1 left join t2 on t1.a=t2.a) on t1.a=t4.a;", + "SQL": "select /*+ leading(t2, t4@sel_2) */ * from (select * from t4) t1 right join t2 on t1.a=t2.a join t3 on t2.b=t3.b;", "Plan": [ - "HashJoin 304261169.13 root CARTESIAN inner join", - "├─HashJoin(Build) 15593.77 root inner join, equal:[eq(test.t6.a, test.t5.a)]", - "│ ├─IndexReader(Build) 9990.00 root index:IndexFullScan", - "│ │ └─IndexFullScan 9990.00 cop[tikv] table:t5, index:a(a) keep order:false, stats:pseudo", - "│ └─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t6.b, test.t7.b)]", - "│ ├─TableReader(Build) 9980.01 root data:Selection", - "│ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t6.a)), not(isnull(test.t6.b))", - "│ │ └─TableFullScan 10000.00 cop[tikv] table:t6 keep order:false, stats:pseudo", - "│ └─TableReader(Probe) 9990.00 root data:Selection", - "│ └─Selection 9990.00 cop[tikv] not(isnull(test.t7.b))", - "│ └─TableFullScan 10000.00 cop[tikv] table:t7 keep order:false, stats:pseudo", - "└─HashJoin(Probe) 19511.72 root left outer join, equal:[eq(test.t4.a, test.t1.a)]", - " ├─HashJoin(Build) 12487.50 root left outer join, equal:[eq(test.t1.a, test.t2.a)]", - " │ ├─TableReader(Build) 9990.00 root data:Selection", - " │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", - " │ │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", - " │ └─TableReader(Probe) 9990.00 root data:Selection", - " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", - " │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", - " └─HashJoin(Probe) 12487.50 root left outer join, equal:[eq(test.t8.a, test.t4.a)]", - " ├─TableReader(Build) 9990.00 root data:Selection", - " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.a))", - " │ └─TableFullScan 10000.00 cop[tikv] table:t4 keep order:false, stats:pseudo", - " └─TableReader(Probe) 10000.00 root data:TableFullScan", - " └─TableFullScan 10000.00 cop[tikv] table:t8 keep order:false, stats:pseudo" + "HashJoin 15609.38 root inner join, equal:[eq(test.t2.b, test.t3.b)]", + "├─TableReader(Build) 9990.00 root data:Selection", + "│ └─Selection 9990.00 cop[tikv] not(isnull(test.t3.b))", + "│ └─TableFullScan 10000.00 cop[tikv] table:t3 keep order:false, stats:pseudo", + "└─HashJoin(Probe) 12487.50 root right outer join, equal:[eq(test.t4.a, test.t2.a)]", + " ├─TableReader(Build) 9990.00 root data:Selection", + " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.a))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t4 keep order:false, stats:pseudo", + " └─TableReader(Probe) 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t2.b))", + " └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo" ], "Warning": [ - "Warning 1815 We can only use one leading hint at most, when multiple leading hints are used, all leading hints will be invalid" + "Warning 1815 There are no matching table names for (t4) in optimizer hint /*+ LEADING(t2, t4) */. Maybe you can use the table alias name" ] }, { - "SQL": "select /*+ leading(t3, t1) */ * from ((select /*+ leading(t7) */ t8.a, t8.b from t8, t7, t6, t5 where t5.a = t6.a and t6.b=t7.b) t3 left join t4 on t3.a=t4.a) left join (t1 left join t2 on t1.a=t2.a) on t1.a=t4.a;", + "SQL": "select /*+ leading(t3) */ * from t1 join t2 on t1.a=t2.a right join (select * from t4) t3 on t2.b=t3.b;", "Plan": [ - "HashJoin 304261169.13 root CARTESIAN inner join", - "├─HashJoin(Build) 15593.77 root inner join, equal:[eq(test.t6.a, test.t5.a)]", - "│ ├─IndexReader(Build) 9990.00 root index:IndexFullScan", - "│ │ └─IndexFullScan 9990.00 cop[tikv] table:t5, index:a(a) keep order:false, stats:pseudo", - "│ └─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t6.b, test.t7.b)]", - "│ ├─TableReader(Build) 9980.01 root data:Selection", - "│ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t6.a)), not(isnull(test.t6.b))", - "│ │ └─TableFullScan 10000.00 cop[tikv] table:t6 keep order:false, stats:pseudo", - "│ └─TableReader(Probe) 9990.00 root data:Selection", - "│ └─Selection 9990.00 cop[tikv] not(isnull(test.t7.b))", - "│ └─TableFullScan 10000.00 cop[tikv] table:t7 keep order:false, stats:pseudo", - "└─HashJoin(Probe) 19511.72 root left outer join, equal:[eq(test.t4.a, test.t1.a)]", - " ├─HashJoin(Build) 12487.50 root left outer join, equal:[eq(test.t1.a, test.t2.a)]", - " │ ├─TableReader(Build) 9990.00 root data:Selection", - " │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", - " │ │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", - " │ └─TableReader(Probe) 9990.00 root data:Selection", - " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", - " │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", - " └─HashJoin(Probe) 12487.50 root left outer join, equal:[eq(test.t8.a, test.t4.a)]", - " ├─TableReader(Build) 9990.00 root data:Selection", - " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.a))", - " │ └─TableFullScan 10000.00 cop[tikv] table:t4 keep order:false, stats:pseudo", - " └─TableReader(Probe) 10000.00 root data:TableFullScan", - " └─TableFullScan 10000.00 cop[tikv] table:t8 keep order:false, stats:pseudo" + "HashJoin 15593.77 root right outer join, equal:[eq(test.t2.b, test.t4.b)]", + "├─TableReader(Build) 10000.00 root data:TableFullScan", + "│ └─TableFullScan 10000.00 cop[tikv] table:t4 keep order:false, stats:pseudo", + "└─Projection(Probe) 12475.01 root test.t1.a, test.t1.b, test.t2.a, test.t2.b", + " └─HashJoin 12475.01 root inner join, equal:[eq(test.t2.a, test.t1.a)]", + " ├─TableReader(Build) 9980.01 root data:Selection", + " │ └─Selection 9980.01 cop[tikv] not(isnull(test.t2.a)), not(isnull(test.t2.b))", + " │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", + " └─TableReader(Probe) 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", + " └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo" ], "Warning": [ - "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid", - "Warning 1815 We can only use one leading hint at most, when multiple leading hints are used, all leading hints will be invalid" + "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" ] }, { - "SQL": "select /*+ leading(t3, t1, t2) */ * from ((select /*+ leading(t6, t7) */ t8.a, t8.b from t8, t7, t6, t5 where t5.a = t6.a and t6.b=t7.b) t3 left join t4 on t3.a=t4.a) left join (t1 left join t2 on t1.a=t2.a) on t1.a=t4.a;", + "SQL": "select /*+ leading(t1) */ t1.a, (select min(t2.a) from t2) from t1 join t3 on t1.a = t3.a;", "Plan": [ - "HashJoin 304261169.13 root CARTESIAN inner join", - "├─HashJoin(Build) 15593.77 root inner join, equal:[eq(test.t6.a, test.t5.a)]", - "│ ├─IndexReader(Build) 9990.00 root index:IndexFullScan", - "│ │ └─IndexFullScan 9990.00 cop[tikv] table:t5, index:a(a) keep order:false, stats:pseudo", - "│ └─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t6.b, test.t7.b)]", - "│ ├─TableReader(Build) 9980.01 root data:Selection", - "│ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t6.a)), not(isnull(test.t6.b))", - "│ │ └─TableFullScan 10000.00 cop[tikv] table:t6 keep order:false, stats:pseudo", - "│ └─TableReader(Probe) 9990.00 root data:Selection", - "│ └─Selection 9990.00 cop[tikv] not(isnull(test.t7.b))", - "│ └─TableFullScan 10000.00 cop[tikv] table:t7 keep order:false, stats:pseudo", - "└─HashJoin(Probe) 19511.72 root left outer join, equal:[eq(test.t4.a, test.t1.a)]", - " ├─HashJoin(Build) 12487.50 root left outer join, equal:[eq(test.t1.a, test.t2.a)]", - " │ ├─TableReader(Build) 9990.00 root data:Selection", - " │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", - " │ │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", - " │ └─TableReader(Probe) 9990.00 root data:Selection", - " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", - " │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", - " └─HashJoin(Probe) 12487.50 root left outer join, equal:[eq(test.t8.a, test.t4.a)]", - " ├─TableReader(Build) 9990.00 root data:Selection", - " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.a))", - " │ └─TableFullScan 10000.00 cop[tikv] table:t4 keep order:false, stats:pseudo", - " └─TableReader(Probe) 10000.00 root data:TableFullScan", - " └─TableFullScan 10000.00 cop[tikv] table:t8 keep order:false, stats:pseudo" + "Projection 12487.50 root test.t1.a, ->Column#14", + "└─MergeJoin 12487.50 root inner join, left key:test.t1.a, right key:test.t3.a", + " ├─IndexReader(Build) 9990.00 root index:IndexFullScan", + " │ └─IndexFullScan 9990.00 cop[tikv] table:t3, index:a(a) keep order:true, stats:pseudo", + " └─IndexReader(Probe) 9990.00 root index:IndexFullScan", + " └─IndexFullScan 9990.00 cop[tikv] table:t1, index:a(a) keep order:true, stats:pseudo" + ], + "Warning": null + }, + { + "SQL": "select /*+ leading(t1, t2@sel_2) */ t1.a, (select min(t2.a) from t2) from t1 join t3 on t1.a = t3.a;", + "Plan": [ + "Projection 12487.50 root test.t1.a, ->Column#14", + "└─MergeJoin 12487.50 root inner join, left key:test.t1.a, right key:test.t3.a", + " ├─IndexReader(Build) 9990.00 root index:IndexFullScan", + " │ └─IndexFullScan 9990.00 cop[tikv] table:t3, index:a(a) keep order:true, stats:pseudo", + " └─IndexReader(Probe) 9990.00 root index:IndexFullScan", + " └─IndexFullScan 9990.00 cop[tikv] table:t1, index:a(a) keep order:true, stats:pseudo" ], "Warning": [ - "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid", - "Warning 1815 We can only use one leading hint at most, when multiple leading hints are used, all leading hints will be invalid" + "Warning 1815 There are no matching table names for (t2) in optimizer hint /*+ LEADING(t1, t2) */. Maybe you can use the table alias name", + "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" ] }, { - "SQL": "select /*+ leading(t3, t4) */ * from ((select /*+ leading(t5, t7, t8) */ t8.a, t8.b from t8, t7, t6, t5 where t5.a = t6.a and t6.b=t7.b) t3 left join t4 on t3.a=t4.a) left join (t1 left join t2 on t1.a=t2.a) on t1.a=t4.a;", + "SQL": "select /*+ leading(t1, t3) */ t1.a, (select min(t2.a) from t2) from t1 join t3 on t1.a = t3.a;", "Plan": [ - "HashJoin 304261169.13 root CARTESIAN inner join", - "├─HashJoin(Build) 15593.77 root inner join, equal:[eq(test.t6.a, test.t5.a)]", - "│ ├─IndexReader(Build) 9990.00 root index:IndexFullScan", - "│ │ └─IndexFullScan 9990.00 cop[tikv] table:t5, index:a(a) keep order:false, stats:pseudo", - "│ └─HashJoin(Probe) 12475.01 root inner join, equal:[eq(test.t6.b, test.t7.b)]", - "│ ├─TableReader(Build) 9980.01 root data:Selection", - "│ │ └─Selection 9980.01 cop[tikv] not(isnull(test.t6.a)), not(isnull(test.t6.b))", - "│ │ └─TableFullScan 10000.00 cop[tikv] table:t6 keep order:false, stats:pseudo", - "│ └─TableReader(Probe) 9990.00 root data:Selection", - "│ └─Selection 9990.00 cop[tikv] not(isnull(test.t7.b))", - "│ └─TableFullScan 10000.00 cop[tikv] table:t7 keep order:false, stats:pseudo", - "└─HashJoin(Probe) 19511.72 root left outer join, equal:[eq(test.t4.a, test.t1.a)]", - " ├─HashJoin(Build) 12487.50 root left outer join, equal:[eq(test.t1.a, test.t2.a)]", - " │ ├─TableReader(Build) 9990.00 root data:Selection", - " │ │ └─Selection 9990.00 cop[tikv] not(isnull(test.t2.a))", - " │ │ └─TableFullScan 10000.00 cop[tikv] table:t2 keep order:false, stats:pseudo", - " │ └─TableReader(Probe) 9990.00 root data:Selection", - " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t1.a))", - " │ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", - " └─HashJoin(Probe) 12487.50 root left outer join, equal:[eq(test.t8.a, test.t4.a)]", - " ├─TableReader(Build) 9990.00 root data:Selection", - " │ └─Selection 9990.00 cop[tikv] not(isnull(test.t4.a))", - " │ └─TableFullScan 10000.00 cop[tikv] table:t4 keep order:false, stats:pseudo", - " └─TableReader(Probe) 10000.00 root data:TableFullScan", - " └─TableFullScan 10000.00 cop[tikv] table:t8 keep order:false, stats:pseudo" + "Projection 12487.50 root test.t1.a, ->Column#14", + "└─MergeJoin 12487.50 root inner join, left key:test.t1.a, right key:test.t3.a", + " ├─IndexReader(Build) 9990.00 root index:IndexFullScan", + " │ └─IndexFullScan 9990.00 cop[tikv] table:t3, index:a(a) keep order:true, stats:pseudo", + " └─IndexReader(Probe) 9990.00 root index:IndexFullScan", + " └─IndexFullScan 9990.00 cop[tikv] table:t1, index:a(a) keep order:true, stats:pseudo" + ], + "Warning": null + }, + { + "SQL": "select /*+ leading(t2@sel_2, t1) */ t1.a, (select min(t2.a) from t2) from t1 left join t3 on t1.a = t3.a;", + "Plan": [ + "Projection 12487.50 root test.t1.a, ->Column#14", + "└─MergeJoin 12487.50 root left outer join, left key:test.t1.a, right key:test.t3.a", + " ├─IndexReader(Build) 9990.00 root index:IndexFullScan", + " │ └─IndexFullScan 9990.00 cop[tikv] table:t3, index:a(a) keep order:true, stats:pseudo", + " └─IndexReader(Probe) 10000.00 root index:IndexFullScan", + " └─IndexFullScan 10000.00 cop[tikv] table:t1, index:a(a) keep order:true, stats:pseudo" ], "Warning": [ - "Warning 1815 We can only use one leading hint at most, when multiple leading hints are used, all leading hints will be invalid" + "Warning 1815 There are no matching table names for (t2) in optimizer hint /*+ LEADING(t2, t1) */. Maybe you can use the table alias name", + "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" + ] + }, + { + "SQL": "select /*+ leading(t3, t2@sel_2) */ t1.a, (select min(t2.a) from t2) from t1 right join t3 on t1.a = t3.a;", + "Plan": [ + "Projection 12487.50 root test.t1.a, ->Column#14", + "└─MergeJoin 12487.50 root right outer join, left key:test.t1.a, right key:test.t3.a", + " ├─IndexReader(Build) 9990.00 root index:IndexFullScan", + " │ └─IndexFullScan 9990.00 cop[tikv] table:t1, index:a(a) keep order:true, stats:pseudo", + " └─IndexReader(Probe) 10000.00 root index:IndexFullScan", + " └─IndexFullScan 10000.00 cop[tikv] table:t3, index:a(a) keep order:true, stats:pseudo" + ], + "Warning": [ + "Warning 1815 There are no matching table names for (t2) in optimizer hint /*+ LEADING(t3, t2) */. Maybe you can use the table alias name", + "Warning 1815 leading hint is inapplicable, check if the leading hint table is valid" ] } ] diff --git a/planner/core/testdata/plan_suite_in.json b/planner/core/testdata/plan_suite_in.json index ce4c38cbc695d..5d87990f72a89 100644 --- a/planner/core/testdata/plan_suite_in.json +++ b/planner/core/testdata/plan_suite_in.json @@ -572,6 +572,26 @@ "select /*+ LIMIT_TO_COP() */ a from tn where a > 10 limit 1" ] }, + { + "name": "TestCTEMergeHint", + "cases": [ + "with cte as (select /*+ MERGE() */ * from tc where tc.a < 60) select * from cte where cte.a <18", + "with cte as (select * from tc where tc.a < 60) select * from cte where cte.a <18", + "WITH cte1 AS (SELECT /*+ MERGE() */ a FROM tc), cte2 AS (SELECT /*+ MERGE()*/ c FROM te) SELECT * FROM cte1 JOIN cte2 WHERE cte1.a = cte2.c;", + "WITH cte1 AS (SELECT a FROM tc), cte2 AS (SELECT /*+ MERGE() */ c FROM te) SELECT * FROM cte1 JOIN cte2 WHERE cte1.a = cte2.c;", + "with recursive cte1(c1) as (select 1 union select /*+ MERGE() */ c1 + 1 c1 from cte1 where c1 < 100) select * from cte1;", + "WITH cte1 AS (SELECT * FROM t1) SELECT /*+ MERGE() */ * FROM cte1 join t2 on cte1.a = t2.b;", + "with cte1 as (with cte3 as (select /*+ MERGE() */ * from t1),cte4 as (select /*+ MERGE() */ * from t2) select /*+ MERGE() */ * from cte3,cte4) ,cte2 as (select /*+ MERGE() */ * from t3) select * from cte1,cte2;", + "with cte1 as (select * from tc), cte2 as (with cte3 as (select /*+ MERGE() */ * from te) ,cte4 as (select * from tc) select * from cte3,cte4) select * from cte2;", + "with cte1 as (with cte2 as (select /*+ MERGE() */ * from te) ,cte3 as (select /*+ MERGE() */ * from tc) select /*+ MERGE() */ * from cte2,cte3) select * from cte1;", + "with cte1 as (select * from t1), cte2 as (with cte3 as (with cte5 as (select * from t2),cte6 as (select * from t3) select * from cte5,cte6) ,cte4 as (select * from t4) select * from cte3,cte4) select * from cte1,cte2;", + "with cte1 as (select /*+ MERGE() */ * from t1), cte2 as (with cte3 as (with cte5 as (select * from t2),cte6 as (select * from t3) select * from cte5,cte6) ,cte4 as (select * from t4) select * from cte3,cte4) select * from cte1,cte2;", + "with cte1 as (select * from t1), cte2 as (with cte3 as (with cte5 as (select * from t2),cte6 as (select * from t3) select * from cte5,cte6) ,cte4 as (select /*+ MERGE() */ * from t4) select * from cte3,cte4) select * from cte1,cte2;", + "with cte1 as (select * from t1), cte2 as (with cte3 as (with cte5 as (select * from t2),cte6 as (select /*+ MERGE() */ * from t3) select * from cte5,cte6) ,cte4 as (select * from t4) select * from cte3,cte4) select * from cte1,cte2;", + "with cte2 as (with cte4 as (select * from tc) select * from te, cte4) select * from cte2;", + "with cte2 as (with cte4 as (select /*+ merge() */ * from tc) select * from te, cte4) select * from cte2;" + ] + }, { "name": "TestPushdownDistinctEnable", "cases": [ @@ -747,6 +767,14 @@ "select * from t where t.a < 3 and t.a < 3" ] }, + { + "name": "TestSkewDistinctAgg", + "cases": [ + "select date_format(d,'%Y') as df, sum(a), count(b), count(distinct c) from t group by date_format(d,'%Y')", + "select d, a, count(*), count(b), count(distinct c) from t group by d, a", + "select d, sum(a), count(b), avg(distinct c) from t group by d" + ] + }, { "name": "TestMPPSinglePartitionType", "cases": [ @@ -783,5 +811,16 @@ "select * from employee e1 join (select deptid+1 d, count(empid) a from employee group by d) e2 on e1.deptid = e2.d", "select * from (select deptid+1 d, count(empid) a from employee group by d) e1 join (select deptid+1 d, count(empid) a from employee group by d) e2 on e1.d = e2.d" ] + }, + { + "name": "TestSemiJoinRewriteHints", + "cases": [ + "select /*+ SEMI_JOIN_REWRITE() */ * from t", + "select * from t where a > (select /*+ SEMI_JOIN_REWRITE() */ min(b) from t t1 where t1.c = t.c)", + "select * from t where exists (select /*+ SEMI_JOIN_REWRITE() */ 1 from t t1 where t1.a=t.a)", + "select * from t where exists (select /*+ SEMI_JOIN_REWRITE() */ t.b from t t1 where t1.a=t.a)", + "select exists(select /*+ SEMI_JOIN_REWRITE() */ * from t t1 where t1.a=t.a) from t", + "select * from t where exists (select /*+ SEMI_JOIN_REWRITE() */ 1 from t t1 where t1.a > t.a)" + ] } ] diff --git a/planner/core/testdata/plan_suite_out.json b/planner/core/testdata/plan_suite_out.json index 43c97667fd49d..f9969e55ed9d5 100644 --- a/planner/core/testdata/plan_suite_out.json +++ b/planner/core/testdata/plan_suite_out.json @@ -1594,6 +1594,281 @@ } ] }, + { + "Name": "TestCTEMergeHint", + "Cases": [ + { + "SQL": "with cte as (select /*+ MERGE()*/ * from tc where tc.a < 60) select * from cte where cte.a <18", + "Plan": [ + "TableReader 4.00 root data:Selection", + "└─Selection 4.00 cop[tikv] lt(test.tc.a, 18), lt(test.tc.a, 60)", + " └─TableFullScan 7.00 cop[tikv] table:tc keep order:false" + ], + "Warning": null + }, + { + "SQL": "with cte as (select * from tc where tc.a < 60) select * from cte where cte.a <18", + "Plan": [ + "Selection 3.20 root lt(test.tc.a, 18)", + "└─CTEFullScan 4.00 root CTE:cte data:CTE_0", + "CTE_0 4.00 root Non-Recursive CTE", + "└─TableReader(Seed Part) 4.00 root data:Selection", + " └─Selection 4.00 cop[tikv] lt(test.tc.a, 18), lt(test.tc.a, 60)", + " └─TableFullScan 7.00 cop[tikv] table:tc keep order:false" + ], + "Warning": null + }, + { + "SQL": "WITH cte1 AS (SELECT /*+ MERGE()*/ a FROM tc), cte2 AS (SELECT /*+ MERGE()*/ c FROM te) SELECT * FROM cte1 JOIN cte2 WHERE cte1.a = cte2.c;", + "Plan": [ + "HashJoin 7.00 root inner join, equal:[eq(test.tc.a, test.te.c)]", + "├─TableReader(Build) 7.00 root data:Selection", + "│ └─Selection 7.00 cop[tikv] not(isnull(test.te.c))", + "│ └─TableFullScan 7.00 cop[tikv] table:te keep order:false", + "└─TableReader(Probe) 7.00 root data:Selection", + " └─Selection 7.00 cop[tikv] not(isnull(test.tc.a))", + " └─TableFullScan 7.00 cop[tikv] table:tc keep order:false" + ], + "Warning": null + }, + { + "SQL": "WITH cte1 AS (SELECT a FROM tc), cte2 AS (SELECT /*+ MERGE()*/ c FROM te) SELECT * FROM cte1 JOIN cte2 WHERE cte1.a = cte2.c;", + "Plan": [ + "Projection 4.48 root test.tc.a, test.te.c", + "└─HashJoin 4.48 root inner join, equal:[eq(test.te.c, test.tc.a)]", + " ├─Selection(Build) 4.48 root not(isnull(test.tc.a))", + " │ └─CTEFullScan 5.60 root CTE:cte1 data:CTE_0", + " └─TableReader(Probe) 7.00 root data:Selection", + " └─Selection 7.00 cop[tikv] not(isnull(test.te.c))", + " └─TableFullScan 7.00 cop[tikv] table:te keep order:false", + "CTE_0 5.60 root Non-Recursive CTE", + "└─Selection(Seed Part) 5.60 root not(isnull(test.tc.a))", + " └─TableReader 7.00 root data:TableFullScan", + " └─TableFullScan 7.00 cop[tikv] table:tc keep order:false" + ], + "Warning": null + }, + { + "SQL": "with recursive cte1(c1) as (select 1 union select /*+ MERGE() */ c1 + 1 c1 from cte1 where c1 < 100) select * from cte1;", + "Plan": [ + "CTEFullScan 2.00 root CTE:cte1 data:CTE_0", + "CTE_0 2.00 root Recursive CTE", + "├─Projection(Seed Part) 1.00 root 1->Column#2", + "│ └─TableDual 1.00 root rows:1", + "└─Projection(Recursive Part) 0.80 root cast(plus(Column#3, 1), bigint(1) BINARY)->Column#5", + " └─Selection 0.80 root lt(Column#3, 100)", + " └─CTETable 1.00 root Scan on CTE_0" + ], + "Warning": [ + "[planner:1815]Hint merge() is inapplicable. Please check whether the CTE use recursive." + ] + }, + { + "SQL": "WITH cte1 AS (SELECT * FROM t1) SELECT /*+ MERGE() */ * FROM cte1 join t2 on cte1.a = t2.b;", + "Plan": [ + "Projection 4.48 root test.t1.a, test.t2.b", + "└─HashJoin 4.48 root inner join, equal:[eq(test.t2.b, test.t1.a)]", + " ├─Selection(Build) 4.48 root not(isnull(test.t1.a))", + " │ └─CTEFullScan 5.60 root CTE:cte1 data:CTE_0", + " └─TableReader(Probe) 7.00 root data:Selection", + " └─Selection 7.00 cop[tikv] not(isnull(test.t2.b))", + " └─TableFullScan 7.00 cop[tikv] table:t2 keep order:false", + "CTE_0 5.60 root Non-Recursive CTE", + "└─Selection(Seed Part) 5.60 root not(isnull(test.t1.a))", + " └─TableReader 7.00 root data:TableFullScan", + " └─TableFullScan 7.00 cop[tikv] table:t1 keep order:false" + ], + "Warning": [ + "[planner:1815]Hint merge() is inapplicable. Please check whether the hint is using in outer query, you should use this hint in CTE inner query." + ] + }, + { + "SQL": "with cte1 as (with cte3 as (select /*+ MERGE() */ * from t1),cte4 as (select /*+ MERGE() */ * from t2) select /*+ MERGE() */ * from cte3,cte4) ,cte2 as (select /*+ MERGE() */ * from t3) select * from cte1,cte2;", + "Plan": [ + "HashJoin 343.00 root CARTESIAN inner join", + "├─TableReader(Build) 7.00 root data:TableFullScan", + "│ └─TableFullScan 7.00 cop[tikv] table:t3 keep order:false", + "└─HashJoin(Probe) 49.00 root CARTESIAN inner join", + " ├─TableReader(Build) 7.00 root data:TableFullScan", + " │ └─TableFullScan 7.00 cop[tikv] table:t2 keep order:false", + " └─TableReader(Probe) 7.00 root data:TableFullScan", + " └─TableFullScan 7.00 cop[tikv] table:t1 keep order:false" + ], + "Warning": null + }, + { + "SQL": "with cte1 as (select * from tc), cte2 as (with cte3 as (select /*+ MERGE() */ * from te) ,cte4 as (select * from tc) select * from cte3,cte4) select * from cte2;", + "Plan": [ + "CTEFullScan 49.00 root CTE:cte2 data:CTE_1", + "CTE_1 49.00 root Non-Recursive CTE", + "└─HashJoin(Seed Part) 49.00 root CARTESIAN inner join", + " ├─CTEFullScan(Build) 7.00 root CTE:cte4 data:CTE_3", + " └─TableReader(Probe) 7.00 root data:TableFullScan", + " └─TableFullScan 7.00 cop[tikv] table:te keep order:false", + "CTE_3 7.00 root Non-Recursive CTE", + "└─TableReader(Seed Part) 7.00 root data:TableFullScan", + " └─TableFullScan 7.00 cop[tikv] table:tc keep order:false" + ], + "Warning": null + }, + { + "SQL": "with cte1 as (with cte2 as (select /*+ MERGE() */ * from te) ,cte3 as (select /*+ MERGE() */ * from tc) select /*+ MERGE() */ * from cte2,cte3) select * from cte1;", + "Plan": [ + "HashJoin 49.00 root CARTESIAN inner join", + "├─TableReader(Build) 7.00 root data:TableFullScan", + "│ └─TableFullScan 7.00 cop[tikv] table:tc keep order:false", + "└─TableReader(Probe) 7.00 root data:TableFullScan", + " └─TableFullScan 7.00 cop[tikv] table:te keep order:false" + ], + "Warning": null + }, + { + "SQL": "with cte1 as (select * from t1), cte2 as (with cte3 as (with cte5 as (select * from t2),cte6 as (select * from t3) select * from cte5,cte6) ,cte4 as (select * from t4) select * from cte3,cte4) select * from cte1,cte2;", + "Plan": [ + "HashJoin 1920.80 root CARTESIAN inner join", + "├─CTEFullScan(Build) 5.60 root CTE:cte1 data:CTE_0", + "└─CTEFullScan(Probe) 343.00 root CTE:cte2 data:CTE_1", + "CTE_0 5.60 root Non-Recursive CTE", + "└─Selection(Seed Part) 5.60 root 1", + " └─TableReader 7.00 root data:TableFullScan", + " └─TableFullScan 7.00 cop[tikv] table:t1 keep order:false", + "CTE_1 343.00 root Non-Recursive CTE", + "└─Projection(Seed Part) 343.00 root test.t2.b, test.t3.c, test.t4.d", + " └─HashJoin 343.00 root CARTESIAN inner join", + " ├─CTEFullScan(Build) 7.00 root CTE:cte4 data:CTE_5", + " └─CTEFullScan(Probe) 49.00 root CTE:cte3 data:CTE_2", + "CTE_5 7.00 root Non-Recursive CTE", + "└─TableReader(Seed Part) 7.00 root data:TableFullScan", + " └─TableFullScan 7.00 cop[tikv] table:t4 keep order:false", + "CTE_2 49.00 root Non-Recursive CTE", + "└─HashJoin(Seed Part) 49.00 root CARTESIAN inner join", + " ├─CTEFullScan(Build) 7.00 root CTE:cte6 data:CTE_4", + " └─CTEFullScan(Probe) 7.00 root CTE:cte5 data:CTE_3", + "CTE_4 7.00 root Non-Recursive CTE", + "└─TableReader(Seed Part) 7.00 root data:TableFullScan", + " └─TableFullScan 7.00 cop[tikv] table:t3 keep order:false", + "CTE_3 7.00 root Non-Recursive CTE", + "└─TableReader(Seed Part) 7.00 root data:TableFullScan", + " └─TableFullScan 7.00 cop[tikv] table:t2 keep order:false" + ], + "Warning": null + }, + { + "SQL": "with cte1 as (select /*+ MERGE() */ * from t1), cte2 as (with cte3 as (with cte5 as (select * from t2),cte6 as (select * from t3) select * from cte5,cte6) ,cte4 as (select * from t4) select * from cte3,cte4) select * from cte1,cte2;", + "Plan": [ + "HashJoin 2401.00 root CARTESIAN inner join", + "├─TableReader(Build) 7.00 root data:TableFullScan", + "│ └─TableFullScan 7.00 cop[tikv] table:t1 keep order:false", + "└─CTEFullScan(Probe) 343.00 root CTE:cte2 data:CTE_1", + "CTE_1 343.00 root Non-Recursive CTE", + "└─Projection(Seed Part) 343.00 root test.t2.b, test.t3.c, test.t4.d", + " └─HashJoin 343.00 root CARTESIAN inner join", + " ├─CTEFullScan(Build) 7.00 root CTE:cte4 data:CTE_5", + " └─CTEFullScan(Probe) 49.00 root CTE:cte3 data:CTE_2", + "CTE_5 7.00 root Non-Recursive CTE", + "└─TableReader(Seed Part) 7.00 root data:TableFullScan", + " └─TableFullScan 7.00 cop[tikv] table:t4 keep order:false", + "CTE_2 49.00 root Non-Recursive CTE", + "└─HashJoin(Seed Part) 49.00 root CARTESIAN inner join", + " ├─CTEFullScan(Build) 7.00 root CTE:cte6 data:CTE_4", + " └─CTEFullScan(Probe) 7.00 root CTE:cte5 data:CTE_3", + "CTE_4 7.00 root Non-Recursive CTE", + "└─TableReader(Seed Part) 7.00 root data:TableFullScan", + " └─TableFullScan 7.00 cop[tikv] table:t3 keep order:false", + "CTE_3 7.00 root Non-Recursive CTE", + "└─TableReader(Seed Part) 7.00 root data:TableFullScan", + " └─TableFullScan 7.00 cop[tikv] table:t2 keep order:false" + ], + "Warning": null + }, + { + "SQL": "with cte1 as (select * from t1), cte2 as (with cte3 as (with cte5 as (select * from t2),cte6 as (select * from t3) select * from cte5,cte6) ,cte4 as (select /*+ MERGE() */ * from t4) select * from cte3,cte4) select * from cte1,cte2;", + "Plan": [ + "HashJoin 1920.80 root CARTESIAN inner join", + "├─CTEFullScan(Build) 5.60 root CTE:cte1 data:CTE_0", + "└─CTEFullScan(Probe) 343.00 root CTE:cte2 data:CTE_1", + "CTE_0 5.60 root Non-Recursive CTE", + "└─Selection(Seed Part) 5.60 root 1", + " └─TableReader 7.00 root data:TableFullScan", + " └─TableFullScan 7.00 cop[tikv] table:t1 keep order:false", + "CTE_1 343.00 root Non-Recursive CTE", + "└─Projection(Seed Part) 343.00 root test.t2.b, test.t3.c, test.t4.d", + " └─HashJoin 343.00 root CARTESIAN inner join", + " ├─TableReader(Build) 7.00 root data:TableFullScan", + " │ └─TableFullScan 7.00 cop[tikv] table:t4 keep order:false", + " └─CTEFullScan(Probe) 49.00 root CTE:cte3 data:CTE_2", + "CTE_2 49.00 root Non-Recursive CTE", + "└─HashJoin(Seed Part) 49.00 root CARTESIAN inner join", + " ├─CTEFullScan(Build) 7.00 root CTE:cte6 data:CTE_4", + " └─CTEFullScan(Probe) 7.00 root CTE:cte5 data:CTE_3", + "CTE_4 7.00 root Non-Recursive CTE", + "└─TableReader(Seed Part) 7.00 root data:TableFullScan", + " └─TableFullScan 7.00 cop[tikv] table:t3 keep order:false", + "CTE_3 7.00 root Non-Recursive CTE", + "└─TableReader(Seed Part) 7.00 root data:TableFullScan", + " └─TableFullScan 7.00 cop[tikv] table:t2 keep order:false" + ], + "Warning": null + }, + { + "SQL": "with cte1 as (select * from t1), cte2 as (with cte3 as (with cte5 as (select * from t2),cte6 as (select /*+ MERGE() */ * from t3) select * from cte5,cte6) ,cte4 as (select * from t4) select * from cte3,cte4) select * from cte1,cte2;", + "Plan": [ + "HashJoin 1920.80 root CARTESIAN inner join", + "├─CTEFullScan(Build) 5.60 root CTE:cte1 data:CTE_0", + "└─CTEFullScan(Probe) 343.00 root CTE:cte2 data:CTE_1", + "CTE_0 5.60 root Non-Recursive CTE", + "└─Selection(Seed Part) 5.60 root 1", + " └─TableReader 7.00 root data:TableFullScan", + " └─TableFullScan 7.00 cop[tikv] table:t1 keep order:false", + "CTE_1 343.00 root Non-Recursive CTE", + "└─Projection(Seed Part) 343.00 root test.t2.b, test.t3.c, test.t4.d", + " └─HashJoin 343.00 root CARTESIAN inner join", + " ├─CTEFullScan(Build) 7.00 root CTE:cte4 data:CTE_5", + " └─CTEFullScan(Probe) 49.00 root CTE:cte3 data:CTE_2", + "CTE_5 7.00 root Non-Recursive CTE", + "└─TableReader(Seed Part) 7.00 root data:TableFullScan", + " └─TableFullScan 7.00 cop[tikv] table:t4 keep order:false", + "CTE_2 49.00 root Non-Recursive CTE", + "└─HashJoin(Seed Part) 49.00 root CARTESIAN inner join", + " ├─TableReader(Build) 7.00 root data:TableFullScan", + " │ └─TableFullScan 7.00 cop[tikv] table:t3 keep order:false", + " └─CTEFullScan(Probe) 7.00 root CTE:cte5 data:CTE_3", + "CTE_3 7.00 root Non-Recursive CTE", + "└─TableReader(Seed Part) 7.00 root data:TableFullScan", + " └─TableFullScan 7.00 cop[tikv] table:t2 keep order:false" + ], + "Warning": null + }, + { + "SQL": "with cte2 as (with cte4 as (select * from tc) select * from te, cte4) select * from cte2;", + "Plan": [ + "CTEFullScan 49.00 root CTE:cte2 data:CTE_0", + "CTE_0 49.00 root Non-Recursive CTE", + "└─HashJoin(Seed Part) 49.00 root CARTESIAN inner join", + " ├─CTEFullScan(Build) 7.00 root CTE:cte4 data:CTE_1", + " └─TableReader(Probe) 7.00 root data:TableFullScan", + " └─TableFullScan 7.00 cop[tikv] table:te keep order:false", + "CTE_1 7.00 root Non-Recursive CTE", + "└─TableReader(Seed Part) 7.00 root data:TableFullScan", + " └─TableFullScan 7.00 cop[tikv] table:tc keep order:false" + ], + "Warning": null + }, + { + "SQL": "with cte2 as (with cte4 as (select /*+ merge() */ * from tc) select * from te, cte4) select * from cte2;", + "Plan": [ + "CTEFullScan 49.00 root CTE:cte2 data:CTE_0", + "CTE_0 49.00 root Non-Recursive CTE", + "└─HashJoin(Seed Part) 49.00 root CARTESIAN inner join", + " ├─TableReader(Build) 7.00 root data:TableFullScan", + " │ └─TableFullScan 7.00 cop[tikv] table:tc keep order:false", + " └─TableReader(Probe) 7.00 root data:TableFullScan", + " └─TableFullScan 7.00 cop[tikv] table:te keep order:false" + ], + "Warning": null + } + ] + }, { "Name": "TestPushdownDistinctEnable", "Cases": [ @@ -2678,6 +2953,46 @@ } ] }, + { + "Name": "TestSkewDistinctAgg", + "Cases": [ + { + "SQL": "select date_format(d,'%Y') as df, sum(a), count(b), count(distinct c) from t group by date_format(d,'%Y')", + "Plan": [ + "Projection 8000.00 root date_format(test.t.d, %Y)->Column#9, Column#6, cast(Column#13, bigint(21) BINARY)->Column#7, Column#8", + "└─HashAgg 8000.00 root group by:Column#29, funcs:sum(Column#25)->Column#6, funcs:sum(Column#26)->Column#13, funcs:count(Column#27)->Column#8, funcs:firstrow(Column#28)->test.t.d", + " └─Projection 8000.00 root Column#11, cast(Column#12, decimal(20,0) BINARY)->Column#26, test.t.c, test.t.d, date_format(test.t.d, %Y)->Column#29", + " └─HashAgg 8000.00 root group by:Column#23, Column#24, funcs:sum(Column#19)->Column#11, funcs:count(Column#20)->Column#12, funcs:firstrow(Column#21)->test.t.c, funcs:firstrow(Column#22)->test.t.d", + " └─Projection 10000.00 root cast(test.t.a, decimal(10,0) BINARY)->Column#19, test.t.b, test.t.c, test.t.d, date_format(test.t.d, %Y)->Column#23, test.t.c", + " └─TableReader 10000.00 root data:TableFullScan", + " └─TableFullScan 10000.00 cop[tikv] table:t keep order:false, stats:pseudo" + ] + }, + { + "SQL": "select d, a, count(*), count(b), count(distinct c) from t group by d, a", + "Plan": [ + "Projection 8000.00 root test.t.d, test.t.a, cast(Column#10, bigint(21) BINARY)->Column#6, cast(Column#12, bigint(21) BINARY)->Column#7, Column#8", + "└─HashAgg 8000.00 root group by:Column#23, Column#24, funcs:sum(Column#18)->Column#10, funcs:sum(Column#19)->Column#12, funcs:count(Column#20)->Column#8, funcs:firstrow(Column#21)->test.t.a, funcs:firstrow(Column#22)->test.t.d", + " └─Projection 8000.00 root cast(Column#9, decimal(20,0) BINARY)->Column#18, cast(Column#11, decimal(20,0) BINARY)->Column#19, test.t.c, test.t.a, test.t.d, test.t.d, test.t.a", + " └─HashAgg 8000.00 root group by:test.t.a, test.t.c, test.t.d, funcs:count(1)->Column#9, funcs:count(test.t.b)->Column#11, funcs:firstrow(test.t.c)->test.t.c, funcs:firstrow(test.t.a)->test.t.a, funcs:firstrow(test.t.d)->test.t.d", + " └─TableReader 10000.00 root data:TableFullScan", + " └─TableFullScan 10000.00 cop[tikv] table:t keep order:false, stats:pseudo" + ] + }, + { + "SQL": "select d, sum(a), count(b), avg(distinct c) from t group by d", + "Plan": [ + "Projection 8000.00 root test.t.d, Column#6, cast(Column#11, bigint(21) BINARY)->Column#7, Column#8", + "└─HashAgg 8000.00 root group by:Column#20, funcs:sum(Column#16)->Column#6, funcs:sum(Column#17)->Column#11, funcs:avg(Column#18)->Column#8, funcs:firstrow(Column#19)->test.t.d", + " └─Projection 8000.00 root Column#9, cast(Column#10, decimal(20,0) BINARY)->Column#17, cast(test.t.c, decimal(15,4) BINARY)->Column#18, test.t.d, test.t.d", + " └─HashAgg 8000.00 root group by:test.t.c, test.t.d, funcs:sum(Column#12)->Column#9, funcs:count(Column#13)->Column#10, funcs:firstrow(test.t.c)->test.t.c, funcs:firstrow(test.t.d)->test.t.d", + " └─TableReader 8000.00 root data:HashAgg", + " └─HashAgg 8000.00 cop[tikv] group by:test.t.c, test.t.d, funcs:sum(test.t.a)->Column#12, funcs:count(test.t.b)->Column#13", + " └─TableFullScan 10000.00 cop[tikv] table:t keep order:false, stats:pseudo" + ] + } + ] + }, { "Name": "TestMPPSinglePartitionType", "Cases": [ @@ -3078,5 +3393,86 @@ ] } ] + }, + { + "Name": "TestSemiJoinRewriteHints", + "Cases": [ + { + "SQL": "select /*+ SEMI_JOIN_REWRITE() */ * from t", + "Plan": [ + "TableReader 10000.00 root data:TableFullScan", + "└─TableFullScan 10000.00 cop[tikv] table:t keep order:false, stats:pseudo" + ], + "Warning": "[planner:1815]The SEMI_JOIN_REWRITE hint is not used correctly, maybe it's not in a subquery or the subquery is not EXISTS clause." + }, + { + "SQL": "select * from t where a > (select /*+ SEMI_JOIN_REWRITE() */ min(b) from t t1 where t1.c = t.c)", + "Plan": [ + "HashJoin 7992.00 root inner join, equal:[eq(test.t.c, test.t.c)], other cond:gt(test.t.a, Column#9)", + "├─Selection(Build) 6393.60 root not(isnull(Column#9))", + "│ └─HashAgg 7992.00 root group by:test.t.c, funcs:min(Column#10)->Column#9, funcs:firstrow(test.t.c)->test.t.c", + "│ └─TableReader 7992.00 root data:HashAgg", + "│ └─HashAgg 7992.00 cop[tikv] group by:test.t.c, funcs:min(test.t.b)->Column#10", + "│ └─Selection 9990.00 cop[tikv] not(isnull(test.t.c))", + "│ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", + "└─TableReader(Probe) 9980.01 root data:Selection", + " └─Selection 9980.01 cop[tikv] not(isnull(test.t.a)), not(isnull(test.t.c))", + " └─TableFullScan 10000.00 cop[tikv] table:t keep order:false, stats:pseudo" + ], + "Warning": "[planner:1815]The SEMI_JOIN_REWRITE hint is not used correctly, maybe it's not in a subquery or the subquery is not EXISTS clause." + }, + { + "SQL": "select * from t where exists (select /*+ SEMI_JOIN_REWRITE() */ 1 from t t1 where t1.a=t.a)", + "Plan": [ + "HashJoin 9990.00 root inner join, equal:[eq(test.t.a, test.t.a)]", + "├─HashAgg(Build) 7992.00 root group by:test.t.a, funcs:firstrow(test.t.a)->test.t.a", + "│ └─TableReader 9990.00 root data:Selection", + "│ └─Selection 9990.00 cop[tikv] not(isnull(test.t.a))", + "│ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", + "└─TableReader(Probe) 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t.a))", + " └─TableFullScan 10000.00 cop[tikv] table:t keep order:false, stats:pseudo" + ], + "Warning": "" + }, + { + "SQL": "select * from t where exists (select /*+ SEMI_JOIN_REWRITE() */ t.b from t t1 where t1.a=t.a)", + "Plan": [ + "HashJoin 9990.00 root inner join, equal:[eq(test.t.a, test.t.a)]", + "├─HashAgg(Build) 7992.00 root group by:test.t.a, funcs:firstrow(test.t.a)->test.t.a", + "│ └─TableReader 9990.00 root data:Selection", + "│ └─Selection 9990.00 cop[tikv] not(isnull(test.t.a))", + "│ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", + "└─TableReader(Probe) 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t.a))", + " └─TableFullScan 10000.00 cop[tikv] table:t keep order:false, stats:pseudo" + ], + "Warning": "" + }, + { + "SQL": "select exists(select /*+ SEMI_JOIN_REWRITE() */ * from t t1 where t1.a=t.a) from t", + "Plan": [ + "HashJoin 10000.00 root left outer semi join, equal:[eq(test.t.a, test.t.a)]", + "├─TableReader(Build) 10000.00 root data:TableFullScan", + "│ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", + "└─TableReader(Probe) 10000.00 root data:TableFullScan", + " └─TableFullScan 10000.00 cop[tikv] table:t keep order:false, stats:pseudo" + ], + "Warning": "[planner:1815]SEMI_JOIN_REWRITE() is inapplicable for LeftOuterSemiJoin." + }, + { + "SQL": "select * from t where exists (select /*+ SEMI_JOIN_REWRITE() */ 1 from t t1 where t1.a > t.a)", + "Plan": [ + "HashJoin 7992.00 root CARTESIAN semi join, other cond:gt(test.t.a, test.t.a)", + "├─TableReader(Build) 9990.00 root data:Selection", + "│ └─Selection 9990.00 cop[tikv] not(isnull(test.t.a))", + "│ └─TableFullScan 10000.00 cop[tikv] table:t1 keep order:false, stats:pseudo", + "└─TableReader(Probe) 9990.00 root data:Selection", + " └─Selection 9990.00 cop[tikv] not(isnull(test.t.a))", + " └─TableFullScan 10000.00 cop[tikv] table:t keep order:false, stats:pseudo" + ], + "Warning": "[planner:1815]SEMI_JOIN_REWRITE() is inapplicable for SemiJoin with left conditions or other conditions." + } + ] } ] diff --git a/planner/core/testdata/plan_suite_unexported_in.json b/planner/core/testdata/plan_suite_unexported_in.json index 0e68e3cd27deb..7c934c7be798f 100644 --- a/planner/core/testdata/plan_suite_unexported_in.json +++ b/planner/core/testdata/plan_suite_unexported_in.json @@ -137,6 +137,17 @@ "select t1.b from t t1 where t1.b = (select max(t2.a) from t t2 where t1.b=t2.b order by t1.a)", "select t1.b from t t1 where t1.b in (select t2.b from t t2 where t2.a = t1.a order by t2.a)", "select t1.b from t t1 where exists(select t2.b from t t2 where t2.a = t1.a order by t2.a)", + "select t1.b from t t1 where exists(select /*+ SEMI_JOIN_REWRITE() */ t2.b from t t2 where t2.a = t1.a order by t2.a)", + "select a from t where exists(select 1 from t as x where x.a < t.a)", + "select a from t where exists(select 1 from t as x where x.a = t.a and t.a < 1 and x.a < 1)", + "select a from t where exists(select 1 from t as x where x.a = t.a and x.a < 1) and a < 1", + "select a from t where exists(select 1 from t as x where x.a = t.a) and exists(select 1 from t as x where x.a = t.a)", + "select a from t where exists(select /*+ SEMI_JOIN_REWRITE() */ 1 from t as x where x.a < t.a)", + "select a from t where exists(select /*+ SEMI_JOIN_REWRITE() */ 1 from t as x where x.a = t.a and t.a < 1 and x.a < 1)", + "select a from t where exists(select /*+ SEMI_JOIN_REWRITE() */ 1 from t as x where x.a = t.a and x.a < 1) and a < 1", + "select a from t where exists(select /*+ SEMI_JOIN_REWRITE() */ 1 from t as x where x.a = t.a) and exists(select 1 from t as x where x.a = t.a)", + "select a from t where exists(select 1 from t as x where x.a = t.a) and exists(select /*+ SEMI_JOIN_REWRITE() */ 1 from t as x where x.a = t.a)", + "select a from t where exists(select /*+ SEMI_JOIN_REWRITE() */ 1 from t as x where x.a = t.a) and exists(select /*+ SEMI_JOIN_REWRITE() */ 1 from t as x where x.a = t.a)", // `Sort` will not be eliminated, if it is not the top level operator. "select t1.b from t t1 where t1.b = (select t2.b from t t2 where t2.a = t1.a order by t2.a limit 1)", "select (select 1 from t t1 where t1.a = t2.a) from t t2", diff --git a/planner/core/testdata/plan_suite_unexported_out.json b/planner/core/testdata/plan_suite_unexported_out.json index 562fcacf94547..ce05997328fde 100644 --- a/planner/core/testdata/plan_suite_unexported_out.json +++ b/planner/core/testdata/plan_suite_unexported_out.json @@ -124,6 +124,17 @@ "Join{DataScan(t1)->DataScan(t2)->Aggr(max(test.t.a),firstrow(test.t.b))}(test.t.b,test.t.b)->Projection->Sel([eq(test.t.b, Column#25)])->Projection", "Join{DataScan(t1)->DataScan(t2)}(test.t.a,test.t.a)(test.t.b,test.t.b)->Projection", "Join{DataScan(t1)->DataScan(t2)}(test.t.a,test.t.a)->Projection", + "Join{DataScan(t1)->DataScan(t2)->Aggr(firstrow(test.t.a))}(test.t.a,test.t.a)->Projection->Projection", + "Join{DataScan(t)->DataScan(x)}->Projection", + "Join{DataScan(t)->DataScan(x)}(test.t.a,test.t.a)->Projection", + "Join{DataScan(t)->DataScan(x)}(test.t.a,test.t.a)->Sel([lt(test.t.a, 1)])->Projection", + "Join{Join{DataScan(t)->DataScan(x)}(test.t.a,test.t.a)->DataScan(x)}(test.t.a,test.t.a)->Projection", + "Join{DataScan(t)->DataScan(x)}->Projection", + "Join{DataScan(t)->DataScan(x)}(test.t.a,test.t.a)->Projection", + "Join{DataScan(t)->DataScan(x)->Sel([lt(test.t.a, 1)])->Aggr(firstrow(test.t.a))}(test.t.a,test.t.a)->Projection->Sel([lt(test.t.a, 1)])->Projection", + "Join{Join{DataScan(t)->DataScan(x)->Aggr(firstrow(test.t.a))}(test.t.a,test.t.a)->Projection->DataScan(x)->Aggr(firstrow(test.t.a))}(test.t.a,test.t.a)->Projection->Projection", + "Join{Join{DataScan(t)->DataScan(x)}(test.t.a,test.t.a)->DataScan(x)->Aggr(firstrow(test.t.a))}(test.t.a,test.t.a)->Projection->Projection", + "Join{Join{DataScan(t)->DataScan(x)->Aggr(firstrow(test.t.a))}(test.t.a,test.t.a)->Projection->DataScan(x)->Aggr(firstrow(test.t.a))}(test.t.a,test.t.a)->Projection->Projection", "Apply{DataScan(t1)->DataScan(t2)->Sel([eq(test.t.a, test.t.a)])->Projection->Sort->Limit}->Projection->Sel([eq(test.t.b, test.t.b)])->Projection", "Apply{DataScan(t2)->DataScan(t1)->Sel([eq(test.t.a, test.t.a)])->Projection}->Projection", "Join{DataScan(t2)->DataScan(t1)->Aggr(firstrow(test.t.c),count(1))}(test.t.c,test.t.c)->Projection->Aggr(count(1))->Projection" diff --git a/planner/core/util.go b/planner/core/util.go index ccf43fc3808f7..8cbf54bab31e4 100644 --- a/planner/core/util.go +++ b/planner/core/util.go @@ -256,7 +256,26 @@ func BuildPhysicalJoinSchema(joinType JoinType, join PhysicalPlan) *expression.S return newSchema } +// GetStatsInfoFromFlatPlan gets the statistics info from a FlatPhysicalPlan. +func GetStatsInfoFromFlatPlan(flat *FlatPhysicalPlan) map[string]uint64 { + res := make(map[string]uint64) + for _, op := range flat.Main { + switch p := op.Origin.(type) { + case *PhysicalIndexScan: + if _, ok := res[p.Table.Name.O]; p.stats != nil && !ok { + res[p.Table.Name.O] = p.stats.StatsVersion + } + case *PhysicalTableScan: + if _, ok := res[p.Table.Name.O]; p.stats != nil && !ok { + res[p.Table.Name.O] = p.stats.StatsVersion + } + } + } + return res +} + // GetStatsInfo gets the statistics info from a physical plan tree. +// Deprecated: FlattenPhysicalPlan() + GetStatsInfoFromFlatPlan() is preferred. func GetStatsInfo(i interface{}) map[string]uint64 { if i == nil { // it's a workaround for https://github.com/pingcap/tidb/issues/17419 diff --git a/planner/funcdep/BUILD.bazel b/planner/funcdep/BUILD.bazel index 2a0c09b58a244..a732823cbd80a 100644 --- a/planner/funcdep/BUILD.bazel +++ b/planner/funcdep/BUILD.bazel @@ -27,6 +27,7 @@ go_test( "only_full_group_by_test.go", ], embed = [":funcdep"], + flaky = True, deps = [ "//domain", "//infoschema", diff --git a/planner/implementation/BUILD.bazel b/planner/implementation/BUILD.bazel index ec042cb40b382..c2b5ad8e5dd90 100644 --- a/planner/implementation/BUILD.bazel +++ b/planner/implementation/BUILD.bazel @@ -29,6 +29,7 @@ go_test( "main_test.go", ], embed = [":implementation"], + flaky = True, deps = [ "//planner/core", "//planner/memo", diff --git a/planner/memo/BUILD.bazel b/planner/memo/BUILD.bazel index 7886691fd3b9c..c0523d2600e3e 100644 --- a/planner/memo/BUILD.bazel +++ b/planner/memo/BUILD.bazel @@ -29,6 +29,7 @@ go_test( "pattern_test.go", ], embed = [":memo"], + flaky = True, deps = [ "//domain", "//expression", diff --git a/planner/util/BUILD.bazel b/planner/util/BUILD.bazel index 78f443d4d1fa9..0e9d7df5d9d6b 100644 --- a/planner/util/BUILD.bazel +++ b/planner/util/BUILD.bazel @@ -28,6 +28,7 @@ go_test( "path_test.go", ], embed = [":util"], + flaky = True, deps = [ "//parser/model", "//planner/core", diff --git a/planner/util/path.go b/planner/util/path.go index 2323533300625..ad162b5592bdd 100644 --- a/planner/util/path.go +++ b/planner/util/path.go @@ -110,7 +110,7 @@ func (path *AccessPath) SplitCorColAccessCondFromFilters(ctx sessionctx.Context, // isColEqCorColOrConstant checks if the expression is a eq function that one side is constant or correlated column // and another is column. -func isColEqCorColOrConstant(ctx sessionctx.Context, filter expression.Expression, col *expression.Column) bool { +func isColEqCorColOrConstant(_ sessionctx.Context, filter expression.Expression, col *expression.Column) bool { f, ok := filter.(*expression.ScalarFunction) if !ok || f.FuncName.L != ast.EQ { return false diff --git a/plugin/BUILD.bazel b/plugin/BUILD.bazel index 1a8623dc4eea9..804c2cdf11db9 100644 --- a/plugin/BUILD.bazel +++ b/plugin/BUILD.bazel @@ -36,6 +36,7 @@ go_test( "spi_test.go", ], embed = [":plugin"], + flaky = True, deps = [ "//kv", "//parser/mysql", diff --git a/plugin/conn_ip_example/BUILD.bazel b/plugin/conn_ip_example/BUILD.bazel index ae22b9c56752c..f21283b8624b8 100644 --- a/plugin/conn_ip_example/BUILD.bazel +++ b/plugin/conn_ip_example/BUILD.bazel @@ -18,6 +18,7 @@ go_test( "main_test.go", ], embed = [":conn_ip_example_lib"], + flaky = True, deps = [ "//plugin", "//sessionctx/variable", diff --git a/privilege/privileges/privileges_test.go b/privilege/privileges/privileges_test.go index 9b159309c0795..72c0bc2573ab7 100644 --- a/privilege/privileges/privileges_test.go +++ b/privilege/privileges/privileges_test.go @@ -95,6 +95,37 @@ func TestCheckPointGetDBPrivilege(t *testing.T) { require.True(t, terror.ErrorEqual(err, core.ErrTableaccessDenied)) } +func TestCheckExchangePartitionDBPrivilege(t *testing.T) { + store, clean := createStoreAndPrepareDB(t) + defer clean() + rootTk := testkit.NewTestKit(t, store) + + rootTk.MustExec(`CREATE USER 'tester'@'localhost';`) + rootTk.MustExec(`GRANT SELECT ON test.* TO 'tester'@'localhost';`) + rootTk.MustExec("use test") + rootTk.MustExec(`create table pt (a varchar(3)) partition by range columns (a) ( + partition p0 values less than ('3'), + partition p1 values less than ('6') + );`) + rootTk.MustExec(`create table nt (a varchar(3));`) + + tk := testkit.NewTestKit(t, store) + require.True(t, tk.Session().Auth(&auth.UserIdentity{Username: "tester", Hostname: "localhost"}, nil, nil)) + tk.MustExec("use test") + + rootTk.MustExec(`GRANT CREATE ON test.* TO 'tester'@'localhost';`) + tk.MustGetErrCode("alter table pt exchange partition p0 with table nt", mysql.ErrTableaccessDenied) + + rootTk.MustExec(`GRANT ALTER ON test.* TO 'tester'@'localhost';`) + tk.MustGetErrCode("alter table pt exchange partition p0 with table nt", mysql.ErrTableaccessDenied) + + rootTk.MustExec(`GRANT INSERT ON test.* TO 'tester'@'localhost';`) + tk.MustGetErrCode("alter table pt exchange partition p0 with table nt", mysql.ErrTableaccessDenied) + + rootTk.MustExec(`GRANT DROP ON test.* TO 'tester'@'localhost';`) + tk.MustExec("alter table pt exchange partition p0 with table nt") +} + func TestIssue22946(t *testing.T) { store, clean := createStoreAndPrepareDB(t) defer clean() diff --git a/server/BUILD.bazel b/server/BUILD.bazel index 1093d540550e8..894e226a1ea8d 100644 --- a/server/BUILD.bazel +++ b/server/BUILD.bazel @@ -154,6 +154,7 @@ go_test( "//metrics", "//parser", "//parser/ast", + "//parser/auth", "//parser/charset", "//parser/model", "//parser/mysql", diff --git a/server/conn.go b/server/conn.go index e5289e4fec5af..5495013ac81e9 100644 --- a/server/conn.go +++ b/server/conn.go @@ -74,6 +74,7 @@ import ( "github.com/pingcap/tidb/privilege" "github.com/pingcap/tidb/session" "github.com/pingcap/tidb/sessionctx" + "github.com/pingcap/tidb/sessionctx/sessionstates" "github.com/pingcap/tidb/sessionctx/stmtctx" "github.com/pingcap/tidb/sessionctx/variable" "github.com/pingcap/tidb/sessiontxn" @@ -731,6 +732,7 @@ func (cc *clientConn) readOptionalSSLRequestAndHandshakeResponse(ctx context.Con } case mysql.AuthNativePassword: case mysql.AuthSocket: + case mysql.AuthTiDBSessionToken: default: return errors.New("Unknown auth plugin") } @@ -757,6 +759,7 @@ func (cc *clientConn) handleAuthPlugin(ctx context.Context, resp *handshakeRespo case mysql.AuthCachingSha2Password: case mysql.AuthNativePassword: case mysql.AuthSocket: + case mysql.AuthTiDBSessionToken: default: logutil.Logger(ctx).Warn("Unknown Auth Plugin", zap.String("plugin", resp.AuthPlugin)) } @@ -858,7 +861,16 @@ func (cc *clientConn) openSessionAndDoAuth(authData []byte, authPlugin string) e return errAccessDeniedNoPassword.FastGenByArgs(cc.user, host) } - if !cc.ctx.Auth(&auth.UserIdentity{Username: cc.user, Hostname: host}, authData, cc.salt) { + userIdentity := &auth.UserIdentity{Username: cc.user, Hostname: host} + if authPlugin == mysql.AuthTiDBSessionToken { + if !cc.ctx.AuthWithoutVerification(userIdentity) { + return errAccessDenied.FastGenByArgs(cc.user, host, hasPassword) + } + if err = sessionstates.ValidateSessionToken(authData, cc.user); err != nil { + logutil.BgLogger().Warn("verify session token failed", zap.String("username", cc.user), zap.Error(err)) + return errAccessDenied.FastGenByArgs(cc.user, host, hasPassword) + } + } else if !cc.ctx.Auth(userIdentity, authData, cc.salt) { return errAccessDenied.FastGenByArgs(cc.user, host, hasPassword) } cc.ctx.SetPort(port) @@ -883,6 +895,10 @@ func (cc *clientConn) checkAuthPlugin(ctx context.Context, resp *handshakeRespon } authData := resp.Auth + // tidb_session_token is always permitted and skips stored user plugin. + if resp.AuthPlugin == mysql.AuthTiDBSessionToken { + return authData, nil + } hasPassword := "YES" if len(authData) == 0 { hasPassword = "NO" @@ -1449,7 +1465,18 @@ func (cc *clientConn) useDB(ctx context.Context, db string) (err error) { } func (cc *clientConn) flush(ctx context.Context) error { + var ( + stmtDetail *execdetails.StmtExecDetails + startTime time.Time + ) + if stmtDetailRaw := ctx.Value(execdetails.StmtExecDetailKey); stmtDetailRaw != nil { + stmtDetail = stmtDetailRaw.(*execdetails.StmtExecDetails) + startTime = time.Now() + } defer func() { + if stmtDetail != nil { + stmtDetail.WriteSQLRespDuration += time.Since(startTime) + } trace.StartRegion(ctx, "FlushClientConn").End() if ctx := cc.getCtx(); ctx != nil && ctx.WarningCount() > 0 { for _, err := range ctx.GetWarnings() { @@ -2192,6 +2219,7 @@ func (cc *clientConn) writeChunks(ctx context.Context, rs ResultSet, binary bool req := rs.NewChunk(cc.chunkAlloc) gotColumnInfo := false firstNext := true + var start time.Time var stmtDetail *execdetails.StmtExecDetails stmtDetailRaw := ctx.Value(execdetails.StmtExecDetailKey) if stmtDetailRaw != nil { @@ -2218,9 +2246,15 @@ func (cc *clientConn) writeChunks(ctx context.Context, rs ResultSet, binary bool // We need to call Next before we get columns. // Otherwise, we will get incorrect columns info. columns := rs.Columns() + if stmtDetail != nil { + start = time.Now() + } if err = cc.writeColumnInfo(columns, serverStatus); err != nil { return false, err } + if stmtDetail != nil { + stmtDetail.WriteSQLRespDuration += time.Since(start) + } gotColumnInfo = true } rowCount := req.NumRows() @@ -2228,7 +2262,9 @@ func (cc *clientConn) writeChunks(ctx context.Context, rs ResultSet, binary bool break } reg := trace.StartRegion(ctx, "WriteClientConn") - start := time.Now() + if stmtDetail != nil { + start = time.Now() + } for i := 0; i < rowCount; i++ { data = data[0:4] if binary { @@ -2250,7 +2286,14 @@ func (cc *clientConn) writeChunks(ctx context.Context, rs ResultSet, binary bool stmtDetail.WriteSQLRespDuration += time.Since(start) } } - return false, cc.writeEOF(serverStatus) + if stmtDetail != nil { + start = time.Now() + } + err := cc.writeEOF(serverStatus) + if stmtDetail != nil { + stmtDetail.WriteSQLRespDuration += time.Since(start) + } + return false, err } // writeChunksWithFetchSize writes data from a Chunk, which filled data by a ResultSet, into a connection. @@ -2307,8 +2350,13 @@ func (cc *clientConn) writeChunksWithFetchSize(ctx context.Context, rs ResultSet if stmtDetailRaw != nil { stmtDetail = stmtDetailRaw.(*execdetails.StmtExecDetails) } - start := time.Now() - var err error + var ( + err error + start time.Time + ) + if stmtDetail != nil { + start = time.Now() + } for _, row := range curRows { data = data[0:4] data, err = dumpBinaryRow(data, rs.Columns(), row, cc.rsEncoder) @@ -2325,7 +2373,14 @@ func (cc *clientConn) writeChunksWithFetchSize(ctx context.Context, rs ResultSet if cl, ok := rs.(fetchNotifier); ok { cl.OnFetchReturned() } - return cc.writeEOF(serverStatus) + if stmtDetail != nil { + start = time.Now() + } + err = cc.writeEOF(serverStatus) + if stmtDetail != nil { + stmtDetail.WriteSQLRespDuration += time.Since(start) + } + return err } func (cc *clientConn) setConn(conn net.Conn) { @@ -2411,9 +2466,7 @@ func (cc *clientConn) handleResetConnection(ctx context.Context) error { } func (cc *clientConn) handleCommonConnectionReset(ctx context.Context) error { - if plugin.IsEnable(plugin.Audit) { - cc.ctx.GetSessionVars().ConnectionInfo = cc.connectInfo() - } + cc.ctx.GetSessionVars().ConnectionInfo = cc.connectInfo() err := plugin.ForeachPlugin(plugin.Audit, func(p *plugin.Plugin) error { authPlugin := plugin.DeclareAuditManifest(p.Manifest) diff --git a/server/conn_test.go b/server/conn_test.go index f9661226ae1c3..ad2959588c840 100644 --- a/server/conn_test.go +++ b/server/conn_test.go @@ -18,9 +18,12 @@ import ( "bufio" "bytes" "context" + "crypto/tls" + "crypto/x509" "encoding/binary" "fmt" "io" + "path/filepath" "strings" "sync/atomic" "testing" @@ -30,6 +33,7 @@ import ( "github.com/pingcap/kvproto/pkg/metapb" "github.com/pingcap/tidb/domain" "github.com/pingcap/tidb/executor" + "github.com/pingcap/tidb/parser/auth" "github.com/pingcap/tidb/parser/mysql" "github.com/pingcap/tidb/session" "github.com/pingcap/tidb/sessionctx/variable" @@ -37,6 +41,7 @@ import ( "github.com/pingcap/tidb/store/mockstore/unistore" "github.com/pingcap/tidb/testkit" "github.com/pingcap/tidb/testkit/external" + "github.com/pingcap/tidb/util" "github.com/pingcap/tidb/util/arena" "github.com/pingcap/tidb/util/chunk" "github.com/stretchr/testify/require" @@ -829,13 +834,13 @@ func TestPrefetchPointKeys(t *testing.T) { tk.MustExec("begin pessimistic") tk.MustExec("update prefetch set c = c + 1 where a = 2 and b = 2") - require.Equal(t, 1, tk.Session().GetSessionVars().TxnCtx.PessimisticCacheHit) + require.Equal(t, 2, tk.Session().GetSessionVars().TxnCtx.PessimisticCacheHit) err = cc.handleQuery(ctx, query) require.NoError(t, err) txn, err = tk.Session().Txn(false) require.NoError(t, err) require.True(t, txn.Valid()) - require.Equal(t, 5, tk.Session().GetSessionVars().TxnCtx.PessimisticCacheHit) + require.Equal(t, 6, tk.Session().GetSessionVars().TxnCtx.PessimisticCacheHit) tk.MustExec("commit") tk.MustQuery("select * from prefetch").Check(testkit.Rows("1 1 3", "2 2 6", "3 3 5")) } @@ -1258,6 +1263,89 @@ func TestAuthPlugin2(t *testing.T) { } +func TestAuthTokenPlugin(t *testing.T) { + store, clean := testkit.CreateMockStore(t) + defer clean() + + cfg := newTestConfig() + cfg.Port = 0 + cfg.Status.StatusPort = 0 + drv := NewTiDBDriver(store) + srv, err := NewServer(cfg, drv) + require.NoError(t, err) + ctx := context.Background() + + // create the cert + tempDir := t.TempDir() + certPath := filepath.Join(tempDir, "test1_cert.pem") + keyPath := filepath.Join(tempDir, "test1_key.pem") + err = util.CreateCertificates(certPath, keyPath, 4096, x509.RSA, x509.UnknownSignatureAlgorithm) + require.NoError(t, err) + + tk := testkit.NewTestKit(t, store) + tk.MustExec("CREATE USER auth_session_token") + tk.MustExec("CREATE USER another_user") + tk.MustExec(fmt.Sprintf("set global %s='%s'", variable.TiDBAuthSigningCert, certPath)) + tk.MustExec(fmt.Sprintf("set global %s='%s'", variable.TiDBAuthSigningKey, keyPath)) + + tc, err := drv.OpenCtx(uint64(0), 0, uint8(mysql.DefaultCollationID), "", nil) + require.NoError(t, err) + cc := &clientConn{ + connectionID: 1, + alloc: arena.NewAllocator(1024), + chunkAlloc: chunk.NewAllocator(), + collation: mysql.DefaultCollationID, + peerHost: "localhost", + pkt: &packetIO{ + bufWriter: bufio.NewWriter(bytes.NewBuffer(nil)), + }, + server: srv, + user: "auth_session_token", + } + cc.setCtx(tc) + // create a token without TLS + tk1 := testkit.NewTestKitWithSession(t, store, tc.Session) + tc.Session.GetSessionVars().ConnectionInfo = cc.connectInfo() + tk1.Session().Auth(&auth.UserIdentity{Username: "auth_session_token", Hostname: "localhost"}, nil, nil) + err = tk1.QueryToErr("show session_states") + require.ErrorContains(t, err, "secure transport") + + // create a token with TLS + cc.tlsConn = &tls.Conn{} + tc.Session.GetSessionVars().ConnectionInfo = cc.connectInfo() + tk1.Session().Auth(&auth.UserIdentity{Username: "auth_session_token", Hostname: "localhost"}, nil, nil) + tk1.MustQuery("show session_states") + + // create a token with UnixSocket + cc.tlsConn = nil + cc.isUnixSocket = true + tc.Session.GetSessionVars().ConnectionInfo = cc.connectInfo() + rows := tk1.MustQuery("show session_states").Rows() + tokenBytes := []byte(rows[0][1].(string)) + + // auth with the token + resp := handshakeResponse41{ + Capability: mysql.ClientProtocol41 | mysql.ClientPluginAuth, + AuthPlugin: mysql.AuthTiDBSessionToken, + Auth: tokenBytes, + } + err = cc.handleAuthPlugin(ctx, &resp) + require.NoError(t, err) + err = cc.openSessionAndDoAuth(resp.Auth, resp.AuthPlugin) + require.NoError(t, err) + + // wrong token should fail + tokenBytes[0] ^= 0xff + err = cc.openSessionAndDoAuth(resp.Auth, resp.AuthPlugin) + require.ErrorContains(t, err, "Access denied") + tokenBytes[0] ^= 0xff + + // using the token to auth with another user should fail + cc.user = "another_user" + err = cc.openSessionAndDoAuth(resp.Auth, resp.AuthPlugin) + require.ErrorContains(t, err, "Access denied") +} + func TestMaxAllowedPacket(t *testing.T) { // Test cases from issue 31422: https://github.com/pingcap/tidb/issues/31422 // The string "SELECT length('') as len;" has 25 chars, diff --git a/server/http_handler.go b/server/http_handler.go index 331f0206ef6dd..6c15a3c6b3ff9 100644 --- a/server/http_handler.go +++ b/server/http_handler.go @@ -917,8 +917,7 @@ func (h flashReplicaHandler) getDropOrTruncateTableTiflash(currentSchema infosch fn := func(jobs []*model.Job) (bool, error) { return executor.GetDropOrTruncateTableInfoFromJobs(jobs, gcSafePoint, dom, handleJobAndTableInfo) } - - err = ddl.IterAllDDLJobs(txn, fn) + err = ddl.IterAllDDLJobs(s, txn, fn) if err != nil { if terror.ErrorEqual(variable.ErrSnapshotTooOld, err) { // The err indicate that current ddl job and remain DDL jobs was been deleted by GC, diff --git a/server/server.go b/server/server.go index cd9638e8adcce..bf4d7b8392019 100644 --- a/server/server.go +++ b/server/server.go @@ -547,9 +547,7 @@ func (s *Server) onConn(conn *clientConn) { metrics.ConnGauge.Set(float64(connections)) sessionVars := conn.ctx.GetSessionVars() - if plugin.IsEnable(plugin.Audit) { - sessionVars.ConnectionInfo = conn.connectInfo() - } + sessionVars.ConnectionInfo = conn.connectInfo() err := plugin.ForeachPlugin(plugin.Audit, func(p *plugin.Plugin) error { authPlugin := plugin.DeclareAuditManifest(p.Manifest) if authPlugin.OnConnectionEvent != nil { @@ -565,10 +563,6 @@ func (s *Server) onConn(conn *clientConn) { conn.Run(ctx) err = plugin.ForeachPlugin(plugin.Audit, func(p *plugin.Plugin) error { - // Audit plugin may be disabled before a conn is created, leading no connectionInfo in sessionVars. - if sessionVars.ConnectionInfo == nil { - sessionVars.ConnectionInfo = conn.connectInfo() - } authPlugin := plugin.DeclareAuditManifest(p.Manifest) if authPlugin.OnConnectionEvent != nil { sessionVars.ConnectionInfo.Duration = float64(time.Since(connectedTime)) / float64(time.Millisecond) @@ -585,11 +579,11 @@ func (s *Server) onConn(conn *clientConn) { } func (cc *clientConn) connectInfo() *variable.ConnectionInfo { - connType := "Socket" + connType := variable.ConnTypeSocket if cc.isUnixSocket { - connType = "UnixSocket" + connType = variable.ConnTypeUnixSocket } else if cc.tlsConn != nil { - connType = "SSL/TLS" + connType = variable.ConnTypeTLS } connInfo := &variable.ConnectionInfo{ ConnectionID: cc.connectionID, diff --git a/server/tidb_test.go b/server/tidb_test.go index b6b40b605c5e0..47f5a045a20b1 100644 --- a/server/tidb_test.go +++ b/server/tidb_test.go @@ -1412,10 +1412,7 @@ func TestTopSQLCPUProfile(t *testing.T) { dbt.MustExec("create table t2 (a int auto_increment, b int, unique index idx(a));") dbt.MustExec("set @@global.tidb_txn_mode = 'pessimistic'") - timeoutCtx, cancel := context.WithTimeout(context.Background(), time.Second*20) - defer cancel() checkFn := func(sql, planRegexp string) { - require.NoError(t, timeoutCtx.Err()) stats := mc.GetSQLStatsBySQLWithRetry(sql, len(planRegexp) > 0) // since 1 sql may has many plan, check `len(stats) > 0` instead of `len(stats) == 1`. require.Greaterf(t, len(stats), 0, "sql: "+sql) diff --git a/session/BUILD.bazel b/session/BUILD.bazel index b75f26dc03634..1ed9c0878f038 100644 --- a/session/BUILD.bazel +++ b/session/BUILD.bazel @@ -17,6 +17,7 @@ go_library( deps = [ "//bindinfo", "//config", + "//ddl", "//ddl/placement", "//domain", "//errno", @@ -111,6 +112,7 @@ go_test( "nontransactional_test.go", "schema_amender_test.go", "schema_test.go", + "session_test.go", "tidb_test.go", ], data = glob(["testdata/**"]), @@ -140,6 +142,7 @@ go_test( "//table", "//tablecodec", "//testkit", + "//testkit/external", "//testkit/testdata", "//testkit/testmain", "//testkit/testsetup", diff --git a/session/bootstrap.go b/session/bootstrap.go index e9db7a08c3ed7..6248f36d28a26 100644 --- a/session/bootstrap.go +++ b/session/bootstrap.go @@ -620,11 +620,13 @@ const ( version90 = 90 // version91 converts prepared-plan-cache to sysvars version91 = 91 + // version92 for concurrent ddl. + version92 = 92 ) // currentBootstrapVersion is defined as a variable, so we can modify its value for testing. // please make sure this is the largest version -var currentBootstrapVersion int64 = version91 +var currentBootstrapVersion int64 = version92 var ( bootstrapVersion = []func(Session, int64){ @@ -785,15 +787,27 @@ func upgrade(s Session) { // It is already bootstrapped/upgraded by a higher version TiDB server. return } + // Only upgrade from under version92 and this TiDB is not owner set. + // The owner in older tidb does not support concurrent DDL, we should add the internal DDL to job queue. + original := variable.EnableConcurrentDDL.Load() + if ver < version92 && !domain.GetDomain(s).DDL().OwnerManager().IsOwner() { + variable.EnableConcurrentDDL.Store(false) + } // Do upgrade works then update bootstrap version. for _, upgrade := range bootstrapVersion { upgrade(s, ver) } + variable.EnableConcurrentDDL.Store(original) updateBootstrapVer(s) ctx := kv.WithInternalSourceType(context.Background(), kv.InternalTxnBootstrap) _, err = s.ExecuteInternal(ctx, "COMMIT") + if err == nil && ver <= version92 { + logutil.BgLogger().Info("start migrate DDLs") + err = domain.GetDomain(s).DDL().MoveJobFromQueue2Table(true) + } + if err != nil { sleepTime := 1 * time.Second logutil.BgLogger().Info("update bootstrap ver failed", @@ -2030,10 +2044,6 @@ func doDMLWorks(s Session) { if inTestSuite() || config.CheckTableBeforeDrop { vVal = string(variable.Dynamic) } - case variable.TiDBEnableChangeMultiSchema: - if inTestSuite() { - vVal = variable.On - } case variable.TiDBMemOOMAction: if inTestSuite() { vVal = variable.OOMActionLog diff --git a/session/bootstrap_test.go b/session/bootstrap_test.go index 6b56501d2b2eb..1f8b0b8a20700 100644 --- a/session/bootstrap_test.go +++ b/session/bootstrap_test.go @@ -146,14 +146,14 @@ func TestBootstrapWithError(t *testing.T) { se.txn.init() se.mu.values = make(map[fmt.Stringer]interface{}) se.SetValue(sessionctx.Initing, true) - + err := InitDDLJobTables(store) + require.NoError(t, err) dom, err := domap.Get(store) require.NoError(t, err) domain.BindDomain(se, dom) b, err := checkBootstrapped(se) require.False(t, b) require.NoError(t, err) - doDDLWorks(se) } @@ -443,8 +443,7 @@ func TestOldPasswordUpgrade(t *testing.T) { } func TestBootstrapInitExpensiveQueryHandle(t *testing.T) { - store, err := mockstore.NewMockStore() - require.NoError(t, err) + store, _ := createStoreAndBootstrap(t) defer func() { require.NoError(t, store.Close()) }() diff --git a/session/session.go b/session/session.go index 8bbf90a7c8550..1a830ec6a5508 100644 --- a/session/session.go +++ b/session/session.go @@ -43,6 +43,7 @@ import ( "github.com/pingcap/kvproto/pkg/kvrpcpb" "github.com/pingcap/tidb/bindinfo" "github.com/pingcap/tidb/config" + "github.com/pingcap/tidb/ddl" "github.com/pingcap/tidb/ddl/placement" "github.com/pingcap/tidb/domain" "github.com/pingcap/tidb/errno" @@ -121,8 +122,15 @@ var ( sessionExecuteParseDurationInternal = metrics.SessionExecuteParseDuration.WithLabelValues(metrics.LblInternal) sessionExecuteParseDurationGeneral = metrics.SessionExecuteParseDuration.WithLabelValues(metrics.LblGeneral) - telemetryCTEUsage = metrics.TelemetrySQLCTECnt - telemetryMultiSchemaChangeUsage = metrics.TelemetryMultiSchemaChangeCnt + telemetryCTEUsage = metrics.TelemetrySQLCTECnt + telemetryMultiSchemaChangeUsage = metrics.TelemetryMultiSchemaChangeCnt + telemetryTablePartitionUsage = metrics.TelemetryTablePartitionCnt + telemetryTablePartitionListUsage = metrics.TelemetryTablePartitionListCnt + telemetryTablePartitionRangeUsage = metrics.TelemetryTablePartitionRangeCnt + telemetryTablePartitionHashUsage = metrics.TelemetryTablePartitionHashCnt + telemetryTablePartitionRangeColumnsUsage = metrics.TelemetryTablePartitionRangeColumnsCnt + telemetryTablePartitionListColumnsUsage = metrics.TelemetryTablePartitionListColumnsCnt + telemetryTablePartitionMaxPartitionsUsage = metrics.TelemetryTablePartitionMaxPartitionsCnt ) // Session context, it is consistent with the lifecycle of a client connection. @@ -1759,6 +1767,10 @@ func (s *session) useCurrentSession(execOption sqlexec.ExecOption) (*session, fu if execOption.AnalyzeVer != 0 { s.sessionVars.AnalyzeVersion = execOption.AnalyzeVer } + prevAnalyzeSnapshot := s.sessionVars.EnableAnalyzeSnapshot + if execOption.AnalyzeSnapshot != nil { + s.sessionVars.EnableAnalyzeSnapshot = *execOption.AnalyzeSnapshot + } prePruneMode := s.sessionVars.PartitionPruneMode.Load() if len(execOption.PartitionPruneMode) > 0 { s.sessionVars.PartitionPruneMode.Store(execOption.PartitionPruneMode) @@ -1768,6 +1780,7 @@ func (s *session) useCurrentSession(execOption sqlexec.ExecOption) (*session, fu prevTables := s.sessionVars.StmtCtx.Tables return s, func() { s.sessionVars.AnalyzeVersion = prevStatsVer + s.sessionVars.EnableAnalyzeSnapshot = prevAnalyzeSnapshot if err := s.sessionVars.SetSystemVar(variable.TiDBSnapshot, ""); err != nil { logutil.BgLogger().Error("set tidbSnapshot error", zap.Error(err)) } @@ -1811,6 +1824,11 @@ func (s *session) getInternalSession(execOption sqlexec.ExecOption) (*session, f se.sessionVars.AnalyzeVersion = execOption.AnalyzeVer } + prevAnalyzeSnapshot := se.sessionVars.EnableAnalyzeSnapshot + if execOption.AnalyzeSnapshot != nil { + se.sessionVars.EnableAnalyzeSnapshot = *execOption.AnalyzeSnapshot + } + prePruneMode := se.sessionVars.PartitionPruneMode.Load() if len(execOption.PartitionPruneMode) > 0 { se.sessionVars.PartitionPruneMode.Store(execOption.PartitionPruneMode) @@ -1818,6 +1836,7 @@ func (s *session) getInternalSession(execOption sqlexec.ExecOption) (*session, f return se, func() { se.sessionVars.AnalyzeVersion = prevStatsVer + se.sessionVars.EnableAnalyzeSnapshot = prevAnalyzeSnapshot if err := se.sessionVars.SetSystemVar(variable.TiDBSnapshot, ""); err != nil { logutil.BgLogger().Error("set tidbSnapshot error", zap.Error(err)) } @@ -2256,6 +2275,9 @@ func (s *session) preparedStmtExec(ctx context.Context, execStmt *ast.ExecuteStm is := sessiontxn.GetTxnManager(s).GetTxnInfoSchema() st, tiFlashPushDown, tiFlashExchangePushDown, err := executor.CompileExecutePreparedStmt(ctx, s, execStmt, is) + if err == nil { + err = sessiontxn.OptimizeWithPlanAndThenWarmUp(s, st.Plan) + } if err != nil { return nil, err } @@ -2312,6 +2334,7 @@ func (s *session) cachedPointPlanExec(ctx context.Context, stmt.Text = prepared.Stmt.Text() stmtCtx.OriginalSQL = stmt.Text + stmtCtx.SetPlan(execPlan) stmtCtx.InitSQLDigest(prepareStmt.NormalizedSQL, prepareStmt.SQLDigest) stmtCtx.SetPlanDigest(prepareStmt.NormalizedPlan, prepareStmt.PlanDigest) logGeneralQuery(stmt, s, false) @@ -2643,6 +2666,8 @@ func CreateSession4TestWithOpt(store kv.Storage, opt *Opt) (Session, error) { // initialize session variables for test. s.GetSessionVars().InitChunkSize = 2 s.GetSessionVars().MaxChunkSize = 32 + s.GetSessionVars().MinPagingSize = variable.DefMinPagingSize + s.GetSessionVars().EnablePaging = variable.DefTiDBEnablePaging err = s.GetSessionVars().SetSystemVar(variable.CharacterSetConnection, "utf8mb4") } return s, err @@ -2700,7 +2725,62 @@ func loadCollationParameter(ctx context.Context, se *session) (bool, error) { return false, nil } -var errResultIsEmpty = dbterror.ClassExecutor.NewStd(errno.ErrResultIsEmpty) +var ( + errResultIsEmpty = dbterror.ClassExecutor.NewStd(errno.ErrResultIsEmpty) + // DDLJobTables is a list of tables definitions used in concurrent DDL. + DDLJobTables = []struct { + SQL string + id int64 + }{ + {"create table tidb_ddl_job(job_id bigint not null, reorg int, schema_ids text(65535), table_ids text(65535), job_meta longblob, type int, processing int, primary key(job_id))", ddl.JobTableID}, + {"create table tidb_ddl_reorg(job_id bigint not null, ele_id bigint, ele_type blob, start_key blob, end_key blob, physical_id bigint, reorg_meta longblob, unique key(job_id, ele_id, ele_type(20)))", ddl.ReorgTableID}, + {"create table tidb_ddl_history(job_id bigint not null, job_meta longblob, db_name char(64), table_name char(64), schema_ids text(65535), table_ids text(65535), create_time datetime, primary key(job_id))", ddl.HistoryTableID}, + } +) + +// InitDDLJobTables is to create tidb_ddl_job, tidb_ddl_reorg and tidb_ddl_history. +func InitDDLJobTables(store kv.Storage) error { + return kv.RunInNewTxn(kv.WithInternalSourceType(context.Background(), kv.InternalTxnDDL), store, true, func(ctx context.Context, txn kv.Transaction) error { + t := meta.NewMeta(txn) + exists, err := t.CheckDDLTableExists() + if err != nil || exists { + return errors.Trace(err) + } + dbID, err := t.CreateMySQLDatabaseIfNotExists() + if err != nil { + return err + } + p := parser.New() + for _, tbl := range DDLJobTables { + id, err := t.GetGlobalID() + if err != nil { + return errors.Trace(err) + } + if id >= meta.MaxGlobalID { + return errors.Errorf("It is unreasonable that the global ID grows such a big value: %d, please concat TiDB team", id) + } + stmt, err := p.ParseOneStmt(tbl.SQL, "", "") + if err != nil { + return errors.Trace(err) + } + tblInfo, err := ddl.BuildTableInfoFromAST(stmt.(*ast.CreateTableStmt)) + if err != nil { + return errors.Trace(err) + } + tblInfo.State = model.StatePublic + tblInfo.ID = tbl.id + tblInfo.UpdateTS = t.StartTS + if err != nil { + return errors.Trace(err) + } + err = t.CreateTableOrView(dbID, tblInfo) + if err != nil { + return errors.Trace(err) + } + } + return t.SetDDLTables() + }) +} // BootstrapSession runs the first time when the TiDB server start. func BootstrapSession(store kv.Storage) (*domain.Domain, error) { @@ -2715,6 +2795,10 @@ func BootstrapSession(store kv.Storage) (*domain.Domain, error) { return nil, err } } + err := InitDDLJobTables(store) + if err != nil { + return nil, err + } ver := getStoreBootstrapVersion(store) if ver == notBootstrapped { runInBootstrapSession(store, bootstrap) @@ -2803,6 +2887,7 @@ func BootstrapSession(store kv.Storage) (*domain.Domain, error) { } dom.DumpFileGcCheckerLoop() + dom.LoadSigningCertLoop() if raw, ok := store.(kv.EtcdBackend); ok { err = raw.StartGCWorker() @@ -3339,6 +3424,28 @@ func (s *session) updateTelemetryMetric(es *executor.ExecStmt) { if ti.UseMultiSchemaChange { telemetryMultiSchemaChangeUsage.Inc() } + + if ti.PartitionTelemetry != nil { + if ti.PartitionTelemetry.UseTablePartition { + telemetryTablePartitionUsage.Inc() + telemetryTablePartitionMaxPartitionsUsage.Add(float64(ti.PartitionTelemetry.TablePartitionMaxPartitionsNum)) + } + if ti.PartitionTelemetry.UseTablePartitionList { + telemetryTablePartitionListUsage.Inc() + } + if ti.PartitionTelemetry.UseTablePartitionRange { + telemetryTablePartitionRangeUsage.Inc() + } + if ti.PartitionTelemetry.UseTablePartitionHash { + telemetryTablePartitionHashUsage.Inc() + } + if ti.PartitionTelemetry.UseTablePartitionRangeColumns { + telemetryTablePartitionRangeColumnsUsage.Inc() + } + if ti.PartitionTelemetry.UseTablePartitionListColumns { + telemetryTablePartitionListColumnsUsage.Inc() + } + } } // GetBuiltinFunctionUsage returns the replica of counting of builtin function usage diff --git a/session/session_test.go b/session/session_test.go new file mode 100644 index 0000000000000..9901376dd3b9c --- /dev/null +++ b/session/session_test.go @@ -0,0 +1,54 @@ +// Copyright 2022 PingCAP, Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package session_test + +import ( + "reflect" + "testing" + + "github.com/pingcap/tidb/session" + "github.com/pingcap/tidb/testkit" + "github.com/pingcap/tidb/testkit/external" + "github.com/stretchr/testify/require" +) + +func TestInitMetaTable(t *testing.T) { + store, clean := testkit.CreateMockStore(t) + defer clean() + + tk := testkit.NewTestKit(t, store) + tk.MustExec("use test") + for _, sql := range session.DDLJobTables { + tk.MustExec(sql.SQL) + } + + tbls := map[string]struct{}{ + "tidb_ddl_job": {}, + "tidb_ddl_reorg": {}, + "tidb_ddl_history": {}, + } + + for tbl := range tbls { + metaInMySQL := external.GetTableByName(t, tk, "mysql", tbl).Meta() + metaInTest := external.GetTableByName(t, tk, "test", tbl).Meta() + + require.Greater(t, metaInMySQL.ID, int64(0)) + require.Greater(t, metaInMySQL.UpdateTS, uint64(0)) + + metaInTest.ID = metaInMySQL.ID + metaInMySQL.UpdateTS = metaInTest.UpdateTS + require.True(t, reflect.DeepEqual(metaInMySQL, metaInTest)) + } +} diff --git a/sessionctx/BUILD.bazel b/sessionctx/BUILD.bazel index 3d966088021ba..1bdd2830cfab8 100644 --- a/sessionctx/BUILD.bazel +++ b/sessionctx/BUILD.bazel @@ -30,6 +30,7 @@ go_test( "main_test.go", ], embed = [":sessionctx"], + flaky = True, deps = [ "//testkit/testsetup", "@com_github_stretchr_testify//require", diff --git a/sessionctx/binloginfo/BUILD.bazel b/sessionctx/binloginfo/BUILD.bazel index ff9c03dbfa3e2..6d5a600b9e68c 100644 --- a/sessionctx/binloginfo/BUILD.bazel +++ b/sessionctx/binloginfo/BUILD.bazel @@ -31,6 +31,7 @@ go_test( "main_test.go", ], embed = [":binloginfo"], + flaky = True, deps = [ "//ddl", "//domain", diff --git a/sessionctx/sessionstates/BUILD.bazel b/sessionctx/sessionstates/BUILD.bazel index 1aa44bc7fdb32..bd1aaf78b2fed 100644 --- a/sessionctx/sessionstates/BUILD.bazel +++ b/sessionctx/sessionstates/BUILD.bazel @@ -29,6 +29,8 @@ go_test( "session_token_test.go", ], embed = [":sessionstates"], + flaky = True, + race = "on", deps = [ "//config", "//errno", diff --git a/sessionctx/sessionstates/session_token.go b/sessionctx/sessionstates/session_token.go index 975e627848969..4faa6eae7f41b 100644 --- a/sessionctx/sessionstates/session_token.go +++ b/sessionctx/sessionstates/session_token.go @@ -51,10 +51,10 @@ import ( const ( // A token needs a lifetime to avoid brute force attack. tokenLifetime = time.Minute - // Reload the certificate periodically because it may be rotated. - loadCertInterval = 10 * time.Minute + // LoadCertInterval is the interval of reloading the certificate. The certificate should be rotated periodically. + LoadCertInterval = 10 * time.Minute // After a certificate is replaced, it's still valid for oldCertValidTime. - // oldCertValidTime must be a little longer than loadCertInterval, because the previous server may + // oldCertValidTime must be a little longer than LoadCertInterval, because the previous server may // sign with the old cert but the new server checks with the new cert. // - server A loads the old cert at 00:00:00. // - the cert is rotated at 00:00:01 on all servers. @@ -224,7 +224,7 @@ func (sc *signingCert) loadCert() error { newCerts = append(newCerts, &certInfo{ cert: cert, privKey: tlsCert.PrivateKey, - expireTime: now.Add(loadCertInterval + oldCertValidTime), + expireTime: now.Add(LoadCertInterval + oldCertValidTime), }) for i := 0; i < len(sc.certs); i++ { // Discard the certs that are already expired. diff --git a/sessionctx/sessionstates/session_token_test.go b/sessionctx/sessionstates/session_token_test.go index 9b56e0cde67e2..d09cb4e5ffc82 100644 --- a/sessionctx/sessionstates/session_token_test.go +++ b/sessionctx/sessionstates/session_token_test.go @@ -183,7 +183,7 @@ func TestCertExpire(t *testing.T) { err = ValidateSessionToken(tokenBytes, "test_user") require.NoError(t, err) // the old cert expires and the original token is invalid - timeOffset := uint64(loadCertInterval) + timeOffset := uint64(LoadCertInterval) require.NoError(t, failpoint.Enable(mockNowOffset, fmt.Sprintf(`return(%d)`, timeOffset))) ReloadSigningCert() timeOffset += uint64(oldCertValidTime + time.Minute) @@ -197,7 +197,7 @@ func TestCertExpire(t *testing.T) { require.NoError(t, err) // the cert is rotated but is still valid createRSACert(t, certPath2, keyPath2) - timeOffset += uint64(loadCertInterval) + timeOffset += uint64(LoadCertInterval) require.NoError(t, failpoint.Enable(mockNowOffset, fmt.Sprintf(`return(%d)`, timeOffset))) ReloadSigningCert() err = ValidateSessionToken(tokenBytes, "test_user") @@ -238,8 +238,9 @@ func TestLoadAndReadConcurrently(t *testing.T) { } // the reader for i := 0; i < 3; i++ { + id := i wg.Run(func() { - username := fmt.Sprintf("test_user_%d", i) + username := fmt.Sprintf("test_user_%d", id) for time.Now().Before(deadline) { _, tokenBytes := createNewToken(t, username) time.Sleep(10 * time.Millisecond) diff --git a/sessionctx/stmtctx/BUILD.bazel b/sessionctx/stmtctx/BUILD.bazel index b949bacb35267..b42939f7ec324 100644 --- a/sessionctx/stmtctx/BUILD.bazel +++ b/sessionctx/stmtctx/BUILD.bazel @@ -34,6 +34,7 @@ go_test( "stmtctx_test.go", ], embed = [":stmtctx"], + flaky = True, deps = [ "//kv", "//sessionctx/variable", diff --git a/sessionctx/stmtctx/stmtctx.go b/sessionctx/stmtctx/stmtctx.go index da79f9c842007..a13b80a78ae69 100644 --- a/sessionctx/stmtctx/stmtctx.go +++ b/sessionctx/stmtctx/stmtctx.go @@ -208,12 +208,25 @@ type StatementContext struct { // BindSQL used to construct the key for plan cache. It records the binding used by the stmt. // If the binding is not used by the stmt, the value is empty BindSQL string - // planNormalized use for cache the normalized plan, avoid duplicate builds. - planNormalized string - planDigest *parser.Digest - encodedPlan string - planHint string - planHintSet bool + + // The several fields below are mainly for some diagnostic features, like stmt summary and slow query. + // We cache the values here to avoid calculating them multiple times. + // Note: + // Avoid accessing these fields directly, use their Setter/Getter methods instead. + // Other fields should be the zero value or be consistent with the plan field. + // TODO: more clearly distinguish between the value is empty and the value has not been set + planNormalized string + planDigest *parser.Digest + encodedPlan string + planHint string + planHintSet bool + binaryPlan string + // To avoid cycle import, we use interface{} for the following two fields. + // flatPlan should be a *plannercore.FlatPhysicalPlan if it's not nil + flatPlan interface{} + // plan should be a plannercore.Plan if it's not nil + plan interface{} + Tables []TableEntry PointExec bool // for point update cached execution, Constant expression need to set "paramMarker" lockWaitStartTime int64 // LockWaitStartTime stores the pessimistic lock wait start time @@ -226,7 +239,12 @@ type StatementContext struct { TaskMapBakTS uint64 // counter for // stmtCache is used to store some statement-related values. - stmtCache map[StmtCacheKey]interface{} + // add mutex to protect stmtCache concurrent access + // https://github.com/pingcap/tidb/issues/36159 + stmtCache struct { + mu sync.Mutex + data map[StmtCacheKey]interface{} + } // Map to store all CTE storages of current SQL. // Will clean up at the end of the execution. @@ -339,23 +357,29 @@ const ( // GetOrStoreStmtCache gets the cached value of the given key if it exists, otherwise stores the value. func (sc *StatementContext) GetOrStoreStmtCache(key StmtCacheKey, value interface{}) interface{} { - if sc.stmtCache == nil { - sc.stmtCache = make(map[StmtCacheKey]interface{}) + sc.stmtCache.mu.Lock() + defer sc.stmtCache.mu.Unlock() + if sc.stmtCache.data == nil { + sc.stmtCache.data = make(map[StmtCacheKey]interface{}) } - if _, ok := sc.stmtCache[key]; !ok { - sc.stmtCache[key] = value + if _, ok := sc.stmtCache.data[key]; !ok { + sc.stmtCache.data[key] = value } - return sc.stmtCache[key] + return sc.stmtCache.data[key] } // ResetInStmtCache resets the cache of given key. func (sc *StatementContext) ResetInStmtCache(key StmtCacheKey) { - delete(sc.stmtCache, key) + sc.stmtCache.mu.Lock() + defer sc.stmtCache.mu.Unlock() + delete(sc.stmtCache.data, key) } // ResetStmtCache resets all cached values. func (sc *StatementContext) ResetStmtCache() { - sc.stmtCache = make(map[StmtCacheKey]interface{}) + sc.stmtCache.mu.Lock() + defer sc.stmtCache.mu.Unlock() + sc.stmtCache.data = make(map[StmtCacheKey]interface{}) } // SQLDigest gets normalized and digest for provided sql. @@ -374,11 +398,46 @@ func (sc *StatementContext) InitSQLDigest(normalized string, digest *parser.Dige }) } +// ResetSQLDigest sets the normalized and digest for sql anyway, **DO NOT USE THIS UNLESS YOU KNOW WHAT YOU ARE DOING NOW**. +func (sc *StatementContext) ResetSQLDigest(s string) { + sc.digestMemo.normalized, sc.digestMemo.digest = parser.NormalizeDigest(s) +} + // GetPlanDigest gets the normalized plan and plan digest. func (sc *StatementContext) GetPlanDigest() (normalized string, planDigest *parser.Digest) { return sc.planNormalized, sc.planDigest } +// GetPlan gets the plan field of stmtctx +func (sc *StatementContext) GetPlan() interface{} { + return sc.plan +} + +// SetPlan sets the plan field of stmtctx +func (sc *StatementContext) SetPlan(plan interface{}) { + sc.plan = plan +} + +// GetFlatPlan gets the flatPlan field of stmtctx +func (sc *StatementContext) GetFlatPlan() interface{} { + return sc.flatPlan +} + +// SetFlatPlan sets the flatPlan field of stmtctx +func (sc *StatementContext) SetFlatPlan(flat interface{}) { + sc.flatPlan = flat +} + +// GetBinaryPlan gets the binaryPlan field of stmtctx +func (sc *StatementContext) GetBinaryPlan() string { + return sc.binaryPlan +} + +// SetBinaryPlan sets the binaryPlan field of stmtctx +func (sc *StatementContext) SetBinaryPlan(binaryPlan string) { + sc.binaryPlan = binaryPlan +} + // GetResourceGroupTagger returns the implementation of tikvrpc.ResourceGroupTagger related to self. func (sc *StatementContext) GetResourceGroupTagger() tikvrpc.ResourceGroupTagger { normalized, digest := sc.SQLDigest() diff --git a/sessionctx/variable/BUILD.bazel b/sessionctx/variable/BUILD.bazel index 5d5863d660f72..01d3a2065f1dc 100644 --- a/sessionctx/variable/BUILD.bazel +++ b/sessionctx/variable/BUILD.bazel @@ -33,6 +33,7 @@ go_library( "//parser/types", "//sessionctx/sessionstates", "//sessionctx/stmtctx", + "//sessionctx/variable/featuretag/concurrencyddl", "//tidb-binlog/pump_client", "//types", "//util", @@ -42,6 +43,8 @@ go_library( "//util/execdetails", "//util/logutil", "//util/mathutil", + "//util/memory", + "//util/paging", "//util/rowcodec", "//util/stmtsummary", "//util/stringutil", @@ -75,6 +78,7 @@ go_test( "varsutil_test.go", ], embed = [":variable"], + flaky = True, deps = [ "//config", "//kv", diff --git a/sessionctx/variable/featuretag/concurrencyddl/BUILD.bazel b/sessionctx/variable/featuretag/concurrencyddl/BUILD.bazel new file mode 100644 index 0000000000000..44c1cede3c2b7 --- /dev/null +++ b/sessionctx/variable/featuretag/concurrencyddl/BUILD.bazel @@ -0,0 +1,11 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "concurrencyddl", + srcs = [ + "default.go", + "non_default.go", + ], + importpath = "github.com/pingcap/tidb/sessionctx/variable/featuretag/concurrencyddl", + visibility = ["//visibility:public"], +) diff --git a/sessionctx/variable/featuretag/concurrencyddl/default.go b/sessionctx/variable/featuretag/concurrencyddl/default.go new file mode 100644 index 0000000000000..8aca4924268f0 --- /dev/null +++ b/sessionctx/variable/featuretag/concurrencyddl/default.go @@ -0,0 +1,20 @@ +// Copyright 2022 PingCAP, Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//go:build !featuretag + +package concurrencyddl + +// TiDBEnableConcurrentDDL is a feature tag +const TiDBEnableConcurrentDDL bool = true diff --git a/sessionctx/variable/featuretag/concurrencyddl/non_default.go b/sessionctx/variable/featuretag/concurrencyddl/non_default.go new file mode 100644 index 0000000000000..72218abe958a3 --- /dev/null +++ b/sessionctx/variable/featuretag/concurrencyddl/non_default.go @@ -0,0 +1,20 @@ +// Copyright 2022 PingCAP, Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//go:build featuretag + +package concurrencyddl + +// TiDBEnableConcurrentDDL is a feature tag +const TiDBEnableConcurrentDDL bool = false diff --git a/sessionctx/variable/removed.go b/sessionctx/variable/removed.go index fbaae51b04a40..f540f3894abe0 100644 --- a/sessionctx/variable/removed.go +++ b/sessionctx/variable/removed.go @@ -34,6 +34,7 @@ const ( placementChecks = "placement_checks" tiDBEnableStreaming = "tidb_enable_streaming" tiDBOptBCJ = "tidb_opt_broadcast_join" + tidbEnableChangeMultiSchema = "tidb_enable_change_multi_schema" ) var removedSysVars = map[string]string{ @@ -49,6 +50,7 @@ var removedSysVars = map[string]string{ tiDBMemQuotaIndexLookupJoin: "use tidb_mem_quota_query instead", tiDBEnableStreaming: "streaming is no longer supported", tiDBOptBCJ: "tidb_opt_broadcast_join is removed and use tidb_allow_mpp instead", + tidbEnableChangeMultiSchema: "alter multiple schema objects in a table is now always enabled", } // IsRemovedSysVar returns true if the sysvar has been removed diff --git a/sessionctx/variable/session.go b/sessionctx/variable/session.go index add261a90d449..ddf249281858a 100644 --- a/sessionctx/variable/session.go +++ b/sessionctx/variable/session.go @@ -689,6 +689,9 @@ type SessionVars struct { // AllowDistinctAggPushDown can be set true to allow agg with distinct push down to tikv/tiflash. AllowDistinctAggPushDown bool + // EnableSkewDistinctAgg can be set true to allow skew distinct aggregate rewrite + EnableSkewDistinctAgg bool + // MultiStatementMode permits incorrect client library usage. Not recommended to be turned on. MultiStatementMode int @@ -917,7 +920,7 @@ type SessionVars struct { // Killed is a flag to indicate that this query is killed. Killed uint32 - // ConnectionInfo indicates current connection info used by current session, only be lazy assigned by plugin. + // ConnectionInfo indicates current connection info used by current session. ConnectionInfo *ConnectionInfo // NoopFuncsMode allows OFF/ON/WARN values as 0/1/2. @@ -972,6 +975,9 @@ type SessionVars struct { // replicaRead is used for reading data from replicas, only follower is supported at this time. replicaRead kv.ReplicaReadType + // ReplicaClosestReadThreshold is the minimum response body size that a cop request should be sent to the closest replica. + // this variable only take effect when `tidb_follower_read` = 'closest-adaptive' + ReplicaClosestReadThreshold int64 // IsolationReadEngines is used to isolation read, tidb only read from the stores whose engine type is in the engines. IsolationReadEngines map[kv.StoreType]struct{} @@ -1171,6 +1177,16 @@ type SessionVars struct { // MemoryDebugModeAlarmRatio indicated the allowable bias ratio of memory tracking accuracy check. // When `(memory trakced by tidb) * (1+MemoryDebugModeAlarmRatio) < actual heapInUse`, an alarm log will be recorded. MemoryDebugModeAlarmRatio int64 + + // EnableAnalyzeSnapshot indicates whether to read data on snapshot when collecting statistics. + // When it is false, ANALYZE reads the latest data. + // When it is true, ANALYZE reads data on the snapshot at the beginning of ANALYZE. + EnableAnalyzeSnapshot bool + + // DefaultStrMatchSelectivity adjust the estimation strategy for string matching expressions that can't be estimated by building into range. + // when > 0: it's the selectivity for the expression. + // when = 0: try to use TopN to evaluate the like expression to estimate the selectivity. + DefaultStrMatchSelectivity float64 } // InitStatementContext initializes a StatementContext, the object is reused to reduce allocation. @@ -1296,7 +1312,7 @@ func (pps PreparedParams) String() string { return " [arguments: " + types.DatumsToStrNoErr(pps) + "]" } -// ConnectionInfo present connection used by audit. +// ConnectionInfo presents the connection information, which is mainly used by audit logs. type ConnectionInfo struct { ConnectionID uint64 ConnectionType string @@ -1316,6 +1332,24 @@ type ConnectionInfo struct { DB string } +const ( + // ConnTypeSocket indicates socket without TLS. + ConnTypeSocket string = "Socket" + // ConnTypeUnixSocket indicates Unix Socket. + ConnTypeUnixSocket string = "UnixSocket" + // ConnTypeTLS indicates socket with TLS. + ConnTypeTLS string = "SSL/TLS" +) + +// IsSecureTransport checks whether the connection is secure. +func (connInfo *ConnectionInfo) IsSecureTransport() bool { + switch connInfo.ConnectionType { + case ConnTypeUnixSocket, ConnTypeTLS: + return true + } + return false +} + // NewSessionVars creates a session vars object. func NewSessionVars() *SessionVars { vars := &SessionVars{ @@ -1407,6 +1441,7 @@ func NewSessionVars() *SessionVars { StatsLoadSyncWait: StatsLoadSyncWait.Load(), EnableLegacyInstanceScope: DefEnableLegacyInstanceScope, RemoveOrderbyInSubquery: DefTiDBRemoveOrderbyInSubquery, + EnableSkewDistinctAgg: DefTiDBSkewDistinctAgg, MaxAllowedPacket: DefMaxAllowedPacket, } vars.KVVars = tikvstore.NewVariables(&vars.Killed) @@ -1433,6 +1468,7 @@ func NewSessionVars() *SessionVars { IndexLookupSize: DefIndexLookupSize, InitChunkSize: DefInitChunkSize, MaxChunkSize: DefMaxChunkSize, + MinPagingSize: DefMinPagingSize, } vars.DMLBatchSize = DefDMLBatchSize vars.AllowBatchCop = DefTiDBAllowBatchCop @@ -2173,6 +2209,9 @@ type BatchSize struct { // MaxChunkSize defines max row count of a Chunk during query execution. MaxChunkSize int + + // MinPagingSize defines the min size used by the coprocessor paging protocol. + MinPagingSize int } const ( @@ -2264,8 +2303,12 @@ const ( SlowLogPlan = "Plan" // SlowLogPlanDigest is used to record the query plan digest. SlowLogPlanDigest = "Plan_digest" + // SlowLogBinaryPlan is used to record the binary plan. + SlowLogBinaryPlan = "Binary_plan" // SlowLogPlanPrefix is the prefix of the plan value. SlowLogPlanPrefix = ast.TiDBDecodePlan + "('" + // SlowLogBinaryPlanPrefix is the prefix of the binary plan value. + SlowLogBinaryPlanPrefix = ast.TiDBDecodeBinaryPlan + "('" // SlowLogPlanSuffix is the suffix of the plan value. SlowLogPlanSuffix = "')" // SlowLogPrevStmtPrefix is the prefix of Prev_stmt in slow log file. @@ -2292,6 +2335,10 @@ const ( SlowLogIsWriteCacheTable = "IsWriteCacheTable" ) +// GenerateBinaryPlan decides whether we should record binary plan in slow log and stmt summary. +// It's controlled by the global variable `tidb_generate_binary_plan`. +var GenerateBinaryPlan atomic2.Bool + // SlowQueryLogItems is a collection of items that should be included in the // slow query log. type SlowQueryLogItems struct { @@ -2317,6 +2364,7 @@ type SlowQueryLogItems struct { PrevStmt string Plan string PlanDigest string + BinaryPlan string RewriteInfo RewritePhaseInfo KVTotal time.Duration PDTotal time.Duration @@ -2500,6 +2548,9 @@ func (s *SessionVars) SlowLogFormat(logItems *SlowQueryLogItems) string { if len(logItems.PlanDigest) != 0 { writeSlowLogItem(&buf, SlowLogPlanDigest, logItems.PlanDigest) } + if len(logItems.BinaryPlan) != 0 { + writeSlowLogItem(&buf, SlowLogBinaryPlan, logItems.BinaryPlan) + } if logItems.PrevStmt != "" { writeSlowLogItem(&buf, SlowLogPrevStmt, logItems.PrevStmt) @@ -2678,3 +2729,30 @@ func (s *SessionVars) GetSeekFactor(tbl *model.TableInfo) float64 { } return s.seekFactor } + +// EnableEvalTopNEstimationForStrMatch means if we need to evaluate expression with TopN to improve estimation. +// Currently, it's only for string matching functions (like and regexp). +func (s *SessionVars) EnableEvalTopNEstimationForStrMatch() bool { + return s.DefaultStrMatchSelectivity == 0 +} + +// GetStrMatchDefaultSelectivity means the default selectivity for like and regexp. +// Note: 0 is a special value, which means the default selectivity is 0.1 and TopN assisted estimation is enabled. +func (s *SessionVars) GetStrMatchDefaultSelectivity() float64 { + if s.DefaultStrMatchSelectivity == 0 { + return 0.1 + } + return s.DefaultStrMatchSelectivity +} + +// GetNegateStrMatchDefaultSelectivity means the default selectivity for not like and not regexp. +// Note: +// 0 is a special value, which means the default selectivity is 0.9 and TopN assisted estimation is enabled. +// 0.8 (the default value) is also a special value. For backward compatibility, when the variable is set to 0.8, we +// keep the default selectivity of like/regexp and not like/regexp all 0.8. +func (s *SessionVars) GetNegateStrMatchDefaultSelectivity() float64 { + if s.DefaultStrMatchSelectivity == DefTiDBDefaultStrMatchSelectivity { + return DefTiDBDefaultStrMatchSelectivity + } + return 1 - s.GetStrMatchDefaultSelectivity() +} diff --git a/sessionctx/variable/sysvar.go b/sessionctx/variable/sysvar.go index d008cc29f334b..c4ef433f52ce4 100644 --- a/sessionctx/variable/sysvar.go +++ b/sessionctx/variable/sysvar.go @@ -30,11 +30,14 @@ import ( "github.com/pingcap/tidb/metrics" "github.com/pingcap/tidb/parser/charset" "github.com/pingcap/tidb/parser/mysql" + "github.com/pingcap/tidb/sessionctx/sessionstates" "github.com/pingcap/tidb/sessionctx/stmtctx" "github.com/pingcap/tidb/types" "github.com/pingcap/tidb/util/collate" "github.com/pingcap/tidb/util/logutil" "github.com/pingcap/tidb/util/mathutil" + "github.com/pingcap/tidb/util/memory" + "github.com/pingcap/tidb/util/paging" "github.com/pingcap/tidb/util/stmtsummary" "github.com/pingcap/tidb/util/tikvutil" "github.com/pingcap/tidb/util/tls" @@ -159,6 +162,10 @@ var defaultSysVars = []*SysVar{ s.AllowDistinctAggPushDown = TiDBOptOn(val) return nil }}, + {Scope: ScopeGlobal | ScopeSession, Name: TiDBOptSkewDistinctAgg, Value: BoolToOnOff(DefTiDBSkewDistinctAgg), Type: TypeBool, SetSession: func(s *SessionVars, val string) error { + s.EnableSkewDistinctAgg = TiDBOptOn(val) + return nil + }}, {Scope: ScopeSession, Name: TiDBOptWriteRowID, Value: BoolToOnOff(DefOptWriteRowID), Type: TypeBool, SetSession: func(s *SessionVars, val string) error { s.AllowWriteRowID = TiDBOptOn(val) return nil @@ -495,12 +502,6 @@ var defaultSysVars = []*SysVar{ SetMaxDeltaSchemaCount(TidbOptInt64(val, DefTiDBMaxDeltaSchemaCount)) return nil }}, - {Scope: ScopeGlobal, Name: TiDBEnableChangeMultiSchema, Value: BoolToOnOff(DefTiDBChangeMultiSchema), Hidden: true, Type: TypeBool, SetGlobal: func(s *SessionVars, val string) error { - EnableChangeMultiSchema.Store(TiDBOptOn(val)) - return nil - }, GetGlobal: func(s *SessionVars) (string, error) { - return BoolToOnOff(EnableChangeMultiSchema.Load()), nil - }}, {Scope: ScopeGlobal, Name: TiDBEnablePointGetCache, Value: BoolToOnOff(DefTiDBPointGetCache), Hidden: true, Type: TypeBool, SetGlobal: func(s *SessionVars, val string) error { EnablePointGetCache.Store(TiDBOptOn(val)) return nil @@ -807,7 +808,13 @@ var defaultSysVars = []*SysVar{ }, }, {Scope: ScopeGlobal, Name: TiDBEnableConcurrentDDL, Value: BoolToOnOff(DefTiDBEnableConcurrentDDL), Type: TypeBool, SetGlobal: func(s *SessionVars, val string) error { - EnableConcurrentDDL.Store(TiDBOptOn(val)) + if EnableConcurrentDDL.Load() != TiDBOptOn(val) { + err := SwitchConcurrentDDL(TiDBOptOn(val)) + if err != nil { + return err + } + EnableConcurrentDDL.Store(TiDBOptOn(val)) + } return nil }, GetGlobal: func(s *SessionVars) (string, error) { return BoolToOnOff(EnableConcurrentDDL.Load()), nil @@ -818,6 +825,20 @@ var defaultSysVars = []*SysVar{ }, GetGlobal: func(s *SessionVars) (string, error) { return BoolToOnOff(EnableNoopVariables.Load()), nil }}, + {Scope: ScopeGlobal, Name: TiDBAuthSigningCert, Value: "", Type: TypeStr, SetGlobal: func(s *SessionVars, val string) error { + sessionstates.SetCertPath(val) + return nil + }}, + {Scope: ScopeGlobal, Name: TiDBAuthSigningKey, Value: "", Type: TypeStr, SetGlobal: func(s *SessionVars, val string) error { + sessionstates.SetKeyPath(val) + return nil + }}, + {Scope: ScopeGlobal, Name: TiDBEnableGCAwareMemoryTrack, Value: BoolToOnOff(DefEnableTiDBGCAwareMemoryTrack), Type: TypeBool, SetGlobal: func(s *SessionVars, val string) error { + memory.EnableGCAwareMemoryTrack.Store(TiDBOptOn(val)) + return nil + }, GetGlobal: func(s *SessionVars) (string, error) { + return BoolToOnOff(memory.EnableGCAwareMemoryTrack.Load()), nil + }}, /* The system variables below have GLOBAL and SESSION scope */ {Scope: ScopeGlobal | ScopeSession, Name: SQLSelectLimit, Value: "18446744073709551615", Type: TypeUnsigned, MinValue: 0, MaxValue: math.MaxUint64, SetSession: func(s *SessionVars, val string) error { @@ -1413,7 +1434,7 @@ var defaultSysVars = []*SysVar{ s.NoopFuncsMode = TiDBOptOnOffWarn(val) return nil }}, - {Scope: ScopeGlobal | ScopeSession, Name: TiDBReplicaRead, Value: "leader", Type: TypeEnum, PossibleValues: []string{"leader", "follower", "leader-and-follower", "closest-replicas"}, SetSession: func(s *SessionVars, val string) error { + {Scope: ScopeGlobal | ScopeSession, Name: TiDBReplicaRead, Value: "leader", Type: TypeEnum, PossibleValues: []string{"leader", "follower", "leader-and-follower", "closest-replicas", "closest-adaptive"}, SetSession: func(s *SessionVars, val string) error { if strings.EqualFold(val, "follower") { s.SetReplicaRead(kv.ReplicaReadFollower) } else if strings.EqualFold(val, "leader-and-follower") { @@ -1422,9 +1443,15 @@ var defaultSysVars = []*SysVar{ s.SetReplicaRead(kv.ReplicaReadLeader) } else if strings.EqualFold(val, "closest-replicas") { s.SetReplicaRead(kv.ReplicaReadClosest) + } else if strings.EqualFold(val, "closest-adaptive") { + s.SetReplicaRead(kv.ReplicaReadClosestAdaptive) } return nil }}, + {Scope: ScopeGlobal | ScopeSession, Name: TiDBAdaptiveClosestReadThreshold, Value: strconv.Itoa(DefAdaptiveClosestReadThreshold), Type: TypeUnsigned, MinValue: 0, MaxValue: math.MaxInt64, SetSession: func(s *SessionVars, val string) error { + s.ReplicaClosestReadThreshold = TidbOptInt64(val, DefAdaptiveClosestReadThreshold) + return nil + }}, {Scope: ScopeGlobal | ScopeSession, Name: TiDBUsePlanBaselines, Value: BoolToOnOff(DefTiDBUsePlanBaselines), Type: TypeBool, SetSession: func(s *SessionVars, val string) error { s.UsePlanBaselines = TiDBOptOn(val) return nil @@ -1615,13 +1642,13 @@ var defaultSysVars = []*SysVar{ return nil }, }, - {Scope: ScopeGlobal | ScopeSession, Name: TiDBEnableNewCostInterface, Value: BoolToOnOff(false), Hidden: true, Type: TypeBool, + {Scope: ScopeGlobal | ScopeSession, Name: TiDBEnableNewCostInterface, Value: BoolToOnOff(true), Hidden: false, Type: TypeBool, SetSession: func(vars *SessionVars, s string) error { vars.EnableNewCostInterface = TiDBOptOn(s) return nil }, }, - {Scope: ScopeGlobal | ScopeSession, Name: TiDBCostModelVersion, Value: strconv.Itoa(1), Hidden: true, Type: TypeInt, MinValue: 1, MaxValue: 2, + {Scope: ScopeGlobal | ScopeSession, Name: TiDBCostModelVersion, Value: strconv.Itoa(1), Hidden: false, Type: TypeInt, MinValue: 1, MaxValue: 2, SetSession: func(vars *SessionVars, s string) error { vars.CostModelVersion = int(TidbOptInt64(s, 1)) return nil @@ -1667,6 +1694,10 @@ var defaultSysVars = []*SysVar{ metrics.ToggleSimplifiedMode(TiDBOptOn(s)) return nil }}, + {Scope: ScopeGlobal | ScopeSession, Name: TiDBMinPagingSize, Value: strconv.Itoa(DefMinPagingSize), Type: TypeUnsigned, MinValue: 1, MaxValue: paging.MaxPagingSize, SetSession: func(s *SessionVars, val string) error { + s.MinPagingSize = tidbOptPositiveInt32(val, DefMinPagingSize) + return nil + }}, {Scope: ScopeSession, Name: TiDBMemoryDebugModeMinHeapInUse, Value: strconv.Itoa(0), Type: TypeInt, MinValue: math.MinInt64, MaxValue: math.MaxInt64, SetSession: func(s *SessionVars, val string) error { s.MemoryDebugModeMinHeapInUse = TidbOptInt64(val, 0) return nil @@ -1675,6 +1706,19 @@ var defaultSysVars = []*SysVar{ s.MemoryDebugModeAlarmRatio = TidbOptInt64(val, 0) return nil }}, + {Scope: ScopeGlobal | ScopeSession, Name: TiDBEnableAnalyzeSnapshot, Value: BoolToOnOff(DefTiDBEnableAnalyzeSnapshot), Type: TypeBool, SetSession: func(s *SessionVars, val string) error { + s.EnableAnalyzeSnapshot = TiDBOptOn(val) + return nil + }}, + {Scope: ScopeGlobal, Name: TiDBGenerateBinaryPlan, Value: BoolToOnOff(DefTiDBGenerateBinaryPlan), Type: TypeBool, SetGlobal: func(s *SessionVars, val string) error { + GenerateBinaryPlan.Store(TiDBOptOn(val)) + return nil + }}, + {Scope: ScopeGlobal | ScopeSession, Name: TiDBDefaultStrMatchSelectivity, Value: strconv.FormatFloat(DefTiDBDefaultStrMatchSelectivity, 'f', -1, 64), Type: TypeFloat, MinValue: 0, MaxValue: 1, + SetSession: func(s *SessionVars, val string) error { + s.DefaultStrMatchSelectivity = tidbOptFloat64(val, DefTiDBDefaultStrMatchSelectivity) + return nil + }}, } // FeedbackProbability points to the FeedbackProbability in statistics package. diff --git a/sessionctx/variable/tidb_vars.go b/sessionctx/variable/tidb_vars.go index 54b49f840f494..ffa18e380c375 100644 --- a/sessionctx/variable/tidb_vars.go +++ b/sessionctx/variable/tidb_vars.go @@ -19,6 +19,8 @@ import ( "github.com/pingcap/tidb/config" "github.com/pingcap/tidb/parser/mysql" + "github.com/pingcap/tidb/sessionctx/variable/featuretag/concurrencyddl" + "github.com/pingcap/tidb/util/paging" "go.uber.org/atomic" ) @@ -49,6 +51,9 @@ const ( // TiDBOptDistinctAggPushDown is used to decide whether agg with distinct should be pushed to tikv/tiflash. TiDBOptDistinctAggPushDown = "tidb_opt_distinct_agg_push_down" + // TiDBOptSkewDistinctAgg is used to indicate the distinct agg has data skew + TiDBOptSkewDistinctAgg = "tidb_opt_skew_distinct_agg" + // TiDBBCJThresholdSize is used to limit the size of small table for mpp broadcast join. // Its unit is bytes, if the size of small table is larger than it, we will not use bcj. TiDBBCJThresholdSize = "tidb_broadcast_join_threshold_size" @@ -164,6 +169,12 @@ const ( // TiDBReplicaRead is used for reading data from replicas, followers for example. TiDBReplicaRead = "tidb_replica_read" + // TiDBAdaptiveClosestReadThreshold is for reading data from closest replicas(with same 'zone' label). + // TiKV client should send read request to the closest replica(leader/follower) if the estimated response + // size exceeds this threshold; otherwise, this request should be sent to leader. + // This variable only take effect when `tidb_replica_read` is 'closest-adaptive'. + TiDBAdaptiveClosestReadThreshold = "tidb_adaptive_closest_read_threshold" + // TiDBAllowRemoveAutoInc indicates whether a user can drop the auto_increment column attribute or not. TiDBAllowRemoveAutoInc = "tidb_allow_remove_auto_inc" @@ -363,6 +374,9 @@ const ( // TiDBInitChunkSize is used to control the init chunk size during query execution. TiDBInitChunkSize = "tidb_init_chunk_size" + // TiDBMinPagingSize is used to control the min paging size in the coprocessor paging protocol. + TiDBMinPagingSize = "tidb_min_paging_size" + // TiDBEnableCascadesPlanner is used to control whether to enable the cascades planner. TiDBEnableCascadesPlanner = "tidb_enable_cascades_planner" @@ -431,9 +445,6 @@ const ( // It can be: PRIORITY_LOW, PRIORITY_NORMAL, PRIORITY_HIGH TiDBDDLReorgPriority = "tidb_ddl_reorg_priority" - // TiDBEnableChangeMultiSchema is used to control whether to enable the change multi schema. - TiDBEnableChangeMultiSchema = "tidb_enable_change_multi_schema" - // TiDBEnableAutoIncrementInGenerated disables the mysql compatibility check on using auto-incremented columns in // expression indexes and generated columns described here https://dev.mysql.com/doc/refman/5.7/en/create-table-generated-columns.html for details. TiDBEnableAutoIncrementInGenerated = "tidb_enable_auto_increment_in_generated" @@ -694,6 +705,18 @@ const ( TiDBMemoryDebugModeMinHeapInUse = "tidb_memory_debug_mode_min_heap_inuse" // TiDBMemoryDebugModeAlarmRatio is used set tidb memory debug mode bias ratio. Treat memory bias less than this ratio as noise. TiDBMemoryDebugModeAlarmRatio = "tidb_memory_debug_mode_alarm_ratio" + + // TiDBEnableAnalyzeSnapshot indicates whether to read data on snapshot when collecting statistics. + // When set to false, ANALYZE reads the latest data. + // When set to true, ANALYZE reads data on the snapshot at the beginning of ANALYZE. + TiDBEnableAnalyzeSnapshot = "tidb_enable_analyze_snapshot" + + // TiDBDefaultStrMatchSelectivity controls some special cardinality estimation strategy for string match functions (like and regexp). + // When set to 0, Selectivity() will try to evaluate those functions with TopN and NULL in the stats to estimate, + // and the default selectivity and the selectivity for the histogram part will be 0.1. + // When set to (0, 1], Selectivity() will use the value of this variable as the default selectivity of those + // functions instead of the selectionFactor (0.8). + TiDBDefaultStrMatchSelectivity = "tidb_default_string_match_selectivity" ) // TiDB vars that have only global scope @@ -753,6 +776,14 @@ const ( TiDBMaxAutoAnalyzeTime = "tidb_max_auto_analyze_time" // TiDBEnableConcurrentDDL indicates whether to enable the new DDL framework. TiDBEnableConcurrentDDL = "tidb_enable_concurrent_ddl" + // TiDBAuthSigningCert indicates the path of the signing certificate to do token-based authentication. + TiDBAuthSigningCert = "tidb_auth_signing_cert" + // TiDBAuthSigningKey indicates the path of the signing key to do token-based authentication. + TiDBAuthSigningKey = "tidb_auth_signing_key" + // TiDBGenerateBinaryPlan indicates whether binary plan should be generated in slow log and statements summary. + TiDBGenerateBinaryPlan = "tidb_generate_binary_plan" + // TiDBEnableGCAwareMemoryTrack indicates whether to turn-on GC-aware memory track. + TiDBEnableGCAwareMemoryTrack = "tidb_enable_gc_aware_memory_track" ) // TiDB intentional limits @@ -818,6 +849,7 @@ const ( DefBatchCommit = false DefCurretTS = 0 DefInitChunkSize = 32 + DefMinPagingSize = int(paging.MinPagingSize) DefMaxChunkSize = 1024 DefDMLBatchSize = 0 DefMaxPreparedStmtCount = -1 @@ -849,7 +881,6 @@ const ( DefTiDBDDLReorgBatchSize = 256 DefTiDBDDLErrorCountLimit = 512 DefTiDBMaxDeltaSchemaCount = 1024 - DefTiDBChangeMultiSchema = false DefTiDBPointGetCache = false DefTiDBPlacementMode = PlacementModeStrict DefTiDBEnableAutoIncrementInGenerated = false @@ -935,6 +966,7 @@ const ( DefTiDBBatchPendingTiFlashCount = 4000 DefRCReadCheckTS = false DefTiDBRemoveOrderbyInSubquery = false + DefTiDBSkewDistinctAgg = false DefTiDBReadStaleness = 0 DefTiDBGCMaxWaitTime = 24 * 60 * 60 DefMaxAllowedPacket uint64 = 67108864 @@ -953,12 +985,17 @@ const ( DefTiDBEnablePrepPlanCache = true DefTiDBPrepPlanCacheSize = 100 DefTiDBPrepPlanCacheMemoryGuardRatio = 0.1 - DefTiDBEnableConcurrentDDL = true + DefTiDBEnableConcurrentDDL = concurrencyddl.TiDBEnableConcurrentDDL DefTiDBSimplifiedMetrics = false DefTiDBEnablePaging = true DefTiFlashFineGrainedShuffleStreamCount = -1 DefStreamCountWhenMaxThreadsNotSet = 8 DefTiFlashFineGrainedShuffleBatchSize = 8192 + DefAdaptiveClosestReadThreshold = 4096 + DefTiDBEnableAnalyzeSnapshot = false + DefTiDBGenerateBinaryPlan = true + DefEnableTiDBGCAwareMemoryTrack = true + DefTiDBDefaultStrMatchSelectivity = 0.8 ) // Process global variables. @@ -987,7 +1024,6 @@ var ( MemoryUsageAlarmRatio = atomic.NewFloat64(config.GetGlobalConfig().Instance.MemoryUsageAlarmRatio) EnableLocalTxn = atomic.NewBool(DefTiDBEnableLocalTxn) EnablePointGetCache = atomic.NewBool(DefTiDBPointGetCache) - EnableChangeMultiSchema = atomic.NewBool(DefTiDBChangeMultiSchema) MaxTSOBatchWaitInterval = atomic.NewFloat64(DefTiDBTSOClientBatchMaxWaitTime) EnableTSOFollowerProxy = atomic.NewBool(DefTiDBEnableTSOFollowerProxy) RestrictedReadOnly = atomic.NewBool(DefTiDBRestrictedReadOnly) @@ -1017,4 +1053,6 @@ var ( GetMemQuotaAnalyze func() int64 = nil // SetStatsCacheCapacity is the func registered by domain to set statsCache memory quota. SetStatsCacheCapacity atomic.Value + // SwitchConcurrentDDL is the func registered by DDL to switch concurrent DDL. + SwitchConcurrentDDL func(bool) error = nil ) diff --git a/sessionctx/variable/varsutil_test.go b/sessionctx/variable/varsutil_test.go index 4641a8c2f1e0d..49362e0fc3969 100644 --- a/sessionctx/variable/varsutil_test.go +++ b/sessionctx/variable/varsutil_test.go @@ -432,6 +432,14 @@ func TestVarsutil(t *testing.T) { err = SetSessionSystemVar(v, TiDBTableCacheLease, "123") require.Error(t, err) require.Regexp(t, "'tidb_table_cache_lease' is a GLOBAL variable and should be set with SET GLOBAL", err.Error()) + + val, err = GetSessionOrGlobalSystemVar(v, TiDBMinPagingSize) + require.NoError(t, err) + require.Equal(t, strconv.Itoa(DefMinPagingSize), val) + + err = SetSessionSystemVar(v, TiDBMinPagingSize, "123") + require.NoError(t, err) + require.Equal(t, v.MinPagingSize, 123) } func TestValidate(t *testing.T) { diff --git a/sessiontxn/BUILD.bazel b/sessiontxn/BUILD.bazel index c884d7981e19e..8ed1e7205652e 100644 --- a/sessiontxn/BUILD.bazel +++ b/sessiontxn/BUILD.bazel @@ -24,6 +24,7 @@ go_test( "txn_context_test.go", "txn_manager_test.go", ], + flaky = True, deps = [ ":sessiontxn", "//domain", @@ -40,6 +41,7 @@ go_test( "//testkit/testfork", "//testkit/testsetup", "//tests/realtikvtest", + "//types", "@com_github_pingcap_failpoint//:failpoint", "@com_github_stretchr_testify//require", "@com_github_tikv_client_go_v2//oracle", diff --git a/sessiontxn/failpoint.go b/sessiontxn/failpoint.go index b41be21165908..da63ac753870f 100644 --- a/sessiontxn/failpoint.go +++ b/sessiontxn/failpoint.go @@ -43,6 +43,9 @@ var BreakPointBeforeExecutorFirstRun = "beforeExecutorFirstRun" // Only for test var BreakPointOnStmtRetryAfterLockError = "lockErrorAndThenOnStmtRetryCalled" +// TsoRequestCount is the key for recording tso request counts in some places +var TsoRequestCount stringutil.StringerStr = "tsoRequestCount" + // AssertLockErr is used to record the lock errors we encountered // Only for test var AssertLockErr stringutil.StringerStr = "assertLockError" @@ -112,6 +115,17 @@ func AddAssertEntranceForLockError(sctx sessionctx.Context, name string) { } } +// TsoRequestCountInc is used only for test +// When it is called, there is a tso cmd request. +func TsoRequestCountInc(sctx sessionctx.Context) { + count, ok := sctx.Value(TsoRequestCount).(uint64) + if !ok { + count = 0 + } + count += 1 + sctx.SetValue(TsoRequestCount, count) +} + // ExecTestHook is used only for test. It consumes hookKey in session wait do what it gets from it. func ExecTestHook(sctx sessionctx.Context, hookKey fmt.Stringer) { c := sctx.Value(hookKey) diff --git a/sessiontxn/isolation/BUILD.bazel b/sessiontxn/isolation/BUILD.bazel index 8ef29433ceb7d..5b416b3e8a294 100644 --- a/sessiontxn/isolation/BUILD.bazel +++ b/sessiontxn/isolation/BUILD.bazel @@ -28,6 +28,7 @@ go_library( "//util/logutil", "@com_github_opentracing_opentracing_go//:opentracing-go", "@com_github_pingcap_errors//:errors", + "@com_github_pingcap_failpoint//:failpoint", "@com_github_tikv_client_go_v2//error", "@com_github_tikv_client_go_v2//oracle", "@org_uber_go_zap//:zap", @@ -36,6 +37,7 @@ go_library( go_test( name = "isolation_test", + timeout = "short", srcs = [ "main_test.go", "optimistic_test.go", @@ -43,6 +45,7 @@ go_test( "repeatable_read_test.go", "serializable_test.go", ], + flaky = True, deps = [ ":isolation", "//config", diff --git a/sessiontxn/isolation/base.go b/sessiontxn/isolation/base.go index 572bc218f754b..4fe7b3a595dff 100644 --- a/sessiontxn/isolation/base.go +++ b/sessiontxn/isolation/base.go @@ -20,6 +20,7 @@ import ( "github.com/opentracing/opentracing-go" "github.com/pingcap/errors" + "github.com/pingcap/failpoint" "github.com/pingcap/tidb/config" "github.com/pingcap/tidb/infoschema" "github.com/pingcap/tidb/kv" @@ -408,6 +409,10 @@ func newOracleFuture(ctx context.Context, sctx sessionctx.Context, scope string) ctx = opentracing.ContextWithSpan(ctx, span1) } + failpoint.Inject("requestTsoFromPD", func() { + sessiontxn.TsoRequestCountInc(sctx) + }) + oracleStore := sctx.GetStore().GetOracle() option := &oracle.Option{TxnScope: scope} diff --git a/sessiontxn/isolation/optimistic_test.go b/sessiontxn/isolation/optimistic_test.go index 4d6c7f56fc23b..b8aae4b9bb2f9 100644 --- a/sessiontxn/isolation/optimistic_test.go +++ b/sessiontxn/isolation/optimistic_test.go @@ -43,6 +43,8 @@ func TestOptimisticTxnContextProviderTS(t *testing.T) { defer clean() tk := testkit.NewTestKit(t, store) + defer tk.MustExec("rollback") + tk.MustExec("use test") tk.MustExec("create table t(id int primary key, v int)") @@ -132,6 +134,8 @@ func TestOptimisticHandleError(t *testing.T) { defer clean() tk := testkit.NewTestKit(t, store) + defer tk.MustExec("rollback") + provider := initializeOptimisticProvider(t, tk, true) startTS := tk.Session().GetSessionVars().TxnCtx.StartTS checkTS := func() { @@ -214,6 +218,8 @@ func TestOptimisticProviderInitialize(t *testing.T) { defer clearScopeSettings() tk := testkit.NewTestKit(t, store) + defer tk.MustExec("rollback") + se := tk.Session() // begin outside a txn @@ -286,6 +292,8 @@ func TestTidbSnapshotVarInOptimisticTxn(t *testing.T) { defer clean() tk := testkit.NewTestKit(t, store) + defer tk.MustExec("rollback") + se := tk.Session() tk.MustExec("set @@tx_isolation = 'READ-COMMITTED'") safePoint := "20160102-15:04:05 -0700" diff --git a/sessiontxn/isolation/readcommitted_test.go b/sessiontxn/isolation/readcommitted_test.go index a0211d2cf83f0..2315546e89549 100644 --- a/sessiontxn/isolation/readcommitted_test.go +++ b/sessiontxn/isolation/readcommitted_test.go @@ -45,6 +45,8 @@ func TestPessimisticRCTxnContextProviderRCCheck(t *testing.T) { defer clean() tk := testkit.NewTestKit(t, store) + defer tk.MustExec("rollback") + tk.MustExec("set @@tidb_rc_read_check_ts=1") se := tk.Session() provider := initializePessimisticRCProvider(t, tk) @@ -145,7 +147,11 @@ func TestPessimisticRCTxnContextProviderRCCheckForPrepareExecute(t *testing.T) { defer clean() tk := testkit.NewTestKit(t, store) + defer tk.MustExec("rollback") + tk2 := testkit.NewTestKit(t, store) + defer tk2.MustExec("rollback") + tk.MustExec("use test") tk2.MustExec("use test") tk.MustExec("create table t (id int primary key, v int)") @@ -181,6 +187,8 @@ func TestPessimisticRCTxnContextProviderRCCheckForPrepareExecute(t *testing.T) { require.NoError(t, err) _, err = session.ResultSetToStringSlice(ctx, tk.Session(), rs) require.Error(t, err) + rs.Close() + ts, err = provider.GetStmtForUpdateTS() require.NoError(t, err) require.Greater(t, compareTS, ts) @@ -199,6 +207,8 @@ func TestPessimisticRCTxnContextProviderLockError(t *testing.T) { defer clean() tk := testkit.NewTestKit(t, store) + defer tk.MustExec("rollback") + se := tk.Session() provider := initializePessimisticRCProvider(t, tk) @@ -236,6 +246,8 @@ func TestPessimisticRCTxnContextProviderTS(t *testing.T) { defer clean() tk := testkit.NewTestKit(t, store) + defer tk.MustExec("rollback") + se := tk.Session() provider := initializePessimisticRCProvider(t, tk) compareTS := getOracleTS(t, se) @@ -293,6 +305,8 @@ func TestRCProviderInitialize(t *testing.T) { defer clearScopeSettings() tk := testkit.NewTestKit(t, store) + defer tk.MustExec("rollback") + se := tk.Session() tk.MustExec("set @@tx_isolation = 'READ-COMMITTED'") tk.MustExec("set @@tidb_txn_mode='pessimistic'") @@ -355,6 +369,8 @@ func TestTidbSnapshotVarInRC(t *testing.T) { defer clean() tk := testkit.NewTestKit(t, store) + defer tk.MustExec("rollback") + se := tk.Session() tk.MustExec("set @@tx_isolation = 'READ-COMMITTED'") safePoint := "20160102-15:04:05 -0700" @@ -447,8 +463,12 @@ func TestConflictErrorsInRC(t *testing.T) { defer clean() tk := testkit.NewTestKit(t, store) + defer tk.MustExec("rollback") + se := tk.Session() + tk2 := testkit.NewTestKit(t, store) + defer tk2.MustExec("rollback") tk.MustExec("use test") tk2.MustExec("use test") diff --git a/sessiontxn/isolation/repeatable_read.go b/sessiontxn/isolation/repeatable_read.go index 2ea4bd41c5996..a70f882758951 100644 --- a/sessiontxn/isolation/repeatable_read.go +++ b/sessiontxn/isolation/repeatable_read.go @@ -18,6 +18,7 @@ import ( "context" "github.com/pingcap/errors" + "github.com/pingcap/failpoint" "github.com/pingcap/tidb/kv" "github.com/pingcap/tidb/parser/ast" "github.com/pingcap/tidb/parser/terror" @@ -107,6 +108,10 @@ func (p *PessimisticRRTxnContextProvider) updateForUpdateTS() (err error) { return errors.Trace(kv.ErrInvalidTxn) } + failpoint.Inject("RequestTsoFromPD", func() { + sessiontxn.TsoRequestCountInc(sctx) + }) + // Because the ForUpdateTS is used for the snapshot for reading data in DML. // We can avoid allocating a global TSO here to speed it up by using the local TSO. version, err := sctx.GetStore().CurrentVersion(sctx.GetSessionVars().TxnCtx.TxnScope) diff --git a/sessiontxn/isolation/repeatable_read_test.go b/sessiontxn/isolation/repeatable_read_test.go index f8fc70fe8315a..fa8d988bb96c6 100644 --- a/sessiontxn/isolation/repeatable_read_test.go +++ b/sessiontxn/isolation/repeatable_read_test.go @@ -49,6 +49,7 @@ func TestPessimisticRRErrorHandle(t *testing.T) { store, _, clean := testkit.CreateMockStoreAndDomain(t) defer clean() tk := testkit.NewTestKit(t, store) + defer tk.MustExec("rollback") se := tk.Session() provider := initializeRepeatableReadProvider(t, tk, true) @@ -139,6 +140,7 @@ func TestRepeatableReadProviderTS(t *testing.T) { store, _, clean := testkit.CreateMockStoreAndDomain(t) defer clean() tk := testkit.NewTestKit(t, store) + defer tk.MustExec("rollback") se := tk.Session() provider := initializeRepeatableReadProvider(t, tk, true) @@ -198,6 +200,7 @@ func TestRepeatableReadProviderInitialize(t *testing.T) { defer clearScopeSettings() tk := testkit.NewTestKit(t, store) + defer tk.MustExec("rollback") se := tk.Session() tk.MustExec("set @@tx_isolation = 'REPEATABLE-READ'") tk.MustExec("set @@tidb_txn_mode='pessimistic'") @@ -260,6 +263,7 @@ func TestTidbSnapshotVarInPessimisticRepeatableRead(t *testing.T) { defer clean() tk := testkit.NewTestKit(t, store) + defer tk.MustExec("rollback") se := tk.Session() tk.MustExec("set @@tx_isolation = 'REPEATABLE-READ'") safePoint := "20160102-15:04:05 -0700" @@ -477,6 +481,7 @@ func TestConflictErrorInInsertInRR(t *testing.T) { defer clean() tk := testkit.NewTestKit(t, store) + defer tk.MustExec("rollback") se := tk.Session() tk2 := testkit.NewTestKit(t, store) @@ -506,8 +511,10 @@ func TestConflictErrorInPointGetForUpdateInRR(t *testing.T) { defer clean() tk := testkit.NewTestKit(t, store) + defer tk.MustExec("rollback") se := tk.Session() tk2 := testkit.NewTestKit(t, store) + defer tk2.MustExec("rollback") tk.MustExec("use test") tk2.MustExec("use test") @@ -544,8 +551,10 @@ func TestConflictErrorInDeleteInRR(t *testing.T) { defer clean() tk := testkit.NewTestKit(t, store) + defer tk.MustExec("rollback") se := tk.Session() tk2 := testkit.NewTestKit(t, store) + defer tk2.MustExec("rollback") tk.MustExec("use test") tk2.MustExec("use test") @@ -582,8 +591,10 @@ func TestConflictErrorInUpdateInRR(t *testing.T) { defer clean() tk := testkit.NewTestKit(t, store) + defer tk.MustExec("rollback") se := tk.Session() tk2 := testkit.NewTestKit(t, store) + defer tk2.MustExec("rollback") tk.MustExec("use test") tk2.MustExec("use test") @@ -618,8 +629,10 @@ func TestConflictErrorInOtherQueryContainingPointGet(t *testing.T) { defer clean() tk := testkit.NewTestKit(t, store) + defer tk.MustExec("rollback") se := tk.Session() tk2 := testkit.NewTestKit(t, store) + defer tk2.MustExec("rollback") tk.MustExec("use test") tk2.MustExec("use test") diff --git a/sessiontxn/isolation/serializable_test.go b/sessiontxn/isolation/serializable_test.go index 90034e0934278..e16afd66ae868 100644 --- a/sessiontxn/isolation/serializable_test.go +++ b/sessiontxn/isolation/serializable_test.go @@ -42,6 +42,7 @@ func TestPessimisticSerializableTxnProviderTS(t *testing.T) { defer clean() tk := testkit.NewTestKit(t, store) + defer tk.MustExec("rollback") se := tk.Session() provider := initializePessimisticSerializableProvider(t, tk) @@ -75,6 +76,7 @@ func TestPessimisticSerializableTxnContextProviderLockError(t *testing.T) { defer clean() tk := testkit.NewTestKit(t, store) + defer tk.MustExec("rollback") se := tk.Session() provider := initializePessimisticSerializableProvider(t, tk) @@ -116,6 +118,7 @@ func TestSerializableInitialize(t *testing.T) { defer clearScopeSettings() tk := testkit.NewTestKit(t, store) + defer tk.MustExec("rollback") se := tk.Session() tk.MustExec("set tidb_skip_isolation_level_check = 1") tk.MustExec("set @@tx_isolation = 'SERIALIZABLE'") @@ -179,6 +182,7 @@ func TestTidbSnapshotVarInSerialize(t *testing.T) { defer clean() tk := testkit.NewTestKit(t, store) + defer tk.MustExec("rollback") se := tk.Session() tk.MustExec("set tidb_skip_isolation_level_check = 1") tk.MustExec("set @@tx_isolation = 'SERIALIZABLE'") diff --git a/sessiontxn/staleread/BUILD.bazel b/sessiontxn/staleread/BUILD.bazel index 117623298d563..3abda2a54c341 100644 --- a/sessiontxn/staleread/BUILD.bazel +++ b/sessiontxn/staleread/BUILD.bazel @@ -39,6 +39,7 @@ go_test( "processor_test.go", "provider_test.go", ], + flaky = True, deps = [ ":staleread", "//domain", diff --git a/sessiontxn/txn_context_test.go b/sessiontxn/txn_context_test.go index 75a3b72f1ac38..ed41496ee2596 100644 --- a/sessiontxn/txn_context_test.go +++ b/sessiontxn/txn_context_test.go @@ -31,6 +31,7 @@ import ( "github.com/pingcap/tidb/testkit" "github.com/pingcap/tidb/testkit/testfork" "github.com/pingcap/tidb/testkit/testsetup" + "github.com/pingcap/tidb/types" "github.com/stretchr/testify/require" "go.uber.org/goleak" ) @@ -882,3 +883,98 @@ func TestOptimisticTxnRetryInPessimisticMode(t *testing.T) { } }) } + +func TestTSOCmdCountForPrepareExecute(t *testing.T) { + // This is a mock workload mocks one which discovers that the tso request count is abnormal. + // After the bug fix, the tso request count recovers, so we use this workload to record the current tso request count + // to reject future works that accidentally causes tso request increasing. + // Note, we do not record all tso requests but some typical requests. + require.NoError(t, failpoint.Enable("github.com/pingcap/tidb/sessiontxn/isolation/requestTsoFromPD", "return")) + defer func() { + require.NoError(t, failpoint.Disable("github.com/pingcap/tidb/sessiontxn/isolation/requestTsoFromPD")) + }() + store, clean := testkit.CreateMockStore(t) + defer clean() + + ctx := context.Background() + tk := testkit.NewTestKit(t, store) + sctx := tk.Session() + + tk.MustExec("use test") + tk.MustExec("drop table if exists t1") + tk.MustExec("drop table if exists t2") + tk.MustExec("drop table if exists t3") + + tk.MustExec("create table t1(id int, v int, v2 int, primary key (id), unique key uk (v))") + tk.MustExec("create table t2(id int, v int, unique key i1(v))") + tk.MustExec("create table t3(id int, v int, key i1(v))") + + sqlSelectID, _, _, _ := tk.Session().PrepareStmt("select * from t1 where id = ? for update") + sqlUpdateID, _, _, _ := tk.Session().PrepareStmt("update t1 set v = v + 10 where id = ?") + sqlInsertID1, _, _, _ := tk.Session().PrepareStmt("insert into t2 values(?, ?)") + sqlInsertID2, _, _, _ := tk.Session().PrepareStmt("insert into t3 values(?, ?)") + + tk.MustExec("insert into t1 values (1, 1, 1)") + sctx.SetValue(sessiontxn.TsoRequestCount, 0) + + for i := 1; i < 100; i++ { + tk.MustExec("begin pessimistic") + stmt, err := tk.Session().ExecutePreparedStmt(ctx, sqlSelectID, []types.Datum{types.NewDatum(1)}) + require.NoError(t, err) + require.NoError(t, stmt.Close()) + stmt, err = tk.Session().ExecutePreparedStmt(ctx, sqlUpdateID, []types.Datum{types.NewDatum(1)}) + require.NoError(t, err) + require.Nil(t, stmt) + + val := i * 10 + stmt, err = tk.Session().ExecutePreparedStmt(ctx, sqlInsertID1, []types.Datum{types.NewDatum(val), types.NewDatum(val)}) + require.NoError(t, err) + require.Nil(t, stmt) + stmt, err = tk.Session().ExecutePreparedStmt(ctx, sqlInsertID2, []types.Datum{types.NewDatum(val), types.NewDatum(val)}) + require.NoError(t, err) + require.Nil(t, stmt) + tk.MustExec("commit") + } + count := sctx.Value(sessiontxn.TsoRequestCount) + require.Equal(t, uint64(99), count) + +} + +func TestTSOCmdCountForTextSql(t *testing.T) { + // This is a mock workload mocks one which discovers that the tso request count is abnormal. + // After the bug fix, the tso request count recovers, so we use this workload to record the current tso request count + // to reject future works that accidentally causes tso request increasing. + // Note, we do not record all tso requests but some typical requests. + require.NoError(t, failpoint.Enable("github.com/pingcap/tidb/sessiontxn/isolation/requestTsoFromPD", "return")) + defer func() { + require.NoError(t, failpoint.Disable("github.com/pingcap/tidb/sessiontxn/isolation/requestTsoFromPD")) + }() + store, clean := testkit.CreateMockStore(t) + defer clean() + + tk := testkit.NewTestKit(t, store) + sctx := tk.Session() + + tk.MustExec("use test") + tk.MustExec("drop table if exists t1") + tk.MustExec("drop table if exists t2") + tk.MustExec("drop table if exists t3") + + tk.MustExec("create table t1(id int, v int, v2 int, primary key (id), unique key uk (v))") + tk.MustExec("create table t2(id int, v int, unique key i1(v))") + tk.MustExec("create table t3(id int, v int, key i1(v))") + + tk.MustExec("insert into t1 values (1, 1, 1)") + sctx.SetValue(sessiontxn.TsoRequestCount, 0) + for i := 1; i < 100; i++ { + tk.MustExec("begin pessimistic") + tk.MustQuery("select * from t1 where id = 1 for update") + tk.MustExec("update t1 set v = v + 10 where id = 1") + val := i * 10 + tk.MustExec(fmt.Sprintf("insert into t2 values(%v, %v)", val, val)) + tk.MustExec(fmt.Sprintf("insert into t3 values(%v, %v)", val, val)) + tk.MustExec("commit") + } + count := sctx.Value(sessiontxn.TsoRequestCount) + require.Equal(t, uint64(99), count) +} diff --git a/statistics/BUILD.bazel b/statistics/BUILD.bazel index d32669654aa47..3504e34ef4ff7 100644 --- a/statistics/BUILD.bazel +++ b/statistics/BUILD.bazel @@ -7,10 +7,12 @@ go_library( "analyze_jobs.go", "builder.go", "cmsketch.go", + "column.go", "estimate.go", "feedback.go", "fmsketch.go", "histogram.go", + "index.go", "row_sampler.go", "sample.go", "scalar.go", @@ -75,10 +77,12 @@ go_test( ], data = glob(["testdata/**"]), embed = [":statistics"], + flaky = True, deps = [ "//config", "//domain", "//infoschema", + "//kv", "//parser", "//parser/ast", "//parser/model", diff --git a/statistics/builder.go b/statistics/builder.go index fee2f55e0860d..1cc821de0b962 100644 --- a/statistics/builder.go +++ b/statistics/builder.go @@ -24,6 +24,7 @@ import ( "github.com/pingcap/tidb/types" "github.com/pingcap/tidb/util/codec" "github.com/pingcap/tidb/util/collate" + "github.com/pingcap/tidb/util/memory" ) // SortedBuilder is used to build histograms for PK and index. @@ -130,7 +131,7 @@ func BuildColumnHist(ctx sessionctx.Context, numBuckets, id int64, collector *Sa } hg := NewHistogram(id, ndv, nullCount, 0, tp, int(numBuckets), collector.TotalSize) - corrXYSum, err := buildHist(sc, hg, samples, count, ndv, numBuckets) + corrXYSum, err := buildHist(sc, hg, samples, count, ndv, numBuckets, nil) if err != nil { return nil, err } @@ -140,7 +141,7 @@ func BuildColumnHist(ctx sessionctx.Context, numBuckets, id int64, collector *Sa // buildHist builds histogram from samples and other information. // It stores the built histogram in hg and return corrXYSum used for calculating the correlation. -func buildHist(sc *stmtctx.StatementContext, hg *Histogram, samples []*SampleItem, count, ndv, numBuckets int64) (corrXYSum float64, err error) { +func buildHist(sc *stmtctx.StatementContext, hg *Histogram, samples []*SampleItem, count, ndv, numBuckets int64, memTracker *memory.Tracker) (corrXYSum float64, err error) { sampleNum := int64(len(samples)) // As we use samples to build the histogram, the bucket number and repeat should multiply a factor. sampleFactor := float64(count) / float64(sampleNum) @@ -157,9 +158,24 @@ func buildHist(sc *stmtctx.StatementContext, hg *Histogram, samples []*SampleIte var lastCount int64 corrXYSum = float64(0) hg.AppendBucket(&samples[0].Value, &samples[0].Value, int64(sampleFactor), int64(ndvFactor)) + bufferedMemSize := int64(0) + bufferedReleaseSize := int64(0) + defer func() { + if memTracker != nil { + memTracker.Consume(bufferedMemSize) + memTracker.Release(bufferedReleaseSize) + } + }() for i := int64(1); i < sampleNum; i++ { corrXYSum += float64(i) * float64(samples[i].Ordinal) - cmp, err := hg.GetUpper(bucketIdx).Compare(sc, &samples[i].Value, collate.GetBinaryCollator()) + upper := hg.GetUpper(bucketIdx) + if memTracker != nil { + // tmp memory usage + deltaSize := upper.MemUsage() + memTracker.BufferedConsume(&bufferedMemSize, deltaSize) + memTracker.BufferedRelease(&bufferedReleaseSize, deltaSize) + } + cmp, err := upper.Compare(sc, &samples[i].Value, collate.GetBinaryCollator()) if err != nil { return 0, errors.Trace(err) } @@ -221,11 +237,27 @@ func BuildHistAndTopN( collector *SampleCollector, tp *types.FieldType, isColumn bool, + memTracker *memory.Tracker, ) (*Histogram, *TopN, error) { + bufferedMemSize := int64(0) + bufferedReleaseSize := int64(0) + defer func() { + if memTracker != nil { + memTracker.Consume(bufferedMemSize) + memTracker.Release(bufferedReleaseSize) + } + }() var getComparedBytes func(datum types.Datum) ([]byte, error) if isColumn { getComparedBytes = func(datum types.Datum) ([]byte, error) { - return codec.EncodeKey(ctx.GetSessionVars().StmtCtx, nil, datum) + encoded, err := codec.EncodeKey(ctx.GetSessionVars().StmtCtx, nil, datum) + if memTracker != nil { + // tmp memory usage + deltaSize := int64(cap(encoded)) + memTracker.BufferedConsume(&bufferedMemSize, deltaSize) + memTracker.BufferedRelease(&bufferedReleaseSize, deltaSize) + } + return encoded, err } } else { getComparedBytes = func(datum types.Datum) ([]byte, error) { @@ -363,7 +395,7 @@ func BuildHistAndTopN( // Step3: build histogram with the rest samples if len(samples) > 0 { - _, err = buildHist(sc, hg, samples, count-int64(topn.TotalCount()), ndv-int64(len(topn.TopN)), int64(numBuckets)) + _, err = buildHist(sc, hg, samples, count-int64(topn.TotalCount()), ndv-int64(len(topn.TopN)), int64(numBuckets), memTracker) if err != nil { return nil, nil, err } diff --git a/statistics/column.go b/statistics/column.go new file mode 100644 index 0000000000000..252639576bb8d --- /dev/null +++ b/statistics/column.go @@ -0,0 +1,451 @@ +// Copyright 2022 PingCAP, Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package statistics + +import ( + "math" + "strconv" + + "github.com/pingcap/errors" + "github.com/pingcap/tidb/parser/model" + "github.com/pingcap/tidb/parser/mysql" + "github.com/pingcap/tidb/sessionctx" + "github.com/pingcap/tidb/types" + "github.com/pingcap/tidb/util/chunk" + "github.com/pingcap/tidb/util/codec" + "github.com/pingcap/tidb/util/collate" + "github.com/pingcap/tidb/util/logutil" + "github.com/pingcap/tidb/util/mathutil" + "github.com/pingcap/tidb/util/ranger" + "go.uber.org/zap" +) + +// Column represents a column histogram. +type Column struct { + Histogram + CMSketch *CMSketch + TopN *TopN + FMSketch *FMSketch + PhysicalID int64 + Count int64 + Info *model.ColumnInfo + IsHandle bool + ErrorRate + Flag int64 + LastAnalyzePos types.Datum + StatsVer int64 // StatsVer is the version of the current stats, used to maintain compatibility + + // StatsLoadedStatus indicates the status of column statistics + StatsLoadedStatus +} + +func (c *Column) String() string { + return c.Histogram.ToString(0) +} + +// TotalRowCount returns the total count of this column. +func (c *Column) TotalRowCount() float64 { + if c.StatsVer >= Version2 { + return c.Histogram.TotalRowCount() + float64(c.TopN.TotalCount()) + } + return c.Histogram.TotalRowCount() +} + +func (c *Column) notNullCount() float64 { + if c.StatsVer >= Version2 { + return c.Histogram.notNullCount() + float64(c.TopN.TotalCount()) + } + return c.Histogram.notNullCount() +} + +// GetIncreaseFactor get the increase factor to adjust the final estimated count when the table is modified. +func (c *Column) GetIncreaseFactor(realtimeRowCount int64) float64 { + columnCount := c.TotalRowCount() + if columnCount == 0 { + // avoid dividing by 0 + return 1.0 + } + return float64(realtimeRowCount) / columnCount +} + +// MemoryUsage returns the total memory usage of Histogram, CMSketch, FMSketch in Column. +// We ignore the size of other metadata in Column +func (c *Column) MemoryUsage() CacheItemMemoryUsage { + var sum int64 + columnMemUsage := &ColumnMemUsage{ + ColumnID: c.Info.ID, + } + histogramMemUsage := c.Histogram.MemoryUsage() + columnMemUsage.HistogramMemUsage = histogramMemUsage + sum = histogramMemUsage + if c.CMSketch != nil { + cmSketchMemUsage := c.CMSketch.MemoryUsage() + columnMemUsage.CMSketchMemUsage = cmSketchMemUsage + sum += cmSketchMemUsage + } + if c.TopN != nil { + topnMemUsage := c.TopN.MemoryUsage() + columnMemUsage.TopNMemUsage = topnMemUsage + sum += topnMemUsage + } + if c.FMSketch != nil { + fmSketchMemUsage := c.FMSketch.MemoryUsage() + columnMemUsage.FMSketchMemUsage = fmSketchMemUsage + sum += fmSketchMemUsage + } + columnMemUsage.TotalMemUsage = sum + return columnMemUsage +} + +// HistogramNeededItems stores the columns/indices whose Histograms need to be loaded from physical kv layer. +// Currently, we only load index/pk's Histogram from kv automatically. Columns' are loaded by needs. +var HistogramNeededItems = neededStatsMap{items: map[model.TableItemID]struct{}{}} + +// IsInvalid checks if this column is invalid. If this column has histogram but not loaded yet, then we mark it +// as need histogram. +func (c *Column) IsInvalid(sctx sessionctx.Context, collPseudo bool) bool { + if collPseudo && c.NotAccurate() { + return true + } + if sctx != nil { + stmtctx := sctx.GetSessionVars().StmtCtx + if stmtctx != nil && stmtctx.StatsLoad.Fallback { + return true + } + if c.IsLoadNeeded() && stmtctx != nil { + if stmtctx.StatsLoad.Timeout > 0 { + logutil.BgLogger().Warn("Hist for column should already be loaded as sync but not found.", + zap.String(strconv.FormatInt(c.Info.ID, 10), c.Info.Name.O)) + } + // In some tests, the c.Info is not set, so we add this check here. + if c.Info != nil { + HistogramNeededItems.insert(model.TableItemID{TableID: c.PhysicalID, ID: c.Info.ID, IsIndex: false}) + } + } + } + // In some cases, some statistics in column would be evicted + // For example: the cmsketch of the column might be evicted while the histogram and the topn are still exists + // In this case, we will think this column as valid due to we can still use the rest of the statistics to do optimize. + return c.TotalRowCount() == 0 || (!c.IsEssentialStatsLoaded() && c.Histogram.NDV > 0) +} + +// IsHistNeeded checks if this column needs histogram to be loaded +func (c *Column) IsHistNeeded(collPseudo bool) bool { + return (!collPseudo || !c.NotAccurate()) && c.IsLoadNeeded() +} + +func (c *Column) equalRowCount(sctx sessionctx.Context, val types.Datum, encodedVal []byte, realtimeRowCount int64) (float64, error) { + if val.IsNull() { + return float64(c.NullCount), nil + } + if c.StatsVer < Version2 { + // All the values are null. + if c.Histogram.Bounds.NumRows() == 0 { + return 0.0, nil + } + if c.Histogram.NDV > 0 && c.outOfRange(val) { + return outOfRangeEQSelectivity(c.Histogram.NDV, realtimeRowCount, int64(c.TotalRowCount())) * c.TotalRowCount(), nil + } + if c.CMSketch != nil { + count, err := queryValue(sctx.GetSessionVars().StmtCtx, c.CMSketch, c.TopN, val) + return float64(count), errors.Trace(err) + } + histRowCount, _ := c.Histogram.equalRowCount(val, false) + return histRowCount, nil + } + + // Stats version == 2 + // All the values are null. + if c.Histogram.Bounds.NumRows() == 0 && c.TopN.Num() == 0 { + return 0, nil + } + // 1. try to find this value in TopN + if c.TopN != nil { + rowcount, ok := c.TopN.QueryTopN(encodedVal) + if ok { + return float64(rowcount), nil + } + } + // 2. try to find this value in bucket.Repeat(the last value in every bucket) + histCnt, matched := c.Histogram.equalRowCount(val, true) + if matched { + return histCnt, nil + } + // 3. use uniform distribution assumption for the rest (even when this value is not covered by the range of stats) + histNDV := float64(c.Histogram.NDV - int64(c.TopN.Num())) + if histNDV <= 0 { + return 0, nil + } + return c.Histogram.notNullCount() / histNDV, nil +} + +// GetColumnRowCount estimates the row count by a slice of Range. +func (c *Column) GetColumnRowCount(sctx sessionctx.Context, ranges []*ranger.Range, realtimeRowCount int64, pkIsHandle bool) (float64, error) { + sc := sctx.GetSessionVars().StmtCtx + var rowCount float64 + for _, rg := range ranges { + highVal := *rg.HighVal[0].Clone() + lowVal := *rg.LowVal[0].Clone() + if highVal.Kind() == types.KindString { + highVal.SetBytes(collate.GetCollator(highVal.Collation()).Key(highVal.GetString())) + } + if lowVal.Kind() == types.KindString { + lowVal.SetBytes(collate.GetCollator(lowVal.Collation()).Key(lowVal.GetString())) + } + cmp, err := lowVal.Compare(sc, &highVal, collate.GetBinaryCollator()) + if err != nil { + return 0, errors.Trace(err) + } + lowEncoded, err := codec.EncodeKey(sc, nil, lowVal) + if err != nil { + return 0, err + } + highEncoded, err := codec.EncodeKey(sc, nil, highVal) + if err != nil { + return 0, err + } + if cmp == 0 { + // case 1: it's a point + if !rg.LowExclude && !rg.HighExclude { + // In this case, the row count is at most 1. + if pkIsHandle { + rowCount += 1 + continue + } + var cnt float64 + cnt, err = c.equalRowCount(sctx, lowVal, lowEncoded, realtimeRowCount) + if err != nil { + return 0, errors.Trace(err) + } + // If the current table row count has changed, we should scale the row count accordingly. + cnt *= c.GetIncreaseFactor(realtimeRowCount) + rowCount += cnt + } + continue + } + // In stats ver 1, we use CM Sketch to estimate row count for point condition, which is more accurate. + // So for the small range, we convert it to points. + if c.StatsVer < 2 { + rangeVals := enumRangeValues(lowVal, highVal, rg.LowExclude, rg.HighExclude) + + // case 2: it's a small range && using ver1 stats + if rangeVals != nil { + for _, val := range rangeVals { + cnt, err := c.equalRowCount(sctx, val, lowEncoded, realtimeRowCount) + if err != nil { + return 0, err + } + // If the current table row count has changed, we should scale the row count accordingly. + cnt *= c.GetIncreaseFactor(realtimeRowCount) + rowCount += cnt + } + + continue + } + } + + // case 3: it's an interval + cnt := c.BetweenRowCount(sctx, lowVal, highVal, lowEncoded, highEncoded) + // `betweenRowCount` returns count for [l, h) range, we adjust cnt for boundaries here. + // Note that, `cnt` does not include null values, we need specially handle cases + // where null is the lower bound. + // And because we use (2, MaxValue] to represent expressions like a > 2 and use [MinNotNull, 3) to represent + // expressions like b < 3, we need to exclude the special values. + if rg.LowExclude && !lowVal.IsNull() && lowVal.Kind() != types.KindMaxValue && lowVal.Kind() != types.KindMinNotNull { + lowCnt, err := c.equalRowCount(sctx, lowVal, lowEncoded, realtimeRowCount) + if err != nil { + return 0, errors.Trace(err) + } + cnt -= lowCnt + cnt = mathutil.Clamp(cnt, 0, c.notNullCount()) + } + if !rg.LowExclude && lowVal.IsNull() { + cnt += float64(c.NullCount) + } + if !rg.HighExclude && highVal.Kind() != types.KindMaxValue && highVal.Kind() != types.KindMinNotNull { + highCnt, err := c.equalRowCount(sctx, highVal, highEncoded, realtimeRowCount) + if err != nil { + return 0, errors.Trace(err) + } + cnt += highCnt + } + + cnt = mathutil.Clamp(cnt, 0, c.TotalRowCount()) + + // If the current table row count has changed, we should scale the row count accordingly. + cnt *= c.GetIncreaseFactor(realtimeRowCount) + + // handling the out-of-range part + if (c.outOfRange(lowVal) && !lowVal.IsNull()) || c.outOfRange(highVal) { + increaseCount := realtimeRowCount - int64(c.TotalRowCount()) + if increaseCount < 0 { + increaseCount = 0 + } + cnt += c.Histogram.outOfRangeRowCount(&lowVal, &highVal, increaseCount) + } + + rowCount += cnt + } + rowCount = mathutil.Clamp(rowCount, 0, float64(realtimeRowCount)) + return rowCount, nil +} + +// ItemID implements TableCacheItem +func (c *Column) ItemID() int64 { + return c.Info.ID +} + +// DropEvicted implements TableCacheItem +// DropEvicted drops evicted structures +func (c *Column) DropEvicted() { + if !c.statsInitialized { + return + } + switch c.evictedStatus { + case allLoaded: + if c.CMSketch != nil && c.StatsVer < Version2 { + c.dropCMS() + return + } + // For stats version2, there is no cms thus we directly drop topn + c.dropTopN() + return + case onlyCmsEvicted: + c.dropTopN() + return + default: + return + } +} + +func (c *Column) dropCMS() { + c.CMSketch = nil + c.evictedStatus = onlyCmsEvicted +} + +func (c *Column) dropTopN() { + originTopNNum := int64(c.TopN.Num()) + c.TopN = nil + if len(c.Histogram.Buckets) == 0 && originTopNNum >= c.Histogram.NDV { + // This indicates column has topn instead of histogram + c.evictedStatus = allEvicted + } else { + c.evictedStatus = onlyHistRemained + } +} + +// IsAllEvicted indicates whether all stats evicted +func (c *Column) IsAllEvicted() bool { + return c.statsInitialized && c.evictedStatus >= allEvicted +} + +func (c *Column) getEvictedStatus() int { + return c.evictedStatus +} + +func (c *Column) isStatsInitialized() bool { + return c.statsInitialized +} + +func (c *Column) statsVer() int64 { + return c.StatsVer +} + +func (c *Column) isCMSExist() bool { + return c.CMSketch != nil +} + +// AvgColSize is the average column size of the histogram. These sizes are derived from function `encode` +// and `Datum::ConvertTo`, so we need to update them if those 2 functions are changed. +func (c *Column) AvgColSize(count int64, isKey bool) float64 { + if count == 0 { + return 0 + } + // Note that, if the handle column is encoded as value, instead of key, i.e, + // when the handle column is in a unique index, the real column size may be + // smaller than 8 because it is encoded using `EncodeVarint`. Since we don't + // know the exact value size now, use 8 as approximation. + if c.IsHandle { + return 8 + } + histCount := c.TotalRowCount() + notNullRatio := 1.0 + if histCount > 0 { + notNullRatio = 1.0 - float64(c.NullCount)/histCount + } + switch c.Histogram.Tp.GetType() { + case mysql.TypeFloat, mysql.TypeDouble, mysql.TypeDuration, mysql.TypeDate, mysql.TypeDatetime, mysql.TypeTimestamp: + return 8 * notNullRatio + case mysql.TypeTiny, mysql.TypeShort, mysql.TypeInt24, mysql.TypeLong, mysql.TypeLonglong, mysql.TypeYear, mysql.TypeEnum, mysql.TypeBit, mysql.TypeSet: + if isKey { + return 8 * notNullRatio + } + } + // Keep two decimal place. + return math.Round(float64(c.TotColSize)/float64(count)*100) / 100 +} + +// AvgColSizeChunkFormat is the average column size of the histogram. These sizes are derived from function `Encode` +// and `DecodeToChunk`, so we need to update them if those 2 functions are changed. +func (c *Column) AvgColSizeChunkFormat(count int64) float64 { + if count == 0 { + return 0 + } + fixedLen := chunk.GetFixedLen(c.Histogram.Tp) + if fixedLen != -1 { + return float64(fixedLen) + } + // Keep two decimal place. + // Add 8 bytes for unfixed-len type's offsets. + // Minus Log2(avgSize) for unfixed-len type LEN. + avgSize := float64(c.TotColSize) / float64(count) + if avgSize < 1 { + return math.Round(avgSize*100)/100 + 8 + } + return math.Round((avgSize-math.Log2(avgSize))*100)/100 + 8 +} + +// AvgColSizeListInDisk is the average column size of the histogram. These sizes are derived +// from `chunk.ListInDisk` so we need to update them if those 2 functions are changed. +func (c *Column) AvgColSizeListInDisk(count int64) float64 { + if count == 0 { + return 0 + } + histCount := c.TotalRowCount() + notNullRatio := 1.0 + if histCount > 0 { + notNullRatio = 1.0 - float64(c.NullCount)/histCount + } + size := chunk.GetFixedLen(c.Histogram.Tp) + if size != -1 { + return float64(size) * notNullRatio + } + // Keep two decimal place. + // Minus Log2(avgSize) for unfixed-len type LEN. + avgSize := float64(c.TotColSize) / float64(count) + if avgSize < 1 { + return math.Round((avgSize)*100) / 100 + } + return math.Round((avgSize-math.Log2(avgSize))*100) / 100 +} + +// BetweenRowCount estimates the row count for interval [l, r). +func (c *Column) BetweenRowCount(sctx sessionctx.Context, l, r types.Datum, lowEncoded, highEncoded []byte) float64 { + histBetweenCnt := c.Histogram.BetweenRowCount(l, r) + if c.StatsVer <= Version1 { + return histBetweenCnt + } + return float64(c.TopN.BetweenCount(lowEncoded, highEncoded)) + histBetweenCnt +} diff --git a/statistics/handle/handle.go b/statistics/handle/handle.go index 11f9be0814f93..edad1783a5e0d 100644 --- a/statistics/handle/handle.go +++ b/statistics/handle/handle.go @@ -134,11 +134,12 @@ func (h *Handle) execRestrictedSQL(ctx context.Context, sql string, params ...in }) } -func (h *Handle) execRestrictedSQLWithStatsVer(ctx context.Context, statsVer int, procTrackID uint64, sql string, params ...interface{}) ([]chunk.Row, []*ast.ResultField, error) { +func (h *Handle) execRestrictedSQLWithStatsVer(ctx context.Context, statsVer int, procTrackID uint64, analyzeSnapshot bool, sql string, params ...interface{}) ([]chunk.Row, []*ast.ResultField, error) { ctx = kv.WithInternalSourceType(ctx, kv.InternalTxnStats) return h.withRestrictedSQLExecutor(ctx, func(ctx context.Context, exec sqlexec.RestrictedSQLExecutor) ([]chunk.Row, []*ast.ResultField, error) { optFuncs := []sqlexec.OptionFuncAlias{ execOptionForAnalyze[statsVer], + sqlexec.GetAnalyzeSnapshotOption(analyzeSnapshot), sqlexec.GetPartitionPruneModeOption(string(h.CurrentPruneMode())), sqlexec.ExecOptionUseCurSession, sqlexec.ExecOptionWithSysProcTrack(procTrackID, h.sysProcTracker.Track, h.sysProcTracker.UnTrack), diff --git a/statistics/handle/handle_test.go b/statistics/handle/handle_test.go index fa5e26d589bcc..d580dbaac6105 100644 --- a/statistics/handle/handle_test.go +++ b/statistics/handle/handle_test.go @@ -3233,56 +3233,75 @@ func TestColumnCountFromStorage(t *testing.T) { } func TestIncrementalModifyCountUpdate(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() - tk := testkit.NewTestKit(t, store) - tk.MustExec("use test") - tk.MustExec("create table t(a int)") - tk.MustExec("set @@session.tidb_analyze_version = 2") - h := dom.StatsHandle() - err := h.HandleDDLEvent(<-h.DDLEventCh()) - require.NoError(t, err) - tbl, err := dom.InfoSchema().TableByName(model.NewCIStr("test"), model.NewCIStr("t")) - require.NoError(t, err) - tblInfo := tbl.Meta() - tid := tblInfo.ID + for _, analyzeSnapshot := range []bool{true, false} { + store, dom, clean := testkit.CreateMockStoreAndDomain(t) + defer clean() + tk := testkit.NewTestKit(t, store) + tk.MustExec("use test") + if analyzeSnapshot { + tk.MustExec("set @@session.tidb_enable_analyze_snapshot = on") + } else { + tk.MustExec("set @@session.tidb_enable_analyze_snapshot = off") + } + tk.MustExec("create table t(a int)") + tk.MustExec("set @@session.tidb_analyze_version = 2") + h := dom.StatsHandle() + err := h.HandleDDLEvent(<-h.DDLEventCh()) + require.NoError(t, err) + tbl, err := dom.InfoSchema().TableByName(model.NewCIStr("test"), model.NewCIStr("t")) + require.NoError(t, err) + tblInfo := tbl.Meta() + tid := tblInfo.ID - tk.MustExec("insert into t values(1),(2),(3)") - require.NoError(t, h.DumpStatsDeltaToKV(handle.DumpAll)) - err = h.Update(dom.InfoSchema()) - require.NoError(t, err) - tk.MustExec("analyze table t") - tk.MustQuery(fmt.Sprintf("select count, modify_count from mysql.stats_meta where table_id = %d", tid)).Check(testkit.Rows( - "3 0", - )) + tk.MustExec("insert into t values(1),(2),(3)") + require.NoError(t, h.DumpStatsDeltaToKV(handle.DumpAll)) + err = h.Update(dom.InfoSchema()) + require.NoError(t, err) + tk.MustExec("analyze table t") + tk.MustQuery(fmt.Sprintf("select count, modify_count from mysql.stats_meta where table_id = %d", tid)).Check(testkit.Rows( + "3 0", + )) - tk.MustExec("begin") - txn, err := tk.Session().Txn(false) - require.NoError(t, err) - startTS := txn.StartTS() - tk.MustExec("commit") + tk.MustExec("begin") + txn, err := tk.Session().Txn(false) + require.NoError(t, err) + startTS := txn.StartTS() + tk.MustExec("commit") - tk.MustExec("insert into t values(4),(5),(6)") - require.NoError(t, h.DumpStatsDeltaToKV(handle.DumpAll)) - err = h.Update(dom.InfoSchema()) - require.NoError(t, err) + tk.MustExec("insert into t values(4),(5),(6)") + require.NoError(t, h.DumpStatsDeltaToKV(handle.DumpAll)) + err = h.Update(dom.InfoSchema()) + require.NoError(t, err) - // Simulate that the analyze would start before and finish after the second insert. - require.NoError(t, failpoint.Enable("github.com/pingcap/tidb/executor/injectAnalyzeSnapshot", fmt.Sprintf("return(%d)", startTS))) - require.NoError(t, failpoint.Enable("github.com/pingcap/tidb/executor/injectBaseCount", "return(3)")) - require.NoError(t, failpoint.Enable("github.com/pingcap/tidb/executor/injectBaseModifyCount", "return(0)")) - tk.MustExec("analyze table t") - // Check the count / modify_count changes during the analyze are not lost. - tk.MustQuery(fmt.Sprintf("select count, modify_count from mysql.stats_meta where table_id = %d", tid)).Check(testkit.Rows( - "6 3", - )) - // Check the histogram is correct for the snapshot analyze. - tk.MustQuery(fmt.Sprintf("select distinct_count from mysql.stats_histograms where table_id = %d", tid)).Check(testkit.Rows( - "3", - )) - require.NoError(t, failpoint.Disable("github.com/pingcap/tidb/executor/injectAnalyzeSnapshot")) - require.NoError(t, failpoint.Disable("github.com/pingcap/tidb/executor/injectBaseCount")) - require.NoError(t, failpoint.Disable("github.com/pingcap/tidb/executor/injectBaseModifyCount")) + // Simulate that the analyze would start before and finish after the second insert. + require.NoError(t, failpoint.Enable("github.com/pingcap/tidb/executor/injectAnalyzeSnapshot", fmt.Sprintf("return(%d)", startTS))) + require.NoError(t, failpoint.Enable("github.com/pingcap/tidb/executor/injectBaseCount", "return(3)")) + require.NoError(t, failpoint.Enable("github.com/pingcap/tidb/executor/injectBaseModifyCount", "return(0)")) + tk.MustExec("analyze table t") + if analyzeSnapshot { + // Check the count / modify_count changes during the analyze are not lost. + tk.MustQuery(fmt.Sprintf("select count, modify_count from mysql.stats_meta where table_id = %d", tid)).Check(testkit.Rows( + "6 3", + )) + // Check the histogram is correct for the snapshot analyze. + tk.MustQuery(fmt.Sprintf("select distinct_count from mysql.stats_histograms where table_id = %d", tid)).Check(testkit.Rows( + "3", + )) + } else { + // Since analyze use max ts to read data, count and modify_count are overestimated here. Analyze finds the row count is 6 + // and the increment of count and modify_count is +3, +3. Hence, we see count is 9 and modify_count is 3. + tk.MustQuery(fmt.Sprintf("select count, modify_count from mysql.stats_meta where table_id = %d", tid)).Check(testkit.Rows( + "9 3", + )) + // Check the histogram is collected from the latest data rather than the snapshot at startTS. + tk.MustQuery(fmt.Sprintf("select distinct_count from mysql.stats_histograms where table_id = %d", tid)).Check(testkit.Rows( + "6", + )) + } + require.NoError(t, failpoint.Disable("github.com/pingcap/tidb/executor/injectAnalyzeSnapshot")) + require.NoError(t, failpoint.Disable("github.com/pingcap/tidb/executor/injectBaseCount")) + require.NoError(t, failpoint.Disable("github.com/pingcap/tidb/executor/injectBaseModifyCount")) + } } func TestRecordHistoricalStatsToStorage(t *testing.T) { diff --git a/statistics/handle/update.go b/statistics/handle/update.go index c366ef7ef224e..f347e8a0e46d4 100644 --- a/statistics/handle/update.go +++ b/statistics/handle/update.go @@ -1034,6 +1034,16 @@ func parseAnalyzePeriod(start, end string) (time.Time, time.Time, error) { return s, e, err } +func (h *Handle) getAnalyzeSnapshot() (bool, error) { + h.mu.Lock() + defer h.mu.Unlock() + analyzeSnapshot, err := h.mu.ctx.GetSessionVars().GlobalVarsAccessor.GetGlobalSysVar(variable.TiDBEnableAnalyzeSnapshot) + if err != nil { + return false, err + } + return variable.TiDBOptOn(analyzeSnapshot), nil +} + // HandleAutoAnalyze analyzes the newly created table or index. func (h *Handle) HandleAutoAnalyze(is infoschema.InfoSchema) (analyzed bool) { err := h.UpdateSessionVar() @@ -1053,6 +1063,11 @@ func (h *Handle) HandleAutoAnalyze(is infoschema.InfoSchema) (analyzed bool) { return false } pruneMode := h.CurrentPruneMode() + analyzeSnapshot, err := h.getAnalyzeSnapshot() + if err != nil { + logutil.BgLogger().Error("[stats] load tidb_enable_analyze_snapshot for auto analyze session failed", zap.Error(err)) + return false + } rd := rand.New(rand.NewSource(time.Now().UnixNano())) // #nosec G404 rd.Shuffle(len(dbs), func(i, j int) { dbs[i], dbs[j] = dbs[j], dbs[i] @@ -1078,7 +1093,7 @@ func (h *Handle) HandleAutoAnalyze(is infoschema.InfoSchema) (analyzed bool) { if pi == nil { statsTbl := h.GetTableStats(tblInfo) sql := "analyze table %n.%n" - analyzed := h.autoAnalyzeTable(tblInfo, statsTbl, start, end, autoAnalyzeRatio, sql, db, tblInfo.Name.O) + analyzed := h.autoAnalyzeTable(tblInfo, statsTbl, autoAnalyzeRatio, analyzeSnapshot, sql, db, tblInfo.Name.O) if analyzed { // analyze one table at a time to let it get the freshest parameters. // others will be analyzed next round which is just 3s later. @@ -1087,7 +1102,7 @@ func (h *Handle) HandleAutoAnalyze(is infoschema.InfoSchema) (analyzed bool) { continue } if pruneMode == variable.Dynamic { - analyzed := h.autoAnalyzePartitionTable(tblInfo, pi, db, start, end, autoAnalyzeRatio) + analyzed := h.autoAnalyzePartitionTable(tblInfo, pi, db, autoAnalyzeRatio, analyzeSnapshot) if analyzed { return true } @@ -1096,7 +1111,7 @@ func (h *Handle) HandleAutoAnalyze(is infoschema.InfoSchema) (analyzed bool) { for _, def := range pi.Definitions { sql := "analyze table %n.%n partition %n" statsTbl := h.GetPartitionStats(tblInfo, def.ID) - analyzed := h.autoAnalyzeTable(tblInfo, statsTbl, start, end, autoAnalyzeRatio, sql, db, tblInfo.Name.O, def.Name.O) + analyzed := h.autoAnalyzeTable(tblInfo, statsTbl, autoAnalyzeRatio, analyzeSnapshot, sql, db, tblInfo.Name.O, def.Name.O) if analyzed { return true } @@ -1106,7 +1121,7 @@ func (h *Handle) HandleAutoAnalyze(is infoschema.InfoSchema) (analyzed bool) { return false } -func (h *Handle) autoAnalyzeTable(tblInfo *model.TableInfo, statsTbl *statistics.Table, start, end time.Time, ratio float64, sql string, params ...interface{}) bool { +func (h *Handle) autoAnalyzeTable(tblInfo *model.TableInfo, statsTbl *statistics.Table, ratio float64, analyzeSnapshot bool, sql string, params ...interface{}) bool { if statsTbl.Pseudo || statsTbl.Count < AutoAnalyzeMinCnt { return false } @@ -1118,7 +1133,7 @@ func (h *Handle) autoAnalyzeTable(tblInfo *model.TableInfo, statsTbl *statistics logutil.BgLogger().Info("[stats] auto analyze triggered", zap.String("sql", escaped), zap.String("reason", reason)) tableStatsVer := h.mu.ctx.GetSessionVars().AnalyzeVersion statistics.CheckAnalyzeVerOnTable(statsTbl, &tableStatsVer) - h.execAutoAnalyze(tableStatsVer, sql, params...) + h.execAutoAnalyze(tableStatsVer, analyzeSnapshot, sql, params...) return true } for _, idx := range tblInfo.Indices { @@ -1132,14 +1147,14 @@ func (h *Handle) autoAnalyzeTable(tblInfo *model.TableInfo, statsTbl *statistics logutil.BgLogger().Info("[stats] auto analyze for unanalyzed", zap.String("sql", escaped)) tableStatsVer := h.mu.ctx.GetSessionVars().AnalyzeVersion statistics.CheckAnalyzeVerOnTable(statsTbl, &tableStatsVer) - h.execAutoAnalyze(tableStatsVer, sqlWithIdx, paramsWithIdx...) + h.execAutoAnalyze(tableStatsVer, analyzeSnapshot, sqlWithIdx, paramsWithIdx...) return true } } return false } -func (h *Handle) autoAnalyzePartitionTable(tblInfo *model.TableInfo, pi *model.PartitionInfo, db string, start, end time.Time, ratio float64) bool { +func (h *Handle) autoAnalyzePartitionTable(tblInfo *model.TableInfo, pi *model.PartitionInfo, db string, ratio float64, analyzeSnapshot bool) bool { h.mu.RLock() tableStatsVer := h.mu.ctx.GetSessionVars().AnalyzeVersion h.mu.RUnlock() @@ -1172,7 +1187,7 @@ func (h *Handle) autoAnalyzePartitionTable(tblInfo *model.TableInfo, pi *model.P params := append([]interface{}{db, tblInfo.Name.O}, partitionNames...) statsTbl := h.GetTableStats(tblInfo) statistics.CheckAnalyzeVerOnTable(statsTbl, &tableStatsVer) - h.execAutoAnalyze(tableStatsVer, sql, params...) + h.execAutoAnalyze(tableStatsVer, analyzeSnapshot, sql, params...) return true } for _, idx := range tblInfo.Indices { @@ -1193,7 +1208,7 @@ func (h *Handle) autoAnalyzePartitionTable(tblInfo *model.TableInfo, pi *model.P params = append(params, idx.Name.O) statsTbl := h.GetTableStats(tblInfo) statistics.CheckAnalyzeVerOnTable(statsTbl, &tableStatsVer) - h.execAutoAnalyze(tableStatsVer, sql, params...) + h.execAutoAnalyze(tableStatsVer, analyzeSnapshot, sql, params...) return true } } @@ -1206,9 +1221,10 @@ var execOptionForAnalyze = map[int]sqlexec.OptionFuncAlias{ statistics.Version2: sqlexec.ExecOptionAnalyzeVer2, } -func (h *Handle) execAutoAnalyze(statsVer int, sql string, params ...interface{}) { +func (h *Handle) execAutoAnalyze(statsVer int, analyzeSnapshot bool, sql string, params ...interface{}) { startTime := time.Now() - _, _, err := h.execRestrictedSQLWithStatsVer(context.Background(), statsVer, util.GetAutoAnalyzeProcID(h.serverIDGetter), sql, params...) + autoAnalyzeProcID := util.GetAutoAnalyzeProcID(h.serverIDGetter) + _, _, err := h.execRestrictedSQLWithStatsVer(context.Background(), statsVer, autoAnalyzeProcID, analyzeSnapshot, sql, params...) dur := time.Since(startTime) metrics.AutoAnalyzeHistogram.Observe(dur.Seconds()) if err != nil { diff --git a/statistics/histogram.go b/statistics/histogram.go index 46c83a8397cb4..df009166afacd 100644 --- a/statistics/histogram.go +++ b/statistics/histogram.go @@ -19,16 +19,13 @@ import ( "fmt" "math" "sort" - "strconv" "strings" "time" "unsafe" "github.com/pingcap/errors" - "github.com/pingcap/failpoint" "github.com/pingcap/tidb/kv" "github.com/pingcap/tidb/parser/charset" - "github.com/pingcap/tidb/parser/model" "github.com/pingcap/tidb/parser/mysql" "github.com/pingcap/tidb/parser/terror" "github.com/pingcap/tidb/sessionctx" @@ -40,7 +37,6 @@ import ( "github.com/pingcap/tidb/util/codec" "github.com/pingcap/tidb/util/collate" "github.com/pingcap/tidb/util/logutil" - "github.com/pingcap/tidb/util/mathutil" "github.com/pingcap/tidb/util/ranger" "github.com/pingcap/tipb/go-tipb" "github.com/twmb/murmur3" @@ -147,80 +143,6 @@ func (hg *Histogram) MemoryUsage() (sum int64) { return } -// AvgColSize is the average column size of the histogram. These sizes are derived from function `encode` -// and `Datum::ConvertTo`, so we need to update them if those 2 functions are changed. -func (c *Column) AvgColSize(count int64, isKey bool) float64 { - if count == 0 { - return 0 - } - // Note that, if the handle column is encoded as value, instead of key, i.e, - // when the handle column is in a unique index, the real column size may be - // smaller than 8 because it is encoded using `EncodeVarint`. Since we don't - // know the exact value size now, use 8 as approximation. - if c.IsHandle { - return 8 - } - histCount := c.TotalRowCount() - notNullRatio := 1.0 - if histCount > 0 { - notNullRatio = 1.0 - float64(c.NullCount)/histCount - } - switch c.Histogram.Tp.GetType() { - case mysql.TypeFloat, mysql.TypeDouble, mysql.TypeDuration, mysql.TypeDate, mysql.TypeDatetime, mysql.TypeTimestamp: - return 8 * notNullRatio - case mysql.TypeTiny, mysql.TypeShort, mysql.TypeInt24, mysql.TypeLong, mysql.TypeLonglong, mysql.TypeYear, mysql.TypeEnum, mysql.TypeBit, mysql.TypeSet: - if isKey { - return 8 * notNullRatio - } - } - // Keep two decimal place. - return math.Round(float64(c.TotColSize)/float64(count)*100) / 100 -} - -// AvgColSizeChunkFormat is the average column size of the histogram. These sizes are derived from function `Encode` -// and `DecodeToChunk`, so we need to update them if those 2 functions are changed. -func (c *Column) AvgColSizeChunkFormat(count int64) float64 { - if count == 0 { - return 0 - } - fixedLen := chunk.GetFixedLen(c.Histogram.Tp) - if fixedLen != -1 { - return float64(fixedLen) - } - // Keep two decimal place. - // Add 8 bytes for unfixed-len type's offsets. - // Minus Log2(avgSize) for unfixed-len type LEN. - avgSize := float64(c.TotColSize) / float64(count) - if avgSize < 1 { - return math.Round(avgSize*100)/100 + 8 - } - return math.Round((avgSize-math.Log2(avgSize))*100)/100 + 8 -} - -// AvgColSizeListInDisk is the average column size of the histogram. These sizes are derived -// from `chunk.ListInDisk` so we need to update them if those 2 functions are changed. -func (c *Column) AvgColSizeListInDisk(count int64) float64 { - if count == 0 { - return 0 - } - histCount := c.TotalRowCount() - notNullRatio := 1.0 - if histCount > 0 { - notNullRatio = 1.0 - float64(c.NullCount)/histCount - } - size := chunk.GetFixedLen(c.Histogram.Tp) - if size != -1 { - return float64(size) * notNullRatio - } - // Keep two decimal place. - // Minus Log2(avgSize) for unfixed-len type LEN. - avgSize := float64(c.TotColSize) / float64(count) - if avgSize < 1 { - return math.Round((avgSize)*100) / 100 - } - return math.Round((avgSize-math.Log2(avgSize))*100) / 100 -} - // AppendBucket appends a bucket into `hg`. func (hg *Histogram) AppendBucket(lower *types.Datum, upper *types.Datum, count, repeat int64) { hg.AppendBucketWithNDV(lower, upper, count, repeat, 0) @@ -543,15 +465,6 @@ func (hg *Histogram) BetweenRowCount(a, b types.Datum) float64 { return lessCountB - lessCountA } -// BetweenRowCount estimates the row count for interval [l, r). -func (c *Column) BetweenRowCount(sctx sessionctx.Context, l, r types.Datum, lowEncoded, highEncoded []byte) float64 { - histBetweenCnt := c.Histogram.BetweenRowCount(l, r) - if c.StatsVer <= Version1 { - return histBetweenCnt - } - return float64(c.TopN.BetweenCount(lowEncoded, highEncoded)) + histBetweenCnt -} - // TotalRowCount returns the total count of this histogram. func (hg *Histogram) TotalRowCount() float64 { return hg.notNullCount() + float64(hg.NullCount) @@ -589,24 +502,6 @@ func (hg *Histogram) mergeBuckets(bucketIdx int) { hg.Buckets = hg.Buckets[:curBuck] } -// GetIncreaseFactor get the increase factor to adjust the final estimated count when the table is modified. -func (idx *Index) GetIncreaseFactor(realtimeRowCount int64) float64 { - columnCount := idx.TotalRowCount() - if columnCount == 0 { - return 1.0 - } - return float64(realtimeRowCount) / columnCount -} - -// BetweenRowCount estimates the row count for interval [l, r). -func (idx *Index) BetweenRowCount(l, r types.Datum) float64 { - histBetweenCnt := idx.Histogram.BetweenRowCount(l, r) - if idx.StatsVer == Version1 { - return histBetweenCnt - } - return float64(idx.TopN.BetweenCount(l.GetBytes(), r.GetBytes())) + histBetweenCnt -} - // GetIncreaseFactor will return a factor of data increasing after the last analysis. func (hg *Histogram) GetIncreaseFactor(totalCount int64) float64 { columnCount := hg.TotalRowCount() @@ -1043,682 +938,6 @@ func (e *ErrorRate) Merge(rate *ErrorRate) { e.ErrorTotal += rate.ErrorTotal } -// Column represents a column histogram. -type Column struct { - Histogram - *CMSketch - *TopN - *FMSketch - PhysicalID int64 - Count int64 - Info *model.ColumnInfo - IsHandle bool - ErrorRate - Flag int64 - LastAnalyzePos types.Datum - StatsVer int64 // StatsVer is the version of the current stats, used to maintain compatibility - - // StatsLoadedStatus indicates the status of column statistics - StatsLoadedStatus -} - -func (c *Column) String() string { - return c.Histogram.ToString(0) -} - -// TotalRowCount returns the total count of this column. -func (c *Column) TotalRowCount() float64 { - if c.StatsVer >= Version2 { - return c.Histogram.TotalRowCount() + float64(c.TopN.TotalCount()) - } - return c.Histogram.TotalRowCount() -} - -func (c *Column) notNullCount() float64 { - if c.StatsVer >= Version2 { - return c.Histogram.notNullCount() + float64(c.TopN.TotalCount()) - } - return c.Histogram.notNullCount() -} - -// GetIncreaseFactor get the increase factor to adjust the final estimated count when the table is modified. -func (c *Column) GetIncreaseFactor(realtimeRowCount int64) float64 { - columnCount := c.TotalRowCount() - if columnCount == 0 { - // avoid dividing by 0 - return 1.0 - } - return float64(realtimeRowCount) / columnCount -} - -// MemoryUsage returns the total memory usage of Histogram, CMSketch, FMSketch in Column. -// We ignore the size of other metadata in Column -func (c *Column) MemoryUsage() CacheItemMemoryUsage { - var sum int64 - columnMemUsage := &ColumnMemUsage{ - ColumnID: c.Info.ID, - } - histogramMemUsage := c.Histogram.MemoryUsage() - columnMemUsage.HistogramMemUsage = histogramMemUsage - sum = histogramMemUsage - if c.CMSketch != nil { - cmSketchMemUsage := c.CMSketch.MemoryUsage() - columnMemUsage.CMSketchMemUsage = cmSketchMemUsage - sum += cmSketchMemUsage - } - if c.TopN != nil { - topnMemUsage := c.TopN.MemoryUsage() - columnMemUsage.TopNMemUsage = topnMemUsage - sum += topnMemUsage - } - if c.FMSketch != nil { - fmSketchMemUsage := c.FMSketch.MemoryUsage() - columnMemUsage.FMSketchMemUsage = fmSketchMemUsage - sum += fmSketchMemUsage - } - columnMemUsage.TotalMemUsage = sum - return columnMemUsage -} - -// HistogramNeededItems stores the columns/indices whose Histograms need to be loaded from physical kv layer. -// Currently, we only load index/pk's Histogram from kv automatically. Columns' are loaded by needs. -var HistogramNeededItems = neededStatsMap{items: map[model.TableItemID]struct{}{}} - -// IsInvalid checks if this column is invalid. If this column has histogram but not loaded yet, then we mark it -// as need histogram. -func (c *Column) IsInvalid(sctx sessionctx.Context, collPseudo bool) bool { - if collPseudo && c.NotAccurate() { - return true - } - if sctx != nil { - stmtctx := sctx.GetSessionVars().StmtCtx - if stmtctx != nil && stmtctx.StatsLoad.Fallback { - return true - } - if c.IsLoadNeeded() && stmtctx != nil { - if stmtctx.StatsLoad.Timeout > 0 { - logutil.BgLogger().Warn("Hist for column should already be loaded as sync but not found.", - zap.String(strconv.FormatInt(c.Info.ID, 10), c.Info.Name.O)) - } - // In some tests, the c.Info is not set, so we add this check here. - if c.Info != nil { - HistogramNeededItems.insert(model.TableItemID{TableID: c.PhysicalID, ID: c.Info.ID, IsIndex: false}) - } - } - } - // In some cases, some statistics in column would be evicted - // For example: the cmsketch of the column might be evicted while the histogram and the topn are still exists - // In this case, we will think this column as valid due to we can still use the rest of the statistics to do optimize. - return c.TotalRowCount() == 0 || (!c.IsEssentialStatsLoaded() && c.Histogram.NDV > 0) -} - -// IsHistNeeded checks if this column needs histogram to be loaded -func (c *Column) IsHistNeeded(collPseudo bool) bool { - return (!collPseudo || !c.NotAccurate()) && c.IsLoadNeeded() -} - -func (c *Column) equalRowCount(sctx sessionctx.Context, val types.Datum, encodedVal []byte, realtimeRowCount int64) (float64, error) { - if val.IsNull() { - return float64(c.NullCount), nil - } - if c.StatsVer < Version2 { - // All the values are null. - if c.Histogram.Bounds.NumRows() == 0 { - return 0.0, nil - } - if c.Histogram.NDV > 0 && c.outOfRange(val) { - return outOfRangeEQSelectivity(c.Histogram.NDV, realtimeRowCount, int64(c.TotalRowCount())) * c.TotalRowCount(), nil - } - if c.CMSketch != nil { - count, err := queryValue(sctx.GetSessionVars().StmtCtx, c.CMSketch, c.TopN, val) - return float64(count), errors.Trace(err) - } - histRowCount, _ := c.Histogram.equalRowCount(val, false) - return histRowCount, nil - } - - // Stats version == 2 - // All the values are null. - if c.Histogram.Bounds.NumRows() == 0 && c.TopN.Num() == 0 { - return 0, nil - } - // 1. try to find this value in TopN - if c.TopN != nil { - rowcount, ok := c.QueryTopN(encodedVal) - if ok { - return float64(rowcount), nil - } - } - // 2. try to find this value in bucket.Repeat(the last value in every bucket) - histCnt, matched := c.Histogram.equalRowCount(val, true) - if matched { - return histCnt, nil - } - // 3. use uniform distribution assumption for the rest (even when this value is not covered by the range of stats) - histNDV := float64(c.Histogram.NDV - int64(c.TopN.Num())) - if histNDV <= 0 { - return 0, nil - } - return c.Histogram.notNullCount() / histNDV, nil -} - -// GetColumnRowCount estimates the row count by a slice of Range. -func (c *Column) GetColumnRowCount(sctx sessionctx.Context, ranges []*ranger.Range, realtimeRowCount int64, pkIsHandle bool) (float64, error) { - sc := sctx.GetSessionVars().StmtCtx - var rowCount float64 - for _, rg := range ranges { - highVal := *rg.HighVal[0].Clone() - lowVal := *rg.LowVal[0].Clone() - if highVal.Kind() == types.KindString { - highVal.SetBytes(collate.GetCollator(highVal.Collation()).Key(highVal.GetString())) - } - if lowVal.Kind() == types.KindString { - lowVal.SetBytes(collate.GetCollator(lowVal.Collation()).Key(lowVal.GetString())) - } - cmp, err := lowVal.Compare(sc, &highVal, collate.GetBinaryCollator()) - if err != nil { - return 0, errors.Trace(err) - } - lowEncoded, err := codec.EncodeKey(sc, nil, lowVal) - if err != nil { - return 0, err - } - highEncoded, err := codec.EncodeKey(sc, nil, highVal) - if err != nil { - return 0, err - } - if cmp == 0 { - // case 1: it's a point - if !rg.LowExclude && !rg.HighExclude { - // In this case, the row count is at most 1. - if pkIsHandle { - rowCount += 1 - continue - } - var cnt float64 - cnt, err = c.equalRowCount(sctx, lowVal, lowEncoded, realtimeRowCount) - if err != nil { - return 0, errors.Trace(err) - } - // If the current table row count has changed, we should scale the row count accordingly. - cnt *= c.GetIncreaseFactor(realtimeRowCount) - rowCount += cnt - } - continue - } - // In stats ver 1, we use CM Sketch to estimate row count for point condition, which is more accurate. - // So for the small range, we convert it to points. - if c.StatsVer < 2 { - rangeVals := enumRangeValues(lowVal, highVal, rg.LowExclude, rg.HighExclude) - - // case 2: it's a small range && using ver1 stats - if rangeVals != nil { - for _, val := range rangeVals { - cnt, err := c.equalRowCount(sctx, val, lowEncoded, realtimeRowCount) - if err != nil { - return 0, err - } - // If the current table row count has changed, we should scale the row count accordingly. - cnt *= c.GetIncreaseFactor(realtimeRowCount) - rowCount += cnt - } - - continue - } - } - - // case 3: it's an interval - cnt := c.BetweenRowCount(sctx, lowVal, highVal, lowEncoded, highEncoded) - // `betweenRowCount` returns count for [l, h) range, we adjust cnt for boundaries here. - // Note that, `cnt` does not include null values, we need specially handle cases - // where null is the lower bound. - // And because we use (2, MaxValue] to represent expressions like a > 2 and use [MinNotNull, 3) to represent - // expressions like b < 3, we need to exclude the special values. - if rg.LowExclude && !lowVal.IsNull() && lowVal.Kind() != types.KindMaxValue && lowVal.Kind() != types.KindMinNotNull { - lowCnt, err := c.equalRowCount(sctx, lowVal, lowEncoded, realtimeRowCount) - if err != nil { - return 0, errors.Trace(err) - } - cnt -= lowCnt - cnt = mathutil.Clamp(cnt, 0, c.notNullCount()) - } - if !rg.LowExclude && lowVal.IsNull() { - cnt += float64(c.NullCount) - } - if !rg.HighExclude && highVal.Kind() != types.KindMaxValue && highVal.Kind() != types.KindMinNotNull { - highCnt, err := c.equalRowCount(sctx, highVal, highEncoded, realtimeRowCount) - if err != nil { - return 0, errors.Trace(err) - } - cnt += highCnt - } - - cnt = mathutil.Clamp(cnt, 0, c.TotalRowCount()) - - // If the current table row count has changed, we should scale the row count accordingly. - cnt *= c.GetIncreaseFactor(realtimeRowCount) - - // handling the out-of-range part - if (c.outOfRange(lowVal) && !lowVal.IsNull()) || c.outOfRange(highVal) { - increaseCount := realtimeRowCount - int64(c.TotalRowCount()) - if increaseCount < 0 { - increaseCount = 0 - } - cnt += c.Histogram.outOfRangeRowCount(&lowVal, &highVal, increaseCount) - } - - rowCount += cnt - } - rowCount = mathutil.Clamp(rowCount, 0, float64(realtimeRowCount)) - return rowCount, nil -} - -// ItemID implements TableCacheItem -func (c *Column) ItemID() int64 { - return c.Info.ID -} - -// DropEvicted implements TableCacheItem -// DropEvicted drops evicted structures -func (c *Column) DropEvicted() { - if !c.statsInitialized { - return - } - switch c.evictedStatus { - case allLoaded: - if c.CMSketch != nil && c.StatsVer < Version2 { - c.dropCMS() - return - } - // For stats version2, there is no cms thus we directly drop topn - c.dropTopN() - return - case onlyCmsEvicted: - c.dropTopN() - return - default: - return - } -} - -func (c *Column) dropCMS() { - c.CMSketch = nil - c.evictedStatus = onlyCmsEvicted -} - -func (c *Column) dropTopN() { - originTopNNum := int64(c.TopN.Num()) - c.TopN = nil - if len(c.Histogram.Buckets) == 0 && originTopNNum >= c.Histogram.NDV { - // This indicates column has topn instead of histogram - c.evictedStatus = allEvicted - } else { - c.evictedStatus = onlyHistRemained - } -} - -// IsAllEvicted indicates whether all stats evicted -func (c *Column) IsAllEvicted() bool { - return c.statsInitialized && c.evictedStatus >= allEvicted -} - -func (c *Column) getEvictedStatus() int { - return c.evictedStatus -} - -func (c *Column) isStatsInitialized() bool { - return c.statsInitialized -} - -func (c *Column) statsVer() int64 { - return c.StatsVer -} - -func (c *Column) isCMSExist() bool { - return c.CMSketch != nil -} - -// Index represents an index histogram. -type Index struct { - Histogram - *CMSketch - *TopN - FMSketch *FMSketch - ErrorRate - StatsVer int64 // StatsVer is the version of the current stats, used to maintain compatibility - Info *model.IndexInfo - Flag int64 - LastAnalyzePos types.Datum - PhysicalID int64 - StatsLoadedStatus -} - -// ItemID implements TableCacheItem -func (idx *Index) ItemID() int64 { - return idx.Info.ID -} - -// IsAllEvicted indicates whether all stats evicted -func (idx *Index) IsAllEvicted() bool { - return idx.statsInitialized && idx.evictedStatus >= allEvicted -} - -func (idx *Index) dropCMS() { - idx.CMSketch = nil - idx.evictedStatus = onlyCmsEvicted -} - -func (idx *Index) dropTopN() { - originTopNNum := int64(idx.TopN.Num()) - idx.TopN = nil - if len(idx.Histogram.Buckets) == 0 && originTopNNum >= idx.Histogram.NDV { - // This indicates index has topn instead of histogram - idx.evictedStatus = allEvicted - } else { - idx.evictedStatus = onlyHistRemained - } -} - -func (idx *Index) getEvictedStatus() int { - return idx.evictedStatus -} - -func (idx *Index) isStatsInitialized() bool { - return idx.statsInitialized -} - -func (idx *Index) statsVer() int64 { - return idx.StatsVer -} - -func (idx *Index) isCMSExist() bool { - return idx.CMSketch != nil -} - -// IsEvicted returns whether index statistics got evicted -func (idx *Index) IsEvicted() bool { - return idx.evictedStatus != allLoaded -} - -func (idx *Index) String() string { - return idx.Histogram.ToString(len(idx.Info.Columns)) -} - -// TotalRowCount returns the total count of this index. -func (idx *Index) TotalRowCount() float64 { - idx.checkStats() - if idx.StatsVer >= Version2 { - return idx.Histogram.TotalRowCount() + float64(idx.TopN.TotalCount()) - } - return idx.Histogram.TotalRowCount() -} - -// IsInvalid checks if this index is invalid. -func (idx *Index) IsInvalid(collPseudo bool) bool { - if !collPseudo { - idx.checkStats() - } - return (collPseudo && idx.NotAccurate()) || idx.TotalRowCount() == 0 -} - -// EvictAllStats evicts all stats -// Note that this function is only used for test -func (idx *Index) EvictAllStats() { - idx.Buckets = nil - idx.CMSketch = nil - idx.TopN = nil - idx.StatsLoadedStatus.evictedStatus = allEvicted -} - -// MemoryUsage returns the total memory usage of a Histogram and CMSketch in Index. -// We ignore the size of other metadata in Index. -func (idx *Index) MemoryUsage() CacheItemMemoryUsage { - var sum int64 - indexMemUsage := &IndexMemUsage{ - IndexID: idx.Info.ID, - } - histMemUsage := idx.Histogram.MemoryUsage() - indexMemUsage.HistogramMemUsage = histMemUsage - sum = histMemUsage - if idx.CMSketch != nil { - cmSketchMemUsage := idx.CMSketch.MemoryUsage() - indexMemUsage.CMSketchMemUsage = cmSketchMemUsage - sum += cmSketchMemUsage - } - if idx.TopN != nil { - topnMemUsage := idx.TopN.MemoryUsage() - indexMemUsage.TopNMemUsage = topnMemUsage - sum += topnMemUsage - } - indexMemUsage.TotalMemUsage = sum - return indexMemUsage -} - -var nullKeyBytes, _ = codec.EncodeKey(nil, nil, types.NewDatum(nil)) - -func (idx *Index) equalRowCount(b []byte, realtimeRowCount int64) float64 { - if len(idx.Info.Columns) == 1 { - if bytes.Equal(b, nullKeyBytes) { - return float64(idx.NullCount) - } - } - val := types.NewBytesDatum(b) - if idx.StatsVer < Version2 { - if idx.NDV > 0 && idx.outOfRange(val) { - return outOfRangeEQSelectivity(idx.NDV, realtimeRowCount, int64(idx.TotalRowCount())) * idx.TotalRowCount() - } - if idx.CMSketch != nil { - return float64(idx.QueryBytes(b)) - } - histRowCount, _ := idx.Histogram.equalRowCount(val, false) - return histRowCount - } - // stats version == 2 - // 1. try to find this value in TopN - count, found := idx.TopN.QueryTopN(b) - if found { - return float64(count) - } - // 2. try to find this value in bucket.Repeat(the last value in every bucket) - histCnt, matched := idx.Histogram.equalRowCount(val, true) - if matched { - return histCnt - } - // 3. use uniform distribution assumption for the rest (even when this value is not covered by the range of stats) - histNDV := float64(idx.Histogram.NDV - int64(idx.TopN.Num())) - if histNDV <= 0 { - return 0 - } - return idx.Histogram.notNullCount() / histNDV -} - -// QueryBytes is used to query the count of specified bytes. -func (idx *Index) QueryBytes(d []byte) uint64 { - idx.checkStats() - h1, h2 := murmur3.Sum128(d) - if count, ok := idx.TopN.QueryTopN(d); ok { - return count - } - return idx.queryHashValue(h1, h2) -} - -// GetRowCount returns the row count of the given ranges. -// It uses the modifyCount to adjust the influence of modifications on the table. -func (idx *Index) GetRowCount(sctx sessionctx.Context, coll *HistColl, indexRanges []*ranger.Range, realtimeRowCount int64) (float64, error) { - idx.checkStats() - sc := sctx.GetSessionVars().StmtCtx - totalCount := float64(0) - isSingleCol := len(idx.Info.Columns) == 1 - for _, indexRange := range indexRanges { - lb, err := codec.EncodeKey(sc, nil, indexRange.LowVal...) - if err != nil { - return 0, err - } - rb, err := codec.EncodeKey(sc, nil, indexRange.HighVal...) - if err != nil { - return 0, err - } - fullLen := len(indexRange.LowVal) == len(indexRange.HighVal) && len(indexRange.LowVal) == len(idx.Info.Columns) - if bytes.Equal(lb, rb) { - // case 1: it's a point - if indexRange.LowExclude || indexRange.HighExclude { - continue - } - if fullLen { - // At most 1 in this case. - if idx.Info.Unique { - totalCount += 1 - continue - } - count := idx.equalRowCount(lb, realtimeRowCount) - // If the current table row count has changed, we should scale the row count accordingly. - count *= idx.GetIncreaseFactor(realtimeRowCount) - totalCount += count - continue - } - } - - // case 2: it's an interval - // The final interval is [low, high) - if indexRange.LowExclude { - lb = kv.Key(lb).PrefixNext() - } - if !indexRange.HighExclude { - rb = kv.Key(rb).PrefixNext() - } - l := types.NewBytesDatum(lb) - r := types.NewBytesDatum(rb) - lowIsNull := bytes.Equal(lb, nullKeyBytes) - if isSingleCol && lowIsNull { - totalCount += float64(idx.NullCount) - } - expBackoffSuccess := false - // Due to the limitation of calcFraction and convertDatumToScalar, the histogram actually won't estimate anything. - // If the first column's range is point. - if rangePosition := GetOrdinalOfRangeCond(sc, indexRange); rangePosition > 0 && idx.StatsVer >= Version2 && coll != nil { - var expBackoffSel float64 - expBackoffSel, expBackoffSuccess, err = idx.expBackoffEstimation(sctx, coll, indexRange) - if err != nil { - return 0, err - } - if expBackoffSuccess { - expBackoffCnt := expBackoffSel * idx.TotalRowCount() - - upperLimit := expBackoffCnt - // Use the multi-column stats to calculate the max possible row count of [l, r) - if idx.Len() > 0 { - _, lowerBkt, _, _ := idx.locateBucket(l) - _, upperBkt, _, _ := idx.locateBucket(r) - // Use Count of the Bucket before l as the lower bound. - preCount := float64(0) - if lowerBkt > 0 { - preCount = float64(idx.Buckets[lowerBkt-1].Count) - } - // Use Count of the Bucket where r exists as the upper bound. - upperCnt := float64(idx.Buckets[upperBkt].Count) - upperLimit = upperCnt - preCount - upperLimit += float64(idx.TopN.BetweenCount(lb, rb)) - } - - // If the result of exponential backoff strategy is larger than the result from multi-column stats, - // use the upper limit from multi-column histogram instead. - if expBackoffCnt > upperLimit { - expBackoffCnt = upperLimit - } - totalCount += expBackoffCnt - } - } - if !expBackoffSuccess { - totalCount += idx.BetweenRowCount(l, r) - } - - // If the current table row count has changed, we should scale the row count accordingly. - totalCount *= idx.GetIncreaseFactor(realtimeRowCount) - - // handling the out-of-range part - if (idx.outOfRange(l) && !(isSingleCol && lowIsNull)) || idx.outOfRange(r) { - increaseCount := realtimeRowCount - int64(idx.TotalRowCount()) - if increaseCount < 0 { - increaseCount = 0 - } - totalCount += idx.Histogram.outOfRangeRowCount(&l, &r, increaseCount) - } - } - totalCount = mathutil.Clamp(totalCount, 0, float64(realtimeRowCount)) - return totalCount, nil -} - -// expBackoffEstimation estimate the multi-col cases following the Exponential Backoff. See comment below for details. -func (idx *Index) expBackoffEstimation(sctx sessionctx.Context, coll *HistColl, indexRange *ranger.Range) (float64, bool, error) { - tmpRan := []*ranger.Range{ - { - LowVal: make([]types.Datum, 1), - HighVal: make([]types.Datum, 1), - Collators: make([]collate.Collator, 1), - }, - } - colsIDs := coll.Idx2ColumnIDs[idx.ID] - singleColumnEstResults := make([]float64, 0, len(indexRange.LowVal)) - // The following codes uses Exponential Backoff to reduce the impact of independent assumption. It works like: - // 1. Calc the selectivity of each column. - // 2. Sort them and choose the first 4 most selective filter and the corresponding selectivity is sel_1, sel_2, sel_3, sel_4 where i < j => sel_i < sel_j. - // 3. The final selectivity would be sel_1 * sel_2^{1/2} * sel_3^{1/4} * sel_4^{1/8}. - // This calculation reduced the independence assumption and can work well better than it. - for i := 0; i < len(indexRange.LowVal); i++ { - tmpRan[0].LowVal[0] = indexRange.LowVal[i] - tmpRan[0].HighVal[0] = indexRange.HighVal[i] - tmpRan[0].Collators[0] = indexRange.Collators[0] - if i == len(indexRange.LowVal)-1 { - tmpRan[0].LowExclude = indexRange.LowExclude - tmpRan[0].HighExclude = indexRange.HighExclude - } - colID := colsIDs[i] - var ( - count float64 - err error - ) - if anotherIdxID, ok := coll.ColID2IdxID[colID]; ok && anotherIdxID != idx.ID { - count, err = coll.GetRowCountByIndexRanges(sctx, anotherIdxID, tmpRan) - } else if col, ok := coll.Columns[colID]; ok && !col.IsInvalid(sctx, coll.Pseudo) { - count, err = coll.GetRowCountByColumnRanges(sctx, colID, tmpRan) - } else { - continue - } - if err != nil { - return 0, false, err - } - singleColumnEstResults = append(singleColumnEstResults, count) - } - // Sort them. - slices.Sort(singleColumnEstResults) - l := len(singleColumnEstResults) - // Convert the first 4 to selectivity results. - for i := 0; i < l && i < 4; i++ { - singleColumnEstResults[i] = singleColumnEstResults[i] / float64(coll.Count) - } - failpoint.Inject("cleanEstResults", func() { - singleColumnEstResults = singleColumnEstResults[:0] - l = 0 - }) - if l == 1 { - return singleColumnEstResults[0], true, nil - } else if l == 2 { - return singleColumnEstResults[0] * math.Sqrt(singleColumnEstResults[1]), true, nil - } else if l == 3 { - return singleColumnEstResults[0] * math.Sqrt(singleColumnEstResults[1]) * math.Sqrt(math.Sqrt(singleColumnEstResults[2])), true, nil - } else if l == 0 { - return 0, false, nil - } - return singleColumnEstResults[0] * math.Sqrt(singleColumnEstResults[1]) * math.Sqrt(math.Sqrt(singleColumnEstResults[2])) * math.Sqrt(math.Sqrt(math.Sqrt(singleColumnEstResults[3]))), true, nil -} - -func (idx *Index) checkStats() { - if idx.IsFullLoad() { - return - } - HistogramNeededItems.insert(model.TableItemID{TableID: idx.PhysicalID, ID: idx.Info.ID, IsIndex: true}) -} - type countByRangeFunc = func(sessionctx.Context, int64, []*ranger.Range) (float64, error) // newHistogramBySelectivity fulfills the content of new histogram by the given selectivity result. @@ -1764,54 +983,6 @@ func newHistogramBySelectivity(sctx sessionctx.Context, histID int64, oldHist, n return nil } -func (idx *Index) newIndexBySelectivity(sc *stmtctx.StatementContext, statsNode *StatsNode) (*Index, error) { - var ( - ranLowEncode, ranHighEncode []byte - err error - ) - newIndexHist := &Index{Info: idx.Info, StatsVer: idx.StatsVer, CMSketch: idx.CMSketch, PhysicalID: idx.PhysicalID} - newIndexHist.Histogram = *NewHistogram(idx.ID, int64(float64(idx.NDV)*statsNode.Selectivity), 0, 0, types.NewFieldType(mysql.TypeBlob), chunk.InitialCapacity, 0) - - lowBucketIdx, highBucketIdx := 0, 0 - var totCnt int64 - - // Bucket bound of index is encoded one, so we need to decode it if we want to calculate the fraction accurately. - // TODO: enhance its calculation. - // Now just remove the bucket that no range fell in. - for _, ran := range statsNode.Ranges { - lowBucketIdx = highBucketIdx - ranLowEncode, ranHighEncode, err = ran.Encode(sc, ranLowEncode, ranHighEncode) - if err != nil { - return nil, err - } - for ; highBucketIdx < idx.Len(); highBucketIdx++ { - // Encoded value can only go to its next quickly. So ranHighEncode is actually range.HighVal's PrefixNext value. - // So the Bound should also go to its PrefixNext. - bucketLowerEncoded := idx.Bounds.GetRow(highBucketIdx * 2).GetBytes(0) - if bytes.Compare(ranHighEncode, kv.Key(bucketLowerEncoded).PrefixNext()) < 0 { - break - } - } - for ; lowBucketIdx < highBucketIdx; lowBucketIdx++ { - bucketUpperEncoded := idx.Bounds.GetRow(lowBucketIdx*2 + 1).GetBytes(0) - if bytes.Compare(ranLowEncode, bucketUpperEncoded) <= 0 { - break - } - } - if lowBucketIdx >= idx.Len() { - break - } - for i := lowBucketIdx; i < highBucketIdx; i++ { - newIndexHist.Bounds.AppendRow(idx.Bounds.GetRow(i * 2)) - newIndexHist.Bounds.AppendRow(idx.Bounds.GetRow(i*2 + 1)) - totCnt += idx.bucketCount(i) - newIndexHist.Buckets = append(newIndexHist.Buckets, Bucket{Repeat: idx.Buckets[i].Repeat, Count: totCnt}) - newIndexHist.scalars = append(newIndexHist.scalars, idx.scalars[i]) - } - } - return newIndexHist, nil -} - // NewHistCollBySelectivity creates new HistColl by the given statsNodes. func (coll *HistColl) NewHistCollBySelectivity(sctx sessionctx.Context, statsNodes []*StatsNode) *HistColl { newColl := &HistColl{ @@ -1894,25 +1065,6 @@ func (coll *HistColl) NewHistCollBySelectivity(sctx sessionctx.Context, statsNod return newColl } -func (idx *Index) outOfRange(val types.Datum) bool { - if !idx.Histogram.outOfRange(val) { - return false - } - if idx.Histogram.Len() > 0 && matchPrefix(idx.Bounds.GetRow(0), 0, &val) { - return false - } - return true -} - -// matchPrefix checks whether ad is the prefix of value -func matchPrefix(row chunk.Row, colIdx int, ad *types.Datum) bool { - switch ad.Kind() { - case types.KindString, types.KindBytes, types.KindBinaryLiteral, types.KindMysqlBit: - return strings.HasPrefix(row.GetString(colIdx), ad.GetString()) - } - return false -} - type dataCnt struct { data []byte cnt uint64 diff --git a/statistics/histogram_test.go b/statistics/histogram_test.go index 78c68d3a16dab..8c858e49582d2 100644 --- a/statistics/histogram_test.go +++ b/statistics/histogram_test.go @@ -469,3 +469,23 @@ func TestMergeBucketNDV(t *testing.T) { require.Equal(t, res.disjointNDV, tt.result.disjointNDV) } } + +func TestIndexQueryBytes(t *testing.T) { + ctx := mock.NewContext() + sc := ctx.GetSessionVars().StmtCtx + idx := &Index{Info: &model.IndexInfo{Columns: []*model.IndexColumn{{Name: model.NewCIStr("a"), Offset: 0}}}} + idx.Histogram = *NewHistogram(0, 15, 0, 0, types.NewFieldType(mysql.TypeBlob), 0, 0) + low, err1 := codec.EncodeKey(sc, nil, types.NewBytesDatum([]byte("0"))) + require.NoError(t, err1) + high, err2 := codec.EncodeKey(sc, nil, types.NewBytesDatum([]byte("3"))) + require.NoError(t, err2) + idx.Bounds.AppendBytes(0, low) + idx.Bounds.AppendBytes(0, high) + idx.Buckets = append(idx.Buckets, Bucket{Repeat: 10, Count: 20, NDV: 20}) + idx.PreCalculateScalar() + idx.CMSketch = nil + // Count / NDV + require.Equal(t, idx.QueryBytes(low), uint64(1)) + // Repeat + require.Equal(t, idx.QueryBytes(high), uint64(10)) +} diff --git a/statistics/index.go b/statistics/index.go new file mode 100644 index 0000000000000..c5e023f47aee5 --- /dev/null +++ b/statistics/index.go @@ -0,0 +1,470 @@ +// Copyright 2022 PingCAP, Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package statistics + +import ( + "bytes" + "math" + "strings" + + "github.com/pingcap/failpoint" + "github.com/pingcap/tidb/kv" + "github.com/pingcap/tidb/parser/model" + "github.com/pingcap/tidb/parser/mysql" + "github.com/pingcap/tidb/sessionctx" + "github.com/pingcap/tidb/sessionctx/stmtctx" + "github.com/pingcap/tidb/types" + "github.com/pingcap/tidb/util/chunk" + "github.com/pingcap/tidb/util/codec" + "github.com/pingcap/tidb/util/collate" + "github.com/pingcap/tidb/util/mathutil" + "github.com/pingcap/tidb/util/ranger" + "github.com/twmb/murmur3" + "golang.org/x/exp/slices" +) + +// Index represents an index histogram. +type Index struct { + Histogram + CMSketch *CMSketch + TopN *TopN + FMSketch *FMSketch + ErrorRate + StatsVer int64 // StatsVer is the version of the current stats, used to maintain compatibility + Info *model.IndexInfo + Flag int64 + LastAnalyzePos types.Datum + PhysicalID int64 + StatsLoadedStatus +} + +// ItemID implements TableCacheItem +func (idx *Index) ItemID() int64 { + return idx.Info.ID +} + +// IsAllEvicted indicates whether all stats evicted +func (idx *Index) IsAllEvicted() bool { + return idx.statsInitialized && idx.evictedStatus >= allEvicted +} + +func (idx *Index) dropCMS() { + idx.CMSketch = nil + idx.evictedStatus = onlyCmsEvicted +} + +func (idx *Index) dropTopN() { + originTopNNum := int64(idx.TopN.Num()) + idx.TopN = nil + if len(idx.Histogram.Buckets) == 0 && originTopNNum >= idx.Histogram.NDV { + // This indicates index has topn instead of histogram + idx.evictedStatus = allEvicted + } else { + idx.evictedStatus = onlyHistRemained + } +} + +func (idx *Index) getEvictedStatus() int { + return idx.evictedStatus +} + +func (idx *Index) isStatsInitialized() bool { + return idx.statsInitialized +} + +func (idx *Index) statsVer() int64 { + return idx.StatsVer +} + +func (idx *Index) isCMSExist() bool { + return idx.CMSketch != nil +} + +// IsEvicted returns whether index statistics got evicted +func (idx *Index) IsEvicted() bool { + return idx.evictedStatus != allLoaded +} + +func (idx *Index) String() string { + return idx.Histogram.ToString(len(idx.Info.Columns)) +} + +// TotalRowCount returns the total count of this index. +func (idx *Index) TotalRowCount() float64 { + idx.checkStats() + if idx.StatsVer >= Version2 { + return idx.Histogram.TotalRowCount() + float64(idx.TopN.TotalCount()) + } + return idx.Histogram.TotalRowCount() +} + +// IsInvalid checks if this index is invalid. +func (idx *Index) IsInvalid(collPseudo bool) bool { + if !collPseudo { + idx.checkStats() + } + return (collPseudo && idx.ErrorRate.NotAccurate()) || idx.TotalRowCount() == 0 +} + +// EvictAllStats evicts all stats +// Note that this function is only used for test +func (idx *Index) EvictAllStats() { + idx.Histogram.Buckets = nil + idx.CMSketch = nil + idx.TopN = nil + idx.StatsLoadedStatus.evictedStatus = allEvicted +} + +// MemoryUsage returns the total memory usage of a Histogram and CMSketch in Index. +// We ignore the size of other metadata in Index. +func (idx *Index) MemoryUsage() CacheItemMemoryUsage { + var sum int64 + indexMemUsage := &IndexMemUsage{ + IndexID: idx.Info.ID, + } + histMemUsage := idx.Histogram.MemoryUsage() + indexMemUsage.HistogramMemUsage = histMemUsage + sum = histMemUsage + if idx.CMSketch != nil { + cmSketchMemUsage := idx.CMSketch.MemoryUsage() + indexMemUsage.CMSketchMemUsage = cmSketchMemUsage + sum += cmSketchMemUsage + } + if idx.TopN != nil { + topnMemUsage := idx.TopN.MemoryUsage() + indexMemUsage.TopNMemUsage = topnMemUsage + sum += topnMemUsage + } + indexMemUsage.TotalMemUsage = sum + return indexMemUsage +} + +var nullKeyBytes, _ = codec.EncodeKey(nil, nil, types.NewDatum(nil)) + +func (idx *Index) equalRowCount(b []byte, realtimeRowCount int64) float64 { + if len(idx.Info.Columns) == 1 { + if bytes.Equal(b, nullKeyBytes) { + return float64(idx.Histogram.NullCount) + } + } + val := types.NewBytesDatum(b) + if idx.StatsVer < Version2 { + if idx.Histogram.NDV > 0 && idx.outOfRange(val) { + return outOfRangeEQSelectivity(idx.Histogram.NDV, realtimeRowCount, int64(idx.TotalRowCount())) * idx.TotalRowCount() + } + if idx.CMSketch != nil { + return float64(idx.QueryBytes(b)) + } + histRowCount, _ := idx.Histogram.equalRowCount(val, false) + return histRowCount + } + // stats version == 2 + // 1. try to find this value in TopN + if idx.TopN != nil { + count, found := idx.TopN.QueryTopN(b) + if found { + return float64(count) + } + } + // 2. try to find this value in bucket.Repeat(the last value in every bucket) + histCnt, matched := idx.Histogram.equalRowCount(val, true) + if matched { + return histCnt + } + // 3. use uniform distribution assumption for the rest (even when this value is not covered by the range of stats) + histNDV := float64(idx.Histogram.NDV - int64(idx.TopN.Num())) + if histNDV <= 0 { + return 0 + } + return idx.Histogram.notNullCount() / histNDV +} + +// QueryBytes is used to query the count of specified bytes. +func (idx *Index) QueryBytes(d []byte) uint64 { + idx.checkStats() + h1, h2 := murmur3.Sum128(d) + if idx.TopN != nil { + if count, ok := idx.TopN.QueryTopN(d); ok { + return count + } + } + if idx.CMSketch != nil { + return idx.CMSketch.queryHashValue(h1, h2) + } + v, _ := idx.Histogram.equalRowCount(types.NewBytesDatum(d), idx.StatsVer >= Version2) + return uint64(v) +} + +// GetRowCount returns the row count of the given ranges. +// It uses the modifyCount to adjust the influence of modifications on the table. +func (idx *Index) GetRowCount(sctx sessionctx.Context, coll *HistColl, indexRanges []*ranger.Range, realtimeRowCount int64) (float64, error) { + idx.checkStats() + sc := sctx.GetSessionVars().StmtCtx + totalCount := float64(0) + isSingleCol := len(idx.Info.Columns) == 1 + for _, indexRange := range indexRanges { + lb, err := codec.EncodeKey(sc, nil, indexRange.LowVal...) + if err != nil { + return 0, err + } + rb, err := codec.EncodeKey(sc, nil, indexRange.HighVal...) + if err != nil { + return 0, err + } + fullLen := len(indexRange.LowVal) == len(indexRange.HighVal) && len(indexRange.LowVal) == len(idx.Info.Columns) + if bytes.Equal(lb, rb) { + // case 1: it's a point + if indexRange.LowExclude || indexRange.HighExclude { + continue + } + if fullLen { + // At most 1 in this case. + if idx.Info.Unique { + totalCount += 1 + continue + } + count := idx.equalRowCount(lb, realtimeRowCount) + // If the current table row count has changed, we should scale the row count accordingly. + count *= idx.GetIncreaseFactor(realtimeRowCount) + totalCount += count + continue + } + } + + // case 2: it's an interval + // The final interval is [low, high) + if indexRange.LowExclude { + lb = kv.Key(lb).PrefixNext() + } + if !indexRange.HighExclude { + rb = kv.Key(rb).PrefixNext() + } + l := types.NewBytesDatum(lb) + r := types.NewBytesDatum(rb) + lowIsNull := bytes.Equal(lb, nullKeyBytes) + if isSingleCol && lowIsNull { + totalCount += float64(idx.Histogram.NullCount) + } + expBackoffSuccess := false + // Due to the limitation of calcFraction and convertDatumToScalar, the histogram actually won't estimate anything. + // If the first column's range is point. + if rangePosition := GetOrdinalOfRangeCond(sc, indexRange); rangePosition > 0 && idx.StatsVer >= Version2 && coll != nil { + var expBackoffSel float64 + expBackoffSel, expBackoffSuccess, err = idx.expBackoffEstimation(sctx, coll, indexRange) + if err != nil { + return 0, err + } + if expBackoffSuccess { + expBackoffCnt := expBackoffSel * idx.TotalRowCount() + + upperLimit := expBackoffCnt + // Use the multi-column stats to calculate the max possible row count of [l, r) + if idx.Histogram.Len() > 0 { + _, lowerBkt, _, _ := idx.Histogram.locateBucket(l) + _, upperBkt, _, _ := idx.Histogram.locateBucket(r) + // Use Count of the Bucket before l as the lower bound. + preCount := float64(0) + if lowerBkt > 0 { + preCount = float64(idx.Histogram.Buckets[lowerBkt-1].Count) + } + // Use Count of the Bucket where r exists as the upper bound. + upperCnt := float64(idx.Histogram.Buckets[upperBkt].Count) + upperLimit = upperCnt - preCount + upperLimit += float64(idx.TopN.BetweenCount(lb, rb)) + } + + // If the result of exponential backoff strategy is larger than the result from multi-column stats, + // use the upper limit from multi-column histogram instead. + if expBackoffCnt > upperLimit { + expBackoffCnt = upperLimit + } + totalCount += expBackoffCnt + } + } + if !expBackoffSuccess { + totalCount += idx.BetweenRowCount(l, r) + } + + // If the current table row count has changed, we should scale the row count accordingly. + totalCount *= idx.GetIncreaseFactor(realtimeRowCount) + + // handling the out-of-range part + if (idx.outOfRange(l) && !(isSingleCol && lowIsNull)) || idx.outOfRange(r) { + increaseCount := realtimeRowCount - int64(idx.TotalRowCount()) + if increaseCount < 0 { + increaseCount = 0 + } + totalCount += idx.Histogram.outOfRangeRowCount(&l, &r, increaseCount) + } + } + totalCount = mathutil.Clamp(totalCount, 0, float64(realtimeRowCount)) + return totalCount, nil +} + +// expBackoffEstimation estimate the multi-col cases following the Exponential Backoff. See comment below for details. +func (idx *Index) expBackoffEstimation(sctx sessionctx.Context, coll *HistColl, indexRange *ranger.Range) (float64, bool, error) { + tmpRan := []*ranger.Range{ + { + LowVal: make([]types.Datum, 1), + HighVal: make([]types.Datum, 1), + Collators: make([]collate.Collator, 1), + }, + } + colsIDs := coll.Idx2ColumnIDs[idx.Histogram.ID] + singleColumnEstResults := make([]float64, 0, len(indexRange.LowVal)) + // The following codes uses Exponential Backoff to reduce the impact of independent assumption. It works like: + // 1. Calc the selectivity of each column. + // 2. Sort them and choose the first 4 most selective filter and the corresponding selectivity is sel_1, sel_2, sel_3, sel_4 where i < j => sel_i < sel_j. + // 3. The final selectivity would be sel_1 * sel_2^{1/2} * sel_3^{1/4} * sel_4^{1/8}. + // This calculation reduced the independence assumption and can work well better than it. + for i := 0; i < len(indexRange.LowVal); i++ { + tmpRan[0].LowVal[0] = indexRange.LowVal[i] + tmpRan[0].HighVal[0] = indexRange.HighVal[i] + tmpRan[0].Collators[0] = indexRange.Collators[0] + if i == len(indexRange.LowVal)-1 { + tmpRan[0].LowExclude = indexRange.LowExclude + tmpRan[0].HighExclude = indexRange.HighExclude + } + colID := colsIDs[i] + var ( + count float64 + err error + ) + if anotherIdxID, ok := coll.ColID2IdxID[colID]; ok && anotherIdxID != idx.Histogram.ID { + count, err = coll.GetRowCountByIndexRanges(sctx, anotherIdxID, tmpRan) + } else if col, ok := coll.Columns[colID]; ok && !col.IsInvalid(sctx, coll.Pseudo) { + count, err = coll.GetRowCountByColumnRanges(sctx, colID, tmpRan) + } else { + continue + } + if err != nil { + return 0, false, err + } + singleColumnEstResults = append(singleColumnEstResults, count) + } + // Sort them. + slices.Sort(singleColumnEstResults) + l := len(singleColumnEstResults) + // Convert the first 4 to selectivity results. + for i := 0; i < l && i < 4; i++ { + singleColumnEstResults[i] = singleColumnEstResults[i] / float64(coll.Count) + } + failpoint.Inject("cleanEstResults", func() { + singleColumnEstResults = singleColumnEstResults[:0] + l = 0 + }) + if l == 1 { + return singleColumnEstResults[0], true, nil + } else if l == 2 { + return singleColumnEstResults[0] * math.Sqrt(singleColumnEstResults[1]), true, nil + } else if l == 3 { + return singleColumnEstResults[0] * math.Sqrt(singleColumnEstResults[1]) * math.Sqrt(math.Sqrt(singleColumnEstResults[2])), true, nil + } else if l == 0 { + return 0, false, nil + } + return singleColumnEstResults[0] * math.Sqrt(singleColumnEstResults[1]) * math.Sqrt(math.Sqrt(singleColumnEstResults[2])) * math.Sqrt(math.Sqrt(math.Sqrt(singleColumnEstResults[3]))), true, nil +} + +func (idx *Index) checkStats() { + if idx.IsFullLoad() { + return + } + HistogramNeededItems.insert(model.TableItemID{TableID: idx.PhysicalID, ID: idx.Info.ID, IsIndex: true}) +} + +func (idx *Index) newIndexBySelectivity(sc *stmtctx.StatementContext, statsNode *StatsNode) (*Index, error) { + var ( + ranLowEncode, ranHighEncode []byte + err error + ) + newIndexHist := &Index{Info: idx.Info, StatsVer: idx.StatsVer, CMSketch: idx.CMSketch, PhysicalID: idx.PhysicalID} + newIndexHist.Histogram = *NewHistogram(idx.Histogram.ID, int64(float64(idx.Histogram.NDV)*statsNode.Selectivity), 0, 0, types.NewFieldType(mysql.TypeBlob), chunk.InitialCapacity, 0) + + lowBucketIdx, highBucketIdx := 0, 0 + var totCnt int64 + + // Bucket bound of index is encoded one, so we need to decode it if we want to calculate the fraction accurately. + // TODO: enhance its calculation. + // Now just remove the bucket that no range fell in. + for _, ran := range statsNode.Ranges { + lowBucketIdx = highBucketIdx + ranLowEncode, ranHighEncode, err = ran.Encode(sc, ranLowEncode, ranHighEncode) + if err != nil { + return nil, err + } + for ; highBucketIdx < idx.Histogram.Len(); highBucketIdx++ { + // Encoded value can only go to its next quickly. So ranHighEncode is actually range.HighVal's PrefixNext value. + // So the Bound should also go to its PrefixNext. + bucketLowerEncoded := idx.Histogram.Bounds.GetRow(highBucketIdx * 2).GetBytes(0) + if bytes.Compare(ranHighEncode, kv.Key(bucketLowerEncoded).PrefixNext()) < 0 { + break + } + } + for ; lowBucketIdx < highBucketIdx; lowBucketIdx++ { + bucketUpperEncoded := idx.Histogram.Bounds.GetRow(lowBucketIdx*2 + 1).GetBytes(0) + if bytes.Compare(ranLowEncode, bucketUpperEncoded) <= 0 { + break + } + } + if lowBucketIdx >= idx.Histogram.Len() { + break + } + for i := lowBucketIdx; i < highBucketIdx; i++ { + newIndexHist.Histogram.Bounds.AppendRow(idx.Histogram.Bounds.GetRow(i * 2)) + newIndexHist.Histogram.Bounds.AppendRow(idx.Histogram.Bounds.GetRow(i*2 + 1)) + totCnt += idx.Histogram.bucketCount(i) + newIndexHist.Histogram.Buckets = append(newIndexHist.Histogram.Buckets, Bucket{Repeat: idx.Histogram.Buckets[i].Repeat, Count: totCnt}) + newIndexHist.Histogram.scalars = append(newIndexHist.Histogram.scalars, idx.Histogram.scalars[i]) + } + } + return newIndexHist, nil +} + +func (idx *Index) outOfRange(val types.Datum) bool { + if !idx.Histogram.outOfRange(val) { + return false + } + if idx.Histogram.Len() > 0 && matchPrefix(idx.Histogram.Bounds.GetRow(0), 0, &val) { + return false + } + return true +} + +// GetIncreaseFactor get the increase factor to adjust the final estimated count when the table is modified. +func (idx *Index) GetIncreaseFactor(realtimeRowCount int64) float64 { + columnCount := idx.TotalRowCount() + if columnCount == 0 { + return 1.0 + } + return float64(realtimeRowCount) / columnCount +} + +// BetweenRowCount estimates the row count for interval [l, r). +func (idx *Index) BetweenRowCount(l, r types.Datum) float64 { + histBetweenCnt := idx.Histogram.BetweenRowCount(l, r) + if idx.StatsVer == Version1 { + return histBetweenCnt + } + return float64(idx.TopN.BetweenCount(l.GetBytes(), r.GetBytes())) + histBetweenCnt +} + +// matchPrefix checks whether ad is the prefix of value +func matchPrefix(row chunk.Row, colIdx int, ad *types.Datum) bool { + switch ad.Kind() { + case types.KindString, types.KindBytes, types.KindBinaryLiteral, types.KindMysqlBit: + return strings.HasPrefix(row.GetString(colIdx), ad.GetString()) + } + return false +} diff --git a/statistics/sample_test.go b/statistics/sample_test.go index 6f14fbd04acd9..7e3058edcd537 100644 --- a/statistics/sample_test.go +++ b/statistics/sample_test.go @@ -180,7 +180,7 @@ func TestBuildStatsOnRowSample(t *testing.T) { TotalSize: int64(len(data)) * 8, } tp := types.NewFieldType(mysql.TypeLonglong) - hist, topN, err := BuildHistAndTopN(ctx, 5, 4, 1, collector, tp, true) + hist, topN, err := BuildHistAndTopN(ctx, 5, 4, 1, collector, tp, true, nil) require.Nilf(t, err, "%+v", err) topNStr, err := topN.DecodedString(ctx, []byte{tp.GetType()}) require.NoError(t, err) diff --git a/statistics/selectivity.go b/statistics/selectivity.go index 464b35875d3de..380887acf193f 100644 --- a/statistics/selectivity.go +++ b/statistics/selectivity.go @@ -317,109 +317,175 @@ func (coll *HistColl) Selectivity(ctx sessionctx.Context, exprs []expression.Exp } } - // Try to cover Constants + notCoveredConstants := make(map[int]*expression.Constant) + notCoveredDNF := make(map[int]*expression.ScalarFunction) + notCoveredStrMatch := make(map[int]*expression.ScalarFunction) + notCoveredNegateStrMatch := make(map[int]*expression.ScalarFunction) + notCoveredOtherExpr := make(map[int]expression.Expression) if mask > 0 { for i, expr := range remainedExprs { if mask&(1< 0 { - OUTER: - for i, expr := range remainedExprs { - if mask&(1< 0 { - ret *= selectionFactor + minSelectivity := 1.0 + if len(notCoveredConstants) > 0 || len(notCoveredDNF) > 0 || len(notCoveredOtherExpr) > 0 { + minSelectivity = math.Min(minSelectivity, selectionFactor) + } + if len(notCoveredStrMatch) > 0 { + minSelectivity = math.Min(minSelectivity, ctx.GetSessionVars().GetStrMatchDefaultSelectivity()) + } + if len(notCoveredNegateStrMatch) > 0 { + minSelectivity = math.Min(minSelectivity, ctx.GetSessionVars().GetNegateStrMatchDefaultSelectivity()) + } + ret *= minSelectivity } + if sc.EnableOptimizerCETrace { // Tracing for the expression estimation results after applying the default selectivity. totalExpr := expression.ComposeCNFCondition(ctx, remainedExprs...) diff --git a/statistics/selectivity_test.go b/statistics/selectivity_test.go index 675263bc241be..3d773eb0b51c7 100644 --- a/statistics/selectivity_test.go +++ b/statistics/selectivity_test.go @@ -19,12 +19,14 @@ import ( "fmt" "math" "os" + "regexp" "runtime/pprof" "testing" "time" "github.com/pingcap/failpoint" "github.com/pingcap/tidb/domain" + "github.com/pingcap/tidb/kv" "github.com/pingcap/tidb/parser/model" "github.com/pingcap/tidb/parser/mysql" plannercore "github.com/pingcap/tidb/planner/core" @@ -893,3 +895,118 @@ func TestSelectivityGreedyAlgo(t *testing.T) { require.Equal(t, 1, len(usedSets)) require.Equal(t, int64(1), usedSets[0].ID) } + +func TestDefaultSelectivityForStrMatch(t *testing.T) { + store, clean := testkit.CreateMockStore(t) + defer clean() + testKit := testkit.NewTestKit(t, store) + testKit.MustExec("use test") + testKit.MustExec("drop table if exists t") + testKit.MustExec("create table t(a int, b varchar(100))") + + var ( + input []string + output []struct { + SQL string + Result []string + } + ) + + statsSuiteData := statistics.GetIntegrationSuiteData() + statsSuiteData.GetTestCases(t, &input, &output) + + matchExplain, err := regexp.Compile("^explain") + require.NoError(t, err) + for i, tt := range input { + testdata.OnRecord(func() { + output[i].SQL = tt + }) + ok := matchExplain.MatchString(tt) + if !ok { + testKit.MustExec(tt) + continue + } + testdata.OnRecord(func() { + output[i].Result = testdata.ConvertRowsToStrings(testKit.MustQuery(tt).Rows()) + }) + testKit.MustQuery(tt).Check(testkit.Rows(output[i].Result...)) + } +} + +func TestTopNAssistedEstimationWithoutNewCollation(t *testing.T) { + store, dom, clean := testkit.CreateMockStoreAndDomain(t) + defer clean() + collate.SetNewCollationEnabledForTest(false) + var ( + input []string + output []outputType + ) + statsSuiteData := statistics.GetIntegrationSuiteData() + statsSuiteData.GetTestCases(t, &input, &output) + testTopNAssistedEstimationInner(t, input, output, store, dom) +} + +func TestTopNAssistedEstimationWithNewCollation(t *testing.T) { + store, dom, clean := testkit.CreateMockStoreAndDomain(t) + defer clean() + collate.SetNewCollationEnabledForTest(true) + var ( + input []string + output []outputType + ) + statsSuiteData := statistics.GetIntegrationSuiteData() + statsSuiteData.GetTestCases(t, &input, &output) + testTopNAssistedEstimationInner(t, input, output, store, dom) +} + +func testTopNAssistedEstimationInner(t *testing.T, input []string, output []outputType, store kv.Storage, dom *domain.Domain) { + h := dom.StatsHandle() + h.Clear() + tk := testkit.NewTestKit(t, store) + tk.MustExec("use test") + tk.MustExec("drop table if exists t") + tk.MustExec("set @@tidb_default_string_match_selectivity = 0") + tk.MustExec("set @@tidb_stats_load_sync_wait = 3000") + tk.MustExec("create table t(" + + "a varchar(100) charset utf8mb4 collate utf8mb4_bin," + + "b varchar(100) charset utf8mb4 collate utf8mb4_general_ci," + + "c varchar(100) charset utf8mb4 collate utf8mb4_general_ci," + + "d varchar(100) charset gbk collate gbk_bin," + + "e varchar(100) charset gbk collate gbk_chinese_ci," + + "f varbinary(100))") + // data distribution: + // "111abc111", "111cba111", "111234111": 10 rows for each value + // null: 3 rows + // "tttttt", "uuuuuu", "vvvvvv", "wwwwww", "xxxxxx", "yyyyyy", "zzzzzz": 1 rows for each value + // total: 40 rows + for i := 0; i < 10; i++ { + tk.MustExec(`insert into t value("111abc111", "111abc111", "111abc111", "111abc111", "111abc111", "111abc111")`) + tk.MustExec(`insert into t value("111cba111", "111cba111", "111cba111", "111cba111", "111cba111", "111cba111")`) + tk.MustExec(`insert into t value("111234111", "111234111", "111234111", "111234111", "111234111", "111234111")`) + } + for i := 0; i < 3; i++ { + tk.MustExec(`insert into t value(null, null, null, null, null, null)`) + } + tk.MustExec(`insert into t value("tttttt", "tttttt", "tttttt", "tttttt", "tttttt", "tttttt")`) + tk.MustExec(`insert into t value("uuuuuu", "uuuuuu", "uuuuuu", "uuuuuu", "uuuuuu", "uuuuuu")`) + tk.MustExec(`insert into t value("vvvvvv", "vvvvvv", "vvvvvv", "vvvvvv", "vvvvvv", "vvvvvv")`) + tk.MustExec(`insert into t value("wwwwww", "wwwwww", "wwwwww", "wwwwww", "wwwwww", "wwwwww")`) + tk.MustExec(`insert into t value("xxxxxx", "xxxxxx", "xxxxxx", "xxxxxx", "xxxxxx", "xxxxxx")`) + tk.MustExec(`insert into t value("yyyyyy", "yyyyyy", "yyyyyy", "yyyyyy", "yyyyyy", "yyyyyy")`) + tk.MustExec(`insert into t value("zzzzzz", "zzzzzz", "zzzzzz", "zzzzzz", "zzzzzz", "zzzzzz")`) + require.NoError(t, h.DumpStatsDeltaToKV(handle.DumpAll)) + tk.MustExec(`analyze table t with 3 topn`) + + for i, tt := range input { + testdata.OnRecord(func() { + output[i].SQL = tt + output[i].Result = testdata.ConvertRowsToStrings(tk.MustQuery(tt).Rows()) + }) + tk.MustQuery(tt).Check(testkit.Rows(output[i].Result...)) + } +} + +type outputType struct { + SQL string + Result []string +} diff --git a/statistics/statistics_test.go b/statistics/statistics_test.go index bb35b094f3f25..a72f6edff9d12 100644 --- a/statistics/statistics_test.go +++ b/statistics/statistics_test.go @@ -568,7 +568,7 @@ func SubTestBuild() func(*testing.T) { count = col.lessRowCount(types.NewIntDatum(1)) require.Equal(t, 5, int(count)) - colv2, topnv2, err := BuildHistAndTopN(ctx, int(bucketCount), topNCount, 2, collector, types.NewFieldType(mysql.TypeLonglong), true) + colv2, topnv2, err := BuildHistAndTopN(ctx, int(bucketCount), topNCount, 2, collector, types.NewFieldType(mysql.TypeLonglong), true, nil) require.NoError(t, err) require.NotNil(t, topnv2.TopN) // The most common one's occurrence is 9990, the second most common one's occurrence is 30. diff --git a/statistics/table.go b/statistics/table.go index ac3ffa8442b28..6c44d85b32f02 100644 --- a/statistics/table.go +++ b/statistics/table.go @@ -596,6 +596,148 @@ func CETraceRange(sctx sessionctx.Context, tableID int64, colNames []string, ran sc.OptimizerCETrace = append(sc.OptimizerCETrace, &CERecord) } +func (coll *HistColl) findAvailableStatsForCol(sctx sessionctx.Context, uniqueID int64) (isIndex bool, idx int64) { + // try to find available stats in column stats + if colStats, ok := coll.Columns[uniqueID]; ok && colStats != nil && !colStats.IsInvalid(sctx, coll.Pseudo) { + return false, uniqueID + } + // try to find available stats in single column index stats (except for prefix index) + for idxStatsIdx, cols := range coll.Idx2ColumnIDs { + if len(cols) == 1 && cols[0] == uniqueID { + idxStats, ok := coll.Indices[idxStatsIdx] + if ok && + idxStats.Info.Columns[0].Length == types.UnspecifiedLength && + !idxStats.IsInvalid(coll.Pseudo) { + return true, idxStatsIdx + } + } + } + return false, -1 +} + +// GetSelectivityByFilter try to estimate selectivity of expressions by evaluate the expressions using TopN and NULL. +// The data represented by the Histogram would use the defaultSelectivity parameter as the selectivity. +// Currently, this method can only handle expressions involving a single column. +func (coll *HistColl) GetSelectivityByFilter(sctx sessionctx.Context, + defaultSelectivity float64, + filters []expression.Expression) (ok bool, selectivity float64, err error) { + // 1. Make sure the expressions + // (1) are safe to be evaluated here, + // (2) involve only one column, + // (3) and this column is not a "new collation" string column so that we're able to restore values from the stats. + for _, filter := range filters { + if expression.IsMutableEffectsExpr(filter) { + return false, 0, nil + } + } + if expression.ContainCorrelatedColumn(filters) { + return false, 0, nil + } + cols := expression.ExtractColumnsFromExpressions(nil, filters, nil) + if len(cols) != 1 { + return false, 0, nil + } + col := cols[0] + tp := col.RetType + if types.IsString(tp.GetType()) && collate.NewCollationEnabled() && !collate.IsBinCollation(tp.GetCollate()) { + return false, 0, nil + } + + // 2. Get the available stats, make sure it's a ver2 stats and get the needed data structure from it. + isIndex, i := coll.findAvailableStatsForCol(sctx, col.UniqueID) + if i < 0 { + return false, 0, nil + } + var statsVer, nullCnt int64 + var histTotalCnt, totalCnt float64 + var topnTotalCnt uint64 + var hist *Histogram + var topn *TopN + if isIndex { + stats := coll.Indices[i] + statsVer = stats.StatsVer + hist = &stats.Histogram + nullCnt = hist.NullCount + topn = stats.TopN + } else { + stats := coll.Columns[i] + statsVer = stats.StatsVer + hist = &stats.Histogram + nullCnt = hist.NullCount + topn = stats.TopN + } + // Only in stats ver2, we can assume that: TopN + Histogram + NULL == All data + if statsVer != Version2 { + return false, 0, nil + } + topnTotalCnt = topn.TotalCount() + histTotalCnt = hist.notNullCount() + totalCnt = float64(topnTotalCnt) + histTotalCnt + float64(nullCnt) + + var topNSel, histSel, nullSel float64 + + // Prepare for evaluation. + + // For execution, we use Column.Index instead of Column.UniqueID to locate a column. + // We have only one column here, so we set it to 0. + originalIndex := col.Index + col.Index = 0 + defer func() { + // Restore the original Index to avoid unexpected situation. + col.Index = originalIndex + }() + size := 1 + if topn != nil { + size = len(topn.TopN) + } + c := chunk.NewChunkWithCapacity([]*types.FieldType{tp}, size) + selected := make([]bool, 0, size) + + // 3. Calculate the TopN part selectivity. + // This stage is considered as the core functionality of this method, errors in this stage would make this entire method fail. + var topNSelectedCnt uint64 + if topn != nil { + for _, item := range topn.TopN { + _, val, err := codec.DecodeOne(item.Encoded) + if err != nil { + return false, 0, err + } + c.AppendDatum(0, &val) + } + selected, err = expression.VectorizedFilter(sctx, filters, chunk.NewIterator4Chunk(c), selected) + if err != nil { + return false, 0, err + } + for i, isTrue := range selected { + if isTrue { + topNSelectedCnt += topn.TopN[i].Count + } + } + } + topNSel = float64(topNSelectedCnt) / totalCnt + + // 4. Calculate the Histogram part selectivity. + histSel = defaultSelectivity * histTotalCnt / totalCnt + + // 5. Calculate the NULL part selectivity. + // Errors in this staged would be returned, but would not make this entire method fail. + c.Reset() + c.AppendNull(0) + selected = selected[:0] + selected, err = expression.VectorizedFilter(sctx, filters, chunk.NewIterator4Chunk(c), selected) + if err != nil || len(selected) != 1 { + nullSel = defaultSelectivity * float64(nullCnt) / totalCnt + } else if selected[0] { + nullSel = float64(nullCnt) / totalCnt + } else { + nullSel = 0 + } + + // 6. Get the final result. + res := topNSel + histSel + nullSel + return true, res, err +} + // PseudoAvgCountPerValue gets a pseudo average count if histogram not exists. func (t *Table) PseudoAvgCountPerValue() float64 { return float64(t.Count) / pseudoEqualRate diff --git a/statistics/testdata/integration_suite_in.json b/statistics/testdata/integration_suite_in.json index 17afe048b3419..6d258b2072158 100644 --- a/statistics/testdata/integration_suite_in.json +++ b/statistics/testdata/integration_suite_in.json @@ -16,5 +16,115 @@ "show stats_topn", "show stats_buckets" ] + }, + { + "name": "TestDefaultSelectivityForStrMatch", + "cases": [ + "set @@tidb_default_string_match_selectivity = 0.8", + "explain format = 'brief' select * from t where a + 10 > 100", + "explain format = 'brief' select * from t where b like '%test%'", + "explain format = 'brief' select * from t where b not like '%test%'", + "explain format = 'brief' select * from t where b regexp '.*test.*'", + "explain format = 'brief' select * from t where b not regexp '.*test.*'", + "explain format = 'brief' select * from t where b like '%test%' and a + 10 > 100", + "explain format = 'brief' select * from t where b not like '%test%' and a + 10 > 100", + "explain format = 'brief' select * from t where b like '%test%' or a + 10 > 100", + "set @@tidb_default_string_match_selectivity = 0.9", + "explain format = 'brief' select * from t where a + 10 > 100", + "explain format = 'brief' select * from t where b like '%test%'", + "explain format = 'brief' select * from t where b not like '%test%'", + "explain format = 'brief' select * from t where b regexp '.*test.*'", + "explain format = 'brief' select * from t where b not regexp '.*test.*'", + "explain format = 'brief' select * from t where b like '%test%' and a + 10 > 100", + "explain format = 'brief' select * from t where b not like '%test%' and a + 10 > 100", + "explain format = 'brief' select * from t where b like '%test%' or a + 10 > 100", + "set @@tidb_default_string_match_selectivity = 0.1", + "explain format = 'brief' select * from t where a + 10 > 100", + "explain format = 'brief' select * from t where b like '%test%'", + "explain format = 'brief' select * from t where b like '%test%' is true", + "explain format = 'brief' select * from t where b not like '%test%'", + "explain format = 'brief' select * from t where b regexp '.*test.*'", + "explain format = 'brief' select * from t where b rlike '.*test.*'", + "explain format = 'brief' select * from t where b not rlike '.*test.*'", + "explain format = 'brief' select * from t where b not regexp '.*test.*'", + "explain format = 'brief' select * from t where b like '%test%' and a + 10 > 100", + "explain format = 'brief' select * from t where b not like '%test%' and a + 10 > 100", + "explain format = 'brief' select * from t where b like '%test%' or a + 10 > 100", + "set @@tidb_default_string_match_selectivity = 0", + "explain format = 'brief' select * from t where a + 10 > 100", + "explain format = 'brief' select * from t where b like '%test%'", + "explain format = 'brief' select * from t where b not like '%test%'", + "explain format = 'brief' select * from t where b regexp '.*test.*'", + "explain format = 'brief' select * from t where b not regexp '.*test.*'", + "explain format = 'brief' select * from t where b like '%test%' and a + 10 > 100", + "explain format = 'brief' select * from t where b not like '%test%' and a + 10 > 100", + "explain format = 'brief' select * from t where b like '%test%' or a + 10 > 100" + ] + }, + { + "name": "TestTopNAssistedEstimationWithNewCollation", + "cases": [ + "explain format = 'brief' select * from t where a like '%111%'", + "explain format = 'brief' select * from t where a not like '%111%'", + "explain format = 'brief' select * from t where a regexp '.*111.*'", + "explain format = 'brief' select * from t where a not regexp '.*111.*'", + "explain format = 'brief' select * from t where ifnull(a, '1111') like '%111%'", + "explain format = 'brief' select * from t where f like '%111%'", + "explain format = 'brief' select * from t where f not like '%111%'", + "explain format = 'brief' select * from t where f regexp '.*111.*'", + "explain format = 'brief' select * from t where f not regexp '.*111.*'", + "explain format = 'brief' select * from t where ifnull(f, '1111') like '%111%'", + "explain format = 'brief' select * from t where a like '%111%' and f rlike '.*111.*'", + "explain format = 'brief' select * from t where a like '%111%' or f like '%111%'", + "explain format = 'brief' select * from t where b like '%111%'", + "explain format = 'brief' select * from t where b not like '%111%'", + "explain format = 'brief' select * from t where b regexp '.*111.*'", + "explain format = 'brief' select * from t where b not regexp '.*111.*'", + "explain format = 'brief' select * from t where ifnull(b, '1111') like '%111%'", + "explain format = 'brief' select * from t where b like '%111%' and f like '%111%'", + "explain format = 'brief' select * from t where b like '%111%' or f like '%111%'", + "explain format = 'brief' select * from t where c like '%111%'", + "explain format = 'brief' select * from t where c not like '%111%'", + "explain format = 'brief' select * from t where ifnull(c, '1111') like '%111%'", + "explain format = 'brief' select * from t where d like '%111%'", + "explain format = 'brief' select * from t where d not like '%111%'", + "explain format = 'brief' select * from t where ifnull(c, '1111') like '%111%'", + "explain format = 'brief' select * from t where e like '%111%'", + "explain format = 'brief' select * from t where e not like '%111%'", + "explain format = 'brief' select * from t where ifnull(e, '1111') like '%111%'" + ] + }, + { + "name": "TestTopNAssistedEstimationWithoutNewCollation", + "cases": [ + "explain format = 'brief' select * from t where a like '%111%'", + "explain format = 'brief' select * from t where a not like '%111%'", + "explain format = 'brief' select * from t where a regexp '.*111.*'", + "explain format = 'brief' select * from t where a not regexp '.*111.*'", + "explain format = 'brief' select * from t where ifnull(a, '1111') like '%111%'", + "explain format = 'brief' select * from t where f like '%111%'", + "explain format = 'brief' select * from t where f not like '%111%'", + "explain format = 'brief' select * from t where f regexp '.*111.*'", + "explain format = 'brief' select * from t where f not regexp '.*111.*'", + "explain format = 'brief' select * from t where ifnull(f, '1111') like '%111%'", + "explain format = 'brief' select * from t where a like '%111%' and f rlike '.*111.*'", + "explain format = 'brief' select * from t where a like '%111%' or f like '%111%'", + "explain format = 'brief' select * from t where b like '%111%'", + "explain format = 'brief' select * from t where b not like '%111%'", + "explain format = 'brief' select * from t where b regexp '.*111.*'", + "explain format = 'brief' select * from t where b not regexp '.*111.*'", + "explain format = 'brief' select * from t where ifnull(b, '1111') like '%111%'", + "explain format = 'brief' select * from t where b like '%111%' and f like '%111%'", + "explain format = 'brief' select * from t where b like '%111%' or f like '%111%'", + "explain format = 'brief' select * from t where c like '%111%'", + "explain format = 'brief' select * from t where c not like '%111%'", + "explain format = 'brief' select * from t where ifnull(c, '1111') like '%111%'", + "explain format = 'brief' select * from t where d like '%111%'", + "explain format = 'brief' select * from t where d not like '%111%'", + "explain format = 'brief' select * from t where ifnull(c, '1111') like '%111%'", + "explain format = 'brief' select * from t where e like '%111%'", + "explain format = 'brief' select * from t where e not like '%111%'", + "explain format = 'brief' select * from t where ifnull(e, '1111') like '%111%'" + ] } ] diff --git a/statistics/testdata/integration_suite_out.json b/statistics/testdata/integration_suite_out.json index 550d10caba8e1..28b8494b2b315 100644 --- a/statistics/testdata/integration_suite_out.json +++ b/statistics/testdata/integration_suite_out.json @@ -47,5 +47,766 @@ "test t idx 1 1 2 1 4 4 0" ] ] + }, + { + "Name": "TestDefaultSelectivityForStrMatch", + "Cases": [ + { + "SQL": "set @@tidb_default_string_match_selectivity = 0.8", + "Result": null + }, + { + "SQL": "explain format = 'brief' select * from t where a + 10 > 100", + "Result": [ + "TableReader 8000.00 root data:Selection", + "└─Selection 8000.00 cop[tikv] gt(plus(test.t.a, 10), 100)", + " └─TableFullScan 10000.00 cop[tikv] table:t keep order:false, stats:pseudo" + ] + }, + { + "SQL": "explain format = 'brief' select * from t where b like '%test%'", + "Result": [ + "TableReader 8000.00 root data:Selection", + "└─Selection 8000.00 cop[tikv] like(test.t.b, \"%test%\", 92)", + " └─TableFullScan 10000.00 cop[tikv] table:t keep order:false, stats:pseudo" + ] + }, + { + "SQL": "explain format = 'brief' select * from t where b not like '%test%'", + "Result": [ + "TableReader 8000.00 root data:Selection", + "└─Selection 8000.00 cop[tikv] not(like(test.t.b, \"%test%\", 92))", + " └─TableFullScan 10000.00 cop[tikv] table:t keep order:false, stats:pseudo" + ] + }, + { + "SQL": "explain format = 'brief' select * from t where b regexp '.*test.*'", + "Result": [ + "Selection 8000.00 root regexp(test.t.b, \".*test.*\")", + "└─TableReader 10000.00 root data:TableFullScan", + " └─TableFullScan 10000.00 cop[tikv] table:t keep order:false, stats:pseudo" + ] + }, + { + "SQL": "explain format = 'brief' select * from t where b not regexp '.*test.*'", + "Result": [ + "Selection 8000.00 root not(istrue_with_null(regexp(test.t.b, \".*test.*\")))", + "└─TableReader 10000.00 root data:TableFullScan", + " └─TableFullScan 10000.00 cop[tikv] table:t keep order:false, stats:pseudo" + ] + }, + { + "SQL": "explain format = 'brief' select * from t where b like '%test%' and a + 10 > 100", + "Result": [ + "TableReader 8000.00 root data:Selection", + "└─Selection 8000.00 cop[tikv] gt(plus(test.t.a, 10), 100), like(test.t.b, \"%test%\", 92)", + " └─TableFullScan 10000.00 cop[tikv] table:t keep order:false, stats:pseudo" + ] + }, + { + "SQL": "explain format = 'brief' select * from t where b not like '%test%' and a + 10 > 100", + "Result": [ + "TableReader 8000.00 root data:Selection", + "└─Selection 8000.00 cop[tikv] gt(plus(test.t.a, 10), 100), not(like(test.t.b, \"%test%\", 92))", + " └─TableFullScan 10000.00 cop[tikv] table:t keep order:false, stats:pseudo" + ] + }, + { + "SQL": "explain format = 'brief' select * from t where b like '%test%' or a + 10 > 100", + "Result": [ + "TableReader 9600.00 root data:Selection", + "└─Selection 9600.00 cop[tikv] or(like(test.t.b, \"%test%\", 92), gt(plus(test.t.a, 10), 100))", + " └─TableFullScan 10000.00 cop[tikv] table:t keep order:false, stats:pseudo" + ] + }, + { + "SQL": "set @@tidb_default_string_match_selectivity = 0.9", + "Result": null + }, + { + "SQL": "explain format = 'brief' select * from t where a + 10 > 100", + "Result": [ + "TableReader 8000.00 root data:Selection", + "└─Selection 8000.00 cop[tikv] gt(plus(test.t.a, 10), 100)", + " └─TableFullScan 10000.00 cop[tikv] table:t keep order:false, stats:pseudo" + ] + }, + { + "SQL": "explain format = 'brief' select * from t where b like '%test%'", + "Result": [ + "TableReader 9000.00 root data:Selection", + "└─Selection 9000.00 cop[tikv] like(test.t.b, \"%test%\", 92)", + " └─TableFullScan 10000.00 cop[tikv] table:t keep order:false, stats:pseudo" + ] + }, + { + "SQL": "explain format = 'brief' select * from t where b not like '%test%'", + "Result": [ + "TableReader 1000.00 root data:Selection", + "└─Selection 1000.00 cop[tikv] not(like(test.t.b, \"%test%\", 92))", + " └─TableFullScan 10000.00 cop[tikv] table:t keep order:false, stats:pseudo" + ] + }, + { + "SQL": "explain format = 'brief' select * from t where b regexp '.*test.*'", + "Result": [ + "Selection 9000.00 root regexp(test.t.b, \".*test.*\")", + "└─TableReader 10000.00 root data:TableFullScan", + " └─TableFullScan 10000.00 cop[tikv] table:t keep order:false, stats:pseudo" + ] + }, + { + "SQL": "explain format = 'brief' select * from t where b not regexp '.*test.*'", + "Result": [ + "Selection 1000.00 root not(istrue_with_null(regexp(test.t.b, \".*test.*\")))", + "└─TableReader 10000.00 root data:TableFullScan", + " └─TableFullScan 10000.00 cop[tikv] table:t keep order:false, stats:pseudo" + ] + }, + { + "SQL": "explain format = 'brief' select * from t where b like '%test%' and a + 10 > 100", + "Result": [ + "TableReader 8000.00 root data:Selection", + "└─Selection 8000.00 cop[tikv] gt(plus(test.t.a, 10), 100), like(test.t.b, \"%test%\", 92)", + " └─TableFullScan 10000.00 cop[tikv] table:t keep order:false, stats:pseudo" + ] + }, + { + "SQL": "explain format = 'brief' select * from t where b not like '%test%' and a + 10 > 100", + "Result": [ + "TableReader 1000.00 root data:Selection", + "└─Selection 1000.00 cop[tikv] gt(plus(test.t.a, 10), 100), not(like(test.t.b, \"%test%\", 92))", + " └─TableFullScan 10000.00 cop[tikv] table:t keep order:false, stats:pseudo" + ] + }, + { + "SQL": "explain format = 'brief' select * from t where b like '%test%' or a + 10 > 100", + "Result": [ + "TableReader 9800.00 root data:Selection", + "└─Selection 9800.00 cop[tikv] or(like(test.t.b, \"%test%\", 92), gt(plus(test.t.a, 10), 100))", + " └─TableFullScan 10000.00 cop[tikv] table:t keep order:false, stats:pseudo" + ] + }, + { + "SQL": "set @@tidb_default_string_match_selectivity = 0.1", + "Result": null + }, + { + "SQL": "explain format = 'brief' select * from t where a + 10 > 100", + "Result": [ + "TableReader 8000.00 root data:Selection", + "└─Selection 8000.00 cop[tikv] gt(plus(test.t.a, 10), 100)", + " └─TableFullScan 10000.00 cop[tikv] table:t keep order:false, stats:pseudo" + ] + }, + { + "SQL": "explain format = 'brief' select * from t where b like '%test%'", + "Result": [ + "TableReader 1000.00 root data:Selection", + "└─Selection 1000.00 cop[tikv] like(test.t.b, \"%test%\", 92)", + " └─TableFullScan 10000.00 cop[tikv] table:t keep order:false, stats:pseudo" + ] + }, + { + "SQL": "explain format = 'brief' select * from t where b like '%test%' is true", + "Result": [ + "TableReader 8000.00 root data:Selection", + "└─Selection 8000.00 cop[tikv] istrue(like(test.t.b, \"%test%\", 92))", + " └─TableFullScan 10000.00 cop[tikv] table:t keep order:false, stats:pseudo" + ] + }, + { + "SQL": "explain format = 'brief' select * from t where b not like '%test%'", + "Result": [ + "TableReader 9000.00 root data:Selection", + "└─Selection 9000.00 cop[tikv] not(like(test.t.b, \"%test%\", 92))", + " └─TableFullScan 10000.00 cop[tikv] table:t keep order:false, stats:pseudo" + ] + }, + { + "SQL": "explain format = 'brief' select * from t where b regexp '.*test.*'", + "Result": [ + "Selection 1000.00 root regexp(test.t.b, \".*test.*\")", + "└─TableReader 10000.00 root data:TableFullScan", + " └─TableFullScan 10000.00 cop[tikv] table:t keep order:false, stats:pseudo" + ] + }, + { + "SQL": "explain format = 'brief' select * from t where b rlike '.*test.*'", + "Result": [ + "Selection 1000.00 root regexp(test.t.b, \".*test.*\")", + "└─TableReader 10000.00 root data:TableFullScan", + " └─TableFullScan 10000.00 cop[tikv] table:t keep order:false, stats:pseudo" + ] + }, + { + "SQL": "explain format = 'brief' select * from t where b not rlike '.*test.*'", + "Result": [ + "Selection 9000.00 root not(istrue_with_null(regexp(test.t.b, \".*test.*\")))", + "└─TableReader 10000.00 root data:TableFullScan", + " └─TableFullScan 10000.00 cop[tikv] table:t keep order:false, stats:pseudo" + ] + }, + { + "SQL": "explain format = 'brief' select * from t where b not regexp '.*test.*'", + "Result": [ + "Selection 9000.00 root not(istrue_with_null(regexp(test.t.b, \".*test.*\")))", + "└─TableReader 10000.00 root data:TableFullScan", + " └─TableFullScan 10000.00 cop[tikv] table:t keep order:false, stats:pseudo" + ] + }, + { + "SQL": "explain format = 'brief' select * from t where b like '%test%' and a + 10 > 100", + "Result": [ + "TableReader 1000.00 root data:Selection", + "└─Selection 1000.00 cop[tikv] gt(plus(test.t.a, 10), 100), like(test.t.b, \"%test%\", 92)", + " └─TableFullScan 10000.00 cop[tikv] table:t keep order:false, stats:pseudo" + ] + }, + { + "SQL": "explain format = 'brief' select * from t where b not like '%test%' and a + 10 > 100", + "Result": [ + "TableReader 8000.00 root data:Selection", + "└─Selection 8000.00 cop[tikv] gt(plus(test.t.a, 10), 100), not(like(test.t.b, \"%test%\", 92))", + " └─TableFullScan 10000.00 cop[tikv] table:t keep order:false, stats:pseudo" + ] + }, + { + "SQL": "explain format = 'brief' select * from t where b like '%test%' or a + 10 > 100", + "Result": [ + "TableReader 8200.00 root data:Selection", + "└─Selection 8200.00 cop[tikv] or(like(test.t.b, \"%test%\", 92), gt(plus(test.t.a, 10), 100))", + " └─TableFullScan 10000.00 cop[tikv] table:t keep order:false, stats:pseudo" + ] + }, + { + "SQL": "set @@tidb_default_string_match_selectivity = 0", + "Result": null + }, + { + "SQL": "explain format = 'brief' select * from t where a + 10 > 100", + "Result": [ + "TableReader 8000.00 root data:Selection", + "└─Selection 8000.00 cop[tikv] gt(plus(test.t.a, 10), 100)", + " └─TableFullScan 10000.00 cop[tikv] table:t keep order:false, stats:pseudo" + ] + }, + { + "SQL": "explain format = 'brief' select * from t where b like '%test%'", + "Result": [ + "TableReader 1000.00 root data:Selection", + "└─Selection 1000.00 cop[tikv] like(test.t.b, \"%test%\", 92)", + " └─TableFullScan 10000.00 cop[tikv] table:t keep order:false, stats:pseudo" + ] + }, + { + "SQL": "explain format = 'brief' select * from t where b not like '%test%'", + "Result": [ + "TableReader 9000.00 root data:Selection", + "└─Selection 9000.00 cop[tikv] not(like(test.t.b, \"%test%\", 92))", + " └─TableFullScan 10000.00 cop[tikv] table:t keep order:false, stats:pseudo" + ] + }, + { + "SQL": "explain format = 'brief' select * from t where b regexp '.*test.*'", + "Result": [ + "Selection 1000.00 root regexp(test.t.b, \".*test.*\")", + "└─TableReader 10000.00 root data:TableFullScan", + " └─TableFullScan 10000.00 cop[tikv] table:t keep order:false, stats:pseudo" + ] + }, + { + "SQL": "explain format = 'brief' select * from t where b not regexp '.*test.*'", + "Result": [ + "Selection 9000.00 root not(istrue_with_null(regexp(test.t.b, \".*test.*\")))", + "└─TableReader 10000.00 root data:TableFullScan", + " └─TableFullScan 10000.00 cop[tikv] table:t keep order:false, stats:pseudo" + ] + }, + { + "SQL": "explain format = 'brief' select * from t where b like '%test%' and a + 10 > 100", + "Result": [ + "TableReader 1000.00 root data:Selection", + "└─Selection 1000.00 cop[tikv] gt(plus(test.t.a, 10), 100), like(test.t.b, \"%test%\", 92)", + " └─TableFullScan 10000.00 cop[tikv] table:t keep order:false, stats:pseudo" + ] + }, + { + "SQL": "explain format = 'brief' select * from t where b not like '%test%' and a + 10 > 100", + "Result": [ + "TableReader 8000.00 root data:Selection", + "└─Selection 8000.00 cop[tikv] gt(plus(test.t.a, 10), 100), not(like(test.t.b, \"%test%\", 92))", + " └─TableFullScan 10000.00 cop[tikv] table:t keep order:false, stats:pseudo" + ] + }, + { + "SQL": "explain format = 'brief' select * from t where b like '%test%' or a + 10 > 100", + "Result": [ + "TableReader 8200.00 root data:Selection", + "└─Selection 8200.00 cop[tikv] or(like(test.t.b, \"%test%\", 92), gt(plus(test.t.a, 10), 100))", + " └─TableFullScan 10000.00 cop[tikv] table:t keep order:false, stats:pseudo" + ] + } + ] + }, + { + "Name": "TestTopNAssistedEstimationWithNewCollation", + "Cases": [ + { + "SQL": "explain format = 'brief' select * from t where a like '%111%'", + "Result": [ + "TableReader 30.70 root data:Selection", + "└─Selection 30.70 cop[tikv] like(test.t.a, \"%111%\", 92)", + " └─TableFullScan 40.00 cop[tikv] table:t keep order:false" + ] + }, + { + "SQL": "explain format = 'brief' select * from t where a not like '%111%'", + "Result": [ + "TableReader 6.30 root data:Selection", + "└─Selection 6.30 cop[tikv] not(like(test.t.a, \"%111%\", 92))", + " └─TableFullScan 40.00 cop[tikv] table:t keep order:false" + ] + }, + { + "SQL": "explain format = 'brief' select * from t where a regexp '.*111.*'", + "Result": [ + "Selection 30.70 root regexp(test.t.a, \".*111.*\")", + "└─TableReader 40.00 root data:TableFullScan", + " └─TableFullScan 40.00 cop[tikv] table:t keep order:false" + ] + }, + { + "SQL": "explain format = 'brief' select * from t where a not regexp '.*111.*'", + "Result": [ + "Selection 6.30 root not(istrue_with_null(regexp(test.t.a, \".*111.*\")))", + "└─TableReader 40.00 root data:TableFullScan", + " └─TableFullScan 40.00 cop[tikv] table:t keep order:false" + ] + }, + { + "SQL": "explain format = 'brief' select * from t where ifnull(a, '1111') like '%111%'", + "Result": [ + "TableReader 33.70 root data:Selection", + "└─Selection 33.70 cop[tikv] like(ifnull(test.t.a, \"1111\"), \"%111%\", 92)", + " └─TableFullScan 40.00 cop[tikv] table:t keep order:false" + ] + }, + { + "SQL": "explain format = 'brief' select * from t where f like '%111%'", + "Result": [ + "TableReader 30.70 root data:Selection", + "└─Selection 30.70 cop[tikv] like(test.t.f, \"%111%\", 92)", + " └─TableFullScan 40.00 cop[tikv] table:t keep order:false" + ] + }, + { + "SQL": "explain format = 'brief' select * from t where f not like '%111%'", + "Result": [ + "TableReader 6.30 root data:Selection", + "└─Selection 6.30 cop[tikv] not(like(test.t.f, \"%111%\", 92))", + " └─TableFullScan 40.00 cop[tikv] table:t keep order:false" + ] + }, + { + "SQL": "explain format = 'brief' select * from t where f regexp '.*111.*'", + "Result": [ + "Selection 30.70 root regexp(test.t.f, \".*111.*\")", + "└─TableReader 40.00 root data:TableFullScan", + " └─TableFullScan 40.00 cop[tikv] table:t keep order:false" + ] + }, + { + "SQL": "explain format = 'brief' select * from t where f not regexp '.*111.*'", + "Result": [ + "Selection 6.30 root not(istrue_with_null(regexp(test.t.f, \".*111.*\")))", + "└─TableReader 40.00 root data:TableFullScan", + " └─TableFullScan 40.00 cop[tikv] table:t keep order:false" + ] + }, + { + "SQL": "explain format = 'brief' select * from t where ifnull(f, '1111') like '%111%'", + "Result": [ + "TableReader 33.70 root data:Selection", + "└─Selection 33.70 cop[tikv] like(ifnull(test.t.f, \"1111\"), \"%111%\", 92)", + " └─TableFullScan 40.00 cop[tikv] table:t keep order:false" + ] + }, + { + "SQL": "explain format = 'brief' select * from t where a like '%111%' and f rlike '.*111.*'", + "Result": [ + "Selection 23.56 root regexp(test.t.f, \".*111.*\")", + "└─TableReader 30.70 root data:Selection", + " └─Selection 30.70 cop[tikv] like(test.t.a, \"%111%\", 92)", + " └─TableFullScan 40.00 cop[tikv] table:t keep order:false" + ] + }, + { + "SQL": "explain format = 'brief' select * from t where a like '%111%' or f like '%111%'", + "Result": [ + "TableReader 37.84 root data:Selection", + "└─Selection 37.84 cop[tikv] or(like(test.t.a, \"%111%\", 92), like(test.t.f, \"%111%\", 92))", + " └─TableFullScan 40.00 cop[tikv] table:t keep order:false" + ] + }, + { + "SQL": "explain format = 'brief' select * from t where b like '%111%'", + "Result": [ + "TableReader 4.00 root data:Selection", + "└─Selection 4.00 cop[tikv] like(test.t.b, \"%111%\", 92)", + " └─TableFullScan 40.00 cop[tikv] table:t keep order:false" + ] + }, + { + "SQL": "explain format = 'brief' select * from t where b not like '%111%'", + "Result": [ + "TableReader 36.00 root data:Selection", + "└─Selection 36.00 cop[tikv] not(like(test.t.b, \"%111%\", 92))", + " └─TableFullScan 40.00 cop[tikv] table:t keep order:false" + ] + }, + { + "SQL": "explain format = 'brief' select * from t where b regexp '.*111.*'", + "Result": [ + "Selection 4.00 root regexp(test.t.b, \".*111.*\")", + "└─TableReader 40.00 root data:TableFullScan", + " └─TableFullScan 40.00 cop[tikv] table:t keep order:false" + ] + }, + { + "SQL": "explain format = 'brief' select * from t where b not regexp '.*111.*'", + "Result": [ + "Selection 36.00 root not(istrue_with_null(regexp(test.t.b, \".*111.*\")))", + "└─TableReader 40.00 root data:TableFullScan", + " └─TableFullScan 40.00 cop[tikv] table:t keep order:false" + ] + }, + { + "SQL": "explain format = 'brief' select * from t where ifnull(b, '1111') like '%111%'", + "Result": [ + "TableReader 4.00 root data:Selection", + "└─Selection 4.00 cop[tikv] like(ifnull(test.t.b, \"1111\"), \"%111%\", 92)", + " └─TableFullScan 40.00 cop[tikv] table:t keep order:false" + ] + }, + { + "SQL": "explain format = 'brief' select * from t where b like '%111%' and f like '%111%'", + "Result": [ + "TableReader 3.07 root data:Selection", + "└─Selection 3.07 cop[tikv] like(test.t.b, \"%111%\", 92), like(test.t.f, \"%111%\", 92)", + " └─TableFullScan 40.00 cop[tikv] table:t keep order:false" + ] + }, + { + "SQL": "explain format = 'brief' select * from t where b like '%111%' or f like '%111%'", + "Result": [ + "TableReader 31.63 root data:Selection", + "└─Selection 31.63 cop[tikv] or(like(test.t.b, \"%111%\", 92), like(test.t.f, \"%111%\", 92))", + " └─TableFullScan 40.00 cop[tikv] table:t keep order:false" + ] + }, + { + "SQL": "explain format = 'brief' select * from t where c like '%111%'", + "Result": [ + "TableReader 4.00 root data:Selection", + "└─Selection 4.00 cop[tikv] like(test.t.c, \"%111%\", 92)", + " └─TableFullScan 40.00 cop[tikv] table:t keep order:false" + ] + }, + { + "SQL": "explain format = 'brief' select * from t where c not like '%111%'", + "Result": [ + "TableReader 36.00 root data:Selection", + "└─Selection 36.00 cop[tikv] not(like(test.t.c, \"%111%\", 92))", + " └─TableFullScan 40.00 cop[tikv] table:t keep order:false" + ] + }, + { + "SQL": "explain format = 'brief' select * from t where ifnull(c, '1111') like '%111%'", + "Result": [ + "TableReader 4.00 root data:Selection", + "└─Selection 4.00 cop[tikv] like(ifnull(test.t.c, \"1111\"), \"%111%\", 92)", + " └─TableFullScan 40.00 cop[tikv] table:t keep order:false" + ] + }, + { + "SQL": "explain format = 'brief' select * from t where d like '%111%'", + "Result": [ + "TableReader 4.00 root data:Selection", + "└─Selection 4.00 cop[tikv] like(test.t.d, \"%111%\", 92)", + " └─TableFullScan 40.00 cop[tikv] table:t keep order:false" + ] + }, + { + "SQL": "explain format = 'brief' select * from t where d not like '%111%'", + "Result": [ + "TableReader 36.00 root data:Selection", + "└─Selection 36.00 cop[tikv] not(like(test.t.d, \"%111%\", 92))", + " └─TableFullScan 40.00 cop[tikv] table:t keep order:false" + ] + }, + { + "SQL": "explain format = 'brief' select * from t where ifnull(c, '1111') like '%111%'", + "Result": [ + "TableReader 4.00 root data:Selection", + "└─Selection 4.00 cop[tikv] like(ifnull(test.t.c, \"1111\"), \"%111%\", 92)", + " └─TableFullScan 40.00 cop[tikv] table:t keep order:false" + ] + }, + { + "SQL": "explain format = 'brief' select * from t where e like '%111%'", + "Result": [ + "TableReader 4.00 root data:Selection", + "└─Selection 4.00 cop[tikv] like(test.t.e, \"%111%\", 92)", + " └─TableFullScan 40.00 cop[tikv] table:t keep order:false" + ] + }, + { + "SQL": "explain format = 'brief' select * from t where e not like '%111%'", + "Result": [ + "TableReader 36.00 root data:Selection", + "└─Selection 36.00 cop[tikv] not(like(test.t.e, \"%111%\", 92))", + " └─TableFullScan 40.00 cop[tikv] table:t keep order:false" + ] + }, + { + "SQL": "explain format = 'brief' select * from t where ifnull(e, '1111') like '%111%'", + "Result": [ + "TableReader 4.00 root data:Selection", + "└─Selection 4.00 cop[tikv] like(ifnull(test.t.e, \"1111\"), \"%111%\", 92)", + " └─TableFullScan 40.00 cop[tikv] table:t keep order:false" + ] + } + ] + }, + { + "Name": "TestTopNAssistedEstimationWithoutNewCollation", + "Cases": [ + { + "SQL": "explain format = 'brief' select * from t where a like '%111%'", + "Result": [ + "TableReader 30.70 root data:Selection", + "└─Selection 30.70 cop[tikv] like(test.t.a, \"%111%\", 92)", + " └─TableFullScan 40.00 cop[tikv] table:t keep order:false" + ] + }, + { + "SQL": "explain format = 'brief' select * from t where a not like '%111%'", + "Result": [ + "TableReader 6.30 root data:Selection", + "└─Selection 6.30 cop[tikv] not(like(test.t.a, \"%111%\", 92))", + " └─TableFullScan 40.00 cop[tikv] table:t keep order:false" + ] + }, + { + "SQL": "explain format = 'brief' select * from t where a regexp '.*111.*'", + "Result": [ + "Selection 30.70 root regexp(test.t.a, \".*111.*\")", + "└─TableReader 40.00 root data:TableFullScan", + " └─TableFullScan 40.00 cop[tikv] table:t keep order:false" + ] + }, + { + "SQL": "explain format = 'brief' select * from t where a not regexp '.*111.*'", + "Result": [ + "Selection 6.30 root not(istrue_with_null(regexp(test.t.a, \".*111.*\")))", + "└─TableReader 40.00 root data:TableFullScan", + " └─TableFullScan 40.00 cop[tikv] table:t keep order:false" + ] + }, + { + "SQL": "explain format = 'brief' select * from t where ifnull(a, '1111') like '%111%'", + "Result": [ + "TableReader 33.70 root data:Selection", + "└─Selection 33.70 cop[tikv] like(ifnull(test.t.a, \"1111\"), \"%111%\", 92)", + " └─TableFullScan 40.00 cop[tikv] table:t keep order:false" + ] + }, + { + "SQL": "explain format = 'brief' select * from t where f like '%111%'", + "Result": [ + "TableReader 30.70 root data:Selection", + "└─Selection 30.70 cop[tikv] like(test.t.f, \"%111%\", 92)", + " └─TableFullScan 40.00 cop[tikv] table:t keep order:false" + ] + }, + { + "SQL": "explain format = 'brief' select * from t where f not like '%111%'", + "Result": [ + "TableReader 6.30 root data:Selection", + "└─Selection 6.30 cop[tikv] not(like(test.t.f, \"%111%\", 92))", + " └─TableFullScan 40.00 cop[tikv] table:t keep order:false" + ] + }, + { + "SQL": "explain format = 'brief' select * from t where f regexp '.*111.*'", + "Result": [ + "Selection 30.70 root regexp(test.t.f, \".*111.*\")", + "└─TableReader 40.00 root data:TableFullScan", + " └─TableFullScan 40.00 cop[tikv] table:t keep order:false" + ] + }, + { + "SQL": "explain format = 'brief' select * from t where f not regexp '.*111.*'", + "Result": [ + "Selection 6.30 root not(istrue_with_null(regexp(test.t.f, \".*111.*\")))", + "└─TableReader 40.00 root data:TableFullScan", + " └─TableFullScan 40.00 cop[tikv] table:t keep order:false" + ] + }, + { + "SQL": "explain format = 'brief' select * from t where ifnull(f, '1111') like '%111%'", + "Result": [ + "TableReader 33.70 root data:Selection", + "└─Selection 33.70 cop[tikv] like(ifnull(test.t.f, \"1111\"), \"%111%\", 92)", + " └─TableFullScan 40.00 cop[tikv] table:t keep order:false" + ] + }, + { + "SQL": "explain format = 'brief' select * from t where a like '%111%' and f rlike '.*111.*'", + "Result": [ + "Selection 23.56 root regexp(test.t.f, \".*111.*\")", + "└─TableReader 30.70 root data:Selection", + " └─Selection 30.70 cop[tikv] like(test.t.a, \"%111%\", 92)", + " └─TableFullScan 40.00 cop[tikv] table:t keep order:false" + ] + }, + { + "SQL": "explain format = 'brief' select * from t where a like '%111%' or f like '%111%'", + "Result": [ + "TableReader 37.84 root data:Selection", + "└─Selection 37.84 cop[tikv] or(like(test.t.a, \"%111%\", 92), like(test.t.f, \"%111%\", 92))", + " └─TableFullScan 40.00 cop[tikv] table:t keep order:false" + ] + }, + { + "SQL": "explain format = 'brief' select * from t where b like '%111%'", + "Result": [ + "TableReader 30.70 root data:Selection", + "└─Selection 30.70 cop[tikv] like(test.t.b, \"%111%\", 92)", + " └─TableFullScan 40.00 cop[tikv] table:t keep order:false" + ] + }, + { + "SQL": "explain format = 'brief' select * from t where b not like '%111%'", + "Result": [ + "TableReader 6.30 root data:Selection", + "└─Selection 6.30 cop[tikv] not(like(test.t.b, \"%111%\", 92))", + " └─TableFullScan 40.00 cop[tikv] table:t keep order:false" + ] + }, + { + "SQL": "explain format = 'brief' select * from t where b regexp '.*111.*'", + "Result": [ + "Selection 30.70 root regexp(test.t.b, \".*111.*\")", + "└─TableReader 40.00 root data:TableFullScan", + " └─TableFullScan 40.00 cop[tikv] table:t keep order:false" + ] + }, + { + "SQL": "explain format = 'brief' select * from t where b not regexp '.*111.*'", + "Result": [ + "Selection 6.30 root not(istrue_with_null(regexp(test.t.b, \".*111.*\")))", + "└─TableReader 40.00 root data:TableFullScan", + " └─TableFullScan 40.00 cop[tikv] table:t keep order:false" + ] + }, + { + "SQL": "explain format = 'brief' select * from t where ifnull(b, '1111') like '%111%'", + "Result": [ + "TableReader 33.70 root data:Selection", + "└─Selection 33.70 cop[tikv] like(ifnull(test.t.b, \"1111\"), \"%111%\", 92)", + " └─TableFullScan 40.00 cop[tikv] table:t keep order:false" + ] + }, + { + "SQL": "explain format = 'brief' select * from t where b like '%111%' and f like '%111%'", + "Result": [ + "TableReader 23.56 root data:Selection", + "└─Selection 23.56 cop[tikv] like(test.t.b, \"%111%\", 92), like(test.t.f, \"%111%\", 92)", + " └─TableFullScan 40.00 cop[tikv] table:t keep order:false" + ] + }, + { + "SQL": "explain format = 'brief' select * from t where b like '%111%' or f like '%111%'", + "Result": [ + "TableReader 37.84 root data:Selection", + "└─Selection 37.84 cop[tikv] or(like(test.t.b, \"%111%\", 92), like(test.t.f, \"%111%\", 92))", + " └─TableFullScan 40.00 cop[tikv] table:t keep order:false" + ] + }, + { + "SQL": "explain format = 'brief' select * from t where c like '%111%'", + "Result": [ + "TableReader 30.70 root data:Selection", + "└─Selection 30.70 cop[tikv] like(test.t.c, \"%111%\", 92)", + " └─TableFullScan 40.00 cop[tikv] table:t keep order:false" + ] + }, + { + "SQL": "explain format = 'brief' select * from t where c not like '%111%'", + "Result": [ + "TableReader 6.30 root data:Selection", + "└─Selection 6.30 cop[tikv] not(like(test.t.c, \"%111%\", 92))", + " └─TableFullScan 40.00 cop[tikv] table:t keep order:false" + ] + }, + { + "SQL": "explain format = 'brief' select * from t where ifnull(c, '1111') like '%111%'", + "Result": [ + "TableReader 33.70 root data:Selection", + "└─Selection 33.70 cop[tikv] like(ifnull(test.t.c, \"1111\"), \"%111%\", 92)", + " └─TableFullScan 40.00 cop[tikv] table:t keep order:false" + ] + }, + { + "SQL": "explain format = 'brief' select * from t where d like '%111%'", + "Result": [ + "TableReader 30.70 root data:Selection", + "└─Selection 30.70 cop[tikv] like(test.t.d, \"%111%\", 92)", + " └─TableFullScan 40.00 cop[tikv] table:t keep order:false" + ] + }, + { + "SQL": "explain format = 'brief' select * from t where d not like '%111%'", + "Result": [ + "TableReader 6.30 root data:Selection", + "└─Selection 6.30 cop[tikv] not(like(test.t.d, \"%111%\", 92))", + " └─TableFullScan 40.00 cop[tikv] table:t keep order:false" + ] + }, + { + "SQL": "explain format = 'brief' select * from t where ifnull(c, '1111') like '%111%'", + "Result": [ + "TableReader 33.70 root data:Selection", + "└─Selection 33.70 cop[tikv] like(ifnull(test.t.c, \"1111\"), \"%111%\", 92)", + " └─TableFullScan 40.00 cop[tikv] table:t keep order:false" + ] + }, + { + "SQL": "explain format = 'brief' select * from t where e like '%111%'", + "Result": [ + "TableReader 30.70 root data:Selection", + "└─Selection 30.70 cop[tikv] like(test.t.e, \"%111%\", 92)", + " └─TableFullScan 40.00 cop[tikv] table:t keep order:false" + ] + }, + { + "SQL": "explain format = 'brief' select * from t where e not like '%111%'", + "Result": [ + "TableReader 6.30 root data:Selection", + "└─Selection 6.30 cop[tikv] not(like(test.t.e, \"%111%\", 92))", + " └─TableFullScan 40.00 cop[tikv] table:t keep order:false" + ] + }, + { + "SQL": "explain format = 'brief' select * from t where ifnull(e, '1111') like '%111%'", + "Result": [ + "TableReader 33.70 root data:Selection", + "└─Selection 33.70 cop[tikv] like(ifnull(test.t.e, \"1111\"), \"%111%\", 92)", + " └─TableFullScan 40.00 cop[tikv] table:t keep order:false" + ] + } + ] } ] diff --git a/store/BUILD.bazel b/store/BUILD.bazel index 6b25da3287443..0a1f3495f144f 100644 --- a/store/BUILD.bazel +++ b/store/BUILD.bazel @@ -22,6 +22,7 @@ go_test( "store_test.go", ], embed = [":store"], + flaky = True, deps = [ "//domain", "//kv", diff --git a/store/copr/BUILD.bazel b/store/copr/BUILD.bazel index f6cde5564e9f6..b6fdf57c43714 100644 --- a/store/copr/BUILD.bazel +++ b/store/copr/BUILD.bazel @@ -24,6 +24,7 @@ go_library( "//store/driver/backoff", "//store/driver/error", "//store/driver/options", + "//util", "//util/execdetails", "//util/logutil", "//util/mathutil", @@ -65,6 +66,7 @@ go_test( "main_test.go", ], embed = [":copr"], + flaky = True, deps = [ "//kv", "//store/driver/backoff", diff --git a/store/copr/coprocessor.go b/store/copr/coprocessor.go index 29cc437b182e6..135ce1a7ad8df 100644 --- a/store/copr/coprocessor.go +++ b/store/copr/coprocessor.go @@ -97,6 +97,14 @@ func (c *CopClient) Send(ctx context.Context, req *kv.Request, variables interfa bo := backoff.NewBackofferWithVars(ctx, copBuildTaskMaxBackoff, vars) ranges := NewKeyRanges(req.KeyRanges) tasks, err := buildCopTasks(bo, c.store.GetRegionCache(), ranges, req, eventCb) + reqType := "null" + if req.ClosestReplicaReadAdjuster != nil { + reqType = "miss" + if req.ClosestReplicaReadAdjuster(req, len(tasks)) { + reqType = "hit" + } + } + tidbmetrics.DistSQLCoprClosestReadCounter.WithLabelValues(reqType).Inc() if err != nil { return copErrorResponse{err} } @@ -120,24 +128,27 @@ func (c *CopClient) Send(ctx context.Context, req *kv.Request, variables interfa } if it.req.KeepOrder { + // Don't set high concurrency for the keep order case. It wastes a lot of memory and gains nothing. + // TL;DR + // Because for a keep order coprocessor request, the cop tasks are handled one by one, if we set a + // higher concurrency, the data is just cached and not consumed for a while, this increase the memory usage. + // Set concurrency to 2 can reduce the memory usage and I've tested that it does not necessarily + // decrease the performance. + if it.concurrency > 2 { + oldConcurrency := it.concurrency + it.concurrency = 2 + + failpoint.Inject("testRateLimitActionMockConsumeAndAssert", func(val failpoint.Value) { + if val.(bool) { + // When the concurrency is too small, test case tests/realtikvtest/sessiontest.TestCoprocessorOOMAction can't trigger OOM condition + it.concurrency = oldConcurrency + } + }) + } it.sendRate = util.NewRateLimit(2 * it.concurrency) it.respChan = nil } else { - capacity := it.concurrency - if enabledRateLimitAction { - // The count of cached response in memory is controlled by the capacity of the it.sendRate, not capacity of the respChan. - // As the worker will send finCopResponse after each task being handled, we make the capacity of the respCh equals to - // 2*it.concurrency to avoid deadlock in the unit test caused by the `MustExec` or `Exec` - capacity = it.concurrency * 2 - } - // in paging request, a request will be returned in multi batches, - // enlarge the channel size to avoid the request blocked by buffer full. - if req.Paging { - if capacity < 2048 { - capacity = 2048 - } - } - it.respChan = make(chan *copResponse, capacity) + it.respChan = make(chan *copResponse) it.sendRate = util.NewRateLimit(it.concurrency) } it.actionOnExceed = newRateLimitAction(uint(it.sendRate.GetCapacity())) @@ -197,7 +208,7 @@ func buildCopTasks(bo *Backoffer, cache *RegionCache, ranges *KeyRanges, req *kv // in paging request, a request will be returned in multi batches, // enlarge the channel size to avoid the request blocked by buffer full. if req.Paging { - chanSize = 128 + chanSize = 18 } var tasks []*copTask @@ -211,7 +222,7 @@ func buildCopTasks(bo *Backoffer, cache *RegionCache, ranges *KeyRanges, req *kv // the size will grow every round. pagingSize := uint64(0) if req.Paging { - pagingSize = paging.MinPagingSize + pagingSize = req.MinPagingSize } tasks = append(tasks, &copTask{ region: loc.Location.Region, @@ -776,18 +787,23 @@ func (worker *copIteratorWorker) handleTaskOnce(bo *Backoffer, task *copTask, ch // Set task.storeAddr field so its task.String() method have the store address information. task.storeAddr = storeAddr costTime := time.Since(startTime) + copResp := resp.Resp.(*coprocessor.Response) + if costTime > minLogCopTaskTime { - worker.logTimeCopTask(costTime, task, bo, resp) + worker.logTimeCopTask(costTime, task, bo, copResp) } storeID := strconv.FormatUint(req.Context.GetPeer().GetStoreId(), 10) metrics.TiKVCoprocessorHistogram.WithLabelValues(storeID, strconv.FormatBool(staleRead)).Observe(costTime.Seconds()) + if copResp != nil { + tidbmetrics.DistSQLCoprRespBodySize.WithLabelValues(storeAddr).Observe(float64(len(copResp.Data))) + } if worker.req.Paging { - return worker.handleCopPagingResult(bo, rpcCtx, &copResponse{pbResp: resp.Resp.(*coprocessor.Response)}, cacheKey, cacheValue, task, ch, costTime) + return worker.handleCopPagingResult(bo, rpcCtx, &copResponse{pbResp: copResp}, cacheKey, cacheValue, task, ch, costTime) } // Handles the response for non-paging copTask. - return worker.handleCopResponse(bo, rpcCtx, &copResponse{pbResp: resp.Resp.(*coprocessor.Response)}, cacheKey, cacheValue, task, ch, nil, costTime) + return worker.handleCopResponse(bo, rpcCtx, &copResponse{pbResp: copResp}, cacheKey, cacheValue, task, ch, nil, costTime) } const ( @@ -795,24 +811,15 @@ const ( minLogKVProcessTime = 100 ) -func (worker *copIteratorWorker) logTimeCopTask(costTime time.Duration, task *copTask, bo *Backoffer, resp *tikvrpc.Response) { +func (worker *copIteratorWorker) logTimeCopTask(costTime time.Duration, task *copTask, bo *Backoffer, resp *coprocessor.Response) { logStr := fmt.Sprintf("[TIME_COP_PROCESS] resp_time:%s txnStartTS:%d region_id:%d store_addr:%s", costTime, worker.req.StartTs, task.region.GetID(), task.storeAddr) if bo.GetTotalSleep() > minLogBackoffTime { backoffTypes := strings.Replace(fmt.Sprintf("%v", bo.TiKVBackoffer().GetTypes()), " ", ",", -1) logStr += fmt.Sprintf(" backoff_ms:%d backoff_types:%s", bo.GetTotalSleep(), backoffTypes) } - var detailV2 *kvrpcpb.ExecDetailsV2 - var detail *kvrpcpb.ExecDetails - if resp.Resp != nil { - switch r := resp.Resp.(type) { - case *coprocessor.Response: - detailV2 = r.ExecDetailsV2 - detail = r.ExecDetails - default: - panic("unreachable") - } - } - + // resp might be nil, but it is safe to call resp.GetXXX here. + detailV2 := resp.GetExecDetailsV2() + detail := resp.GetExecDetails() var timeDetail *kvrpcpb.TimeDetail if detailV2 != nil && detailV2.TimeDetail != nil { timeDetail = detailV2.TimeDetail @@ -868,6 +875,7 @@ func (worker *copIteratorWorker) handleCopPagingResult(bo *Backoffer, rpcCtx *ti // So we finish here. return nil, nil } + // calculate next ranges and grow the paging size task.ranges = worker.calculateRemain(task.ranges, pagingRange, worker.req.Desc) if task.ranges.Len() == 0 { @@ -991,7 +999,7 @@ func (worker *copIteratorWorker) handleCopResponse(bo *Backoffer, rpcCtx *tikv.R // Cache not hit or cache hit but not valid: update the cache if the response can be cached. if cacheKey != nil && resp.pbResp.CanBeCached && resp.pbResp.CacheLastVersion > 0 { if resp.detail != nil { - if worker.store.coprCache.CheckResponseAdmission(resp.pbResp.Data.Size(), resp.detail.TimeDetail.ProcessTime) { + if worker.store.coprCache.CheckResponseAdmission(resp.pbResp.Data.Size(), resp.detail.TimeDetail.ProcessTime, worker.req.Paging) { data := make([]byte, len(resp.pbResp.Data)) copy(data, resp.pbResp.Data) diff --git a/store/copr/coprocessor_cache.go b/store/copr/coprocessor_cache.go index 1adef9915cb48..2ee1ccffe2547 100644 --- a/store/copr/coprocessor_cache.go +++ b/store/copr/coprocessor_cache.go @@ -185,14 +185,19 @@ func (c *coprCache) CheckRequestAdmission(ranges int) bool { } // CheckResponseAdmission checks whether a response item is worth caching. -func (c *coprCache) CheckResponseAdmission(dataSize int, processTime time.Duration) bool { +func (c *coprCache) CheckResponseAdmission(dataSize int, processTime time.Duration, paging bool) bool { if c == nil { return false } if dataSize == 0 || dataSize > c.admissionMaxSize { return false } - if processTime < c.admissionMinProcessTime { + + admissionMinProcessTime := c.admissionMinProcessTime + if paging { + admissionMinProcessTime = admissionMinProcessTime / 3 + } + if processTime < admissionMinProcessTime { return false } return true diff --git a/store/copr/coprocessor_cache_test.go b/store/copr/coprocessor_cache_test.go index 91906c980d0f8..f629eb57f2c57 100644 --- a/store/copr/coprocessor_cache_test.go +++ b/store/copr/coprocessor_cache_test.go @@ -79,7 +79,7 @@ func TestDisable(t *testing.T) { v2 := cache.Get([]byte("foo")) require.Nil(t, v2) - v = cache.CheckResponseAdmission(1024, time.Second*5) + v = cache.CheckResponseAdmission(1024, time.Second*5, false) require.False(t, v) cache, err = newCoprCache(&config.CoprocessorCache{CapacityMB: 0.001}) @@ -104,34 +104,34 @@ func TestAdmission(t *testing.T) { v = cache.CheckRequestAdmission(1000) require.True(t, v) - v = cache.CheckResponseAdmission(0, 0) + v = cache.CheckResponseAdmission(0, 0, false) require.False(t, v) - v = cache.CheckResponseAdmission(0, 4*time.Millisecond) + v = cache.CheckResponseAdmission(0, 4*time.Millisecond, false) require.False(t, v) - v = cache.CheckResponseAdmission(0, 5*time.Millisecond) + v = cache.CheckResponseAdmission(0, 5*time.Millisecond, false) require.False(t, v) - v = cache.CheckResponseAdmission(1, 0) + v = cache.CheckResponseAdmission(1, 0, false) require.False(t, v) - v = cache.CheckResponseAdmission(1, 4*time.Millisecond) + v = cache.CheckResponseAdmission(1, 4*time.Millisecond, false) require.False(t, v) - v = cache.CheckResponseAdmission(1, 5*time.Millisecond) + v = cache.CheckResponseAdmission(1, 5*time.Millisecond, false) require.True(t, v) - v = cache.CheckResponseAdmission(1024, 5*time.Millisecond) + v = cache.CheckResponseAdmission(1024, 5*time.Millisecond, false) require.True(t, v) - v = cache.CheckResponseAdmission(1024*1024, 5*time.Millisecond) + v = cache.CheckResponseAdmission(1024*1024, 5*time.Millisecond, false) require.True(t, v) - v = cache.CheckResponseAdmission(1024*1024+1, 5*time.Millisecond) + v = cache.CheckResponseAdmission(1024*1024+1, 5*time.Millisecond, false) require.False(t, v) - v = cache.CheckResponseAdmission(1024*1024+1, 4*time.Millisecond) + v = cache.CheckResponseAdmission(1024*1024+1, 4*time.Millisecond, false) require.False(t, v) cache, err = newCoprCache(&config.CoprocessorCache{AdmissionMaxRanges: 5, AdmissionMinProcessMs: 5, AdmissionMaxResultMB: 1, CapacityMB: 1}) diff --git a/store/copr/coprocessor_test.go b/store/copr/coprocessor_test.go index 7f2efa0e2db71..c32ce383374d1 100644 --- a/store/copr/coprocessor_test.go +++ b/store/copr/coprocessor_test.go @@ -509,6 +509,7 @@ func TestBuildPagingTasks(t *testing.T) { req := &kv.Request{} req.Paging = true + req.MinPagingSize = paging.MinPagingSize flashReq := &kv.Request{} flashReq.StoreType = kv.TiFlash tasks, err := buildCopTasks(bo, cache, buildCopRanges("a", "c"), req, nil) diff --git a/store/copr/mpp.go b/store/copr/mpp.go index 22061039616a5..656fc11186ce1 100644 --- a/store/copr/mpp.go +++ b/store/copr/mpp.go @@ -32,6 +32,7 @@ import ( "github.com/pingcap/tidb/kv" "github.com/pingcap/tidb/store/driver/backoff" derr "github.com/pingcap/tidb/store/driver/error" + "github.com/pingcap/tidb/util" "github.com/pingcap/tidb/util/logutil" "github.com/pingcap/tidb/util/mathutil" "github.com/tikv/client-go/v2/tikv" @@ -341,13 +342,18 @@ func (m *mppIterator) cancelMppTasks() { } // send cancel cmd to all stores where tasks run + wg := util.WaitGroupWrapper{} for addr := range usedStoreAddrs { - _, err := m.store.GetTiKVClient().SendRequest(context.Background(), addr, wrappedReq, tikv.ReadTimeoutShort) - logutil.BgLogger().Debug("cancel task ", zap.Uint64("query id ", m.startTs), zap.String(" on addr ", addr)) - if err != nil { - logutil.BgLogger().Error("cancel task error: ", zap.Error(err), zap.Uint64(" for query id ", m.startTs), zap.String(" on addr ", addr)) - } + storeAddr := addr + wg.Run(func() { + _, err := m.store.GetTiKVClient().SendRequest(context.Background(), storeAddr, wrappedReq, tikv.ReadTimeoutShort) + logutil.BgLogger().Debug("cancel task", zap.Uint64("query id ", m.startTs), zap.String("on addr", storeAddr)) + if err != nil { + logutil.BgLogger().Error("cancel task error", zap.Error(err), zap.Uint64("query id", m.startTs), zap.String("on addr", storeAddr)) + } + }) } + wg.Wait() } func (m *mppIterator) establishMPPConns(bo *Backoffer, req *kv.MPPDispatchRequest, taskMeta *mpp.TaskMeta) { diff --git a/store/driver/BUILD.bazel b/store/driver/BUILD.bazel index b158197a4342c..955dfe88eb127 100644 --- a/store/driver/BUILD.bazel +++ b/store/driver/BUILD.bazel @@ -36,6 +36,7 @@ go_test( "txn_test.go", ], embed = [":driver"], + flaky = True, deps = [ "//domain", "//kv", diff --git a/store/driver/error/BUILD.bazel b/store/driver/error/BUILD.bazel index 95daebe95a8b1..ddca3e162fee4 100644 --- a/store/driver/error/BUILD.bazel +++ b/store/driver/error/BUILD.bazel @@ -19,6 +19,7 @@ go_test( name = "error_test", srcs = ["error_test.go"], embed = [":error"], + flaky = True, deps = [ "//parser/terror", "//testkit/testsetup", diff --git a/store/driver/options/options.go b/store/driver/options/options.go index 09e1757b12267..1b677ffc348d0 100644 --- a/store/driver/options/options.go +++ b/store/driver/options/options.go @@ -30,6 +30,8 @@ func GetTiKVReplicaReadType(t kv.ReplicaReadType) storekv.ReplicaReadType { return storekv.ReplicaReadMixed case kv.ReplicaReadClosest: return storekv.ReplicaReadMixed + case kv.ReplicaReadClosestAdaptive: + return storekv.ReplicaReadMixed } return 0 } diff --git a/store/driver/txn/BUILD.bazel b/store/driver/txn/BUILD.bazel index fc5bd8a2d7037..0561d814a6755 100644 --- a/store/driver/txn/BUILD.bazel +++ b/store/driver/txn/BUILD.bazel @@ -36,6 +36,7 @@ go_library( "@com_github_tikv_client_go_v2//tikv", "@com_github_tikv_client_go_v2//tikvrpc", "@com_github_tikv_client_go_v2//tikvrpc/interceptor", + "@com_github_tikv_client_go_v2//txnkv", "@com_github_tikv_client_go_v2//txnkv/transaction", "@com_github_tikv_client_go_v2//txnkv/txnsnapshot", "@com_github_tikv_client_go_v2//txnkv/txnutil", @@ -52,6 +53,7 @@ go_test( "union_iter_test.go", ], embed = [":txn"], + flaky = True, deps = [ "//kv", "//testkit/testsetup", diff --git a/store/driver/txn/snapshot.go b/store/driver/txn/snapshot.go index 9b39e635b1d71..ae84351e56c6c 100644 --- a/store/driver/txn/snapshot.go +++ b/store/driver/txn/snapshot.go @@ -24,6 +24,7 @@ import ( "github.com/pingcap/tidb/store/driver/options" "github.com/tikv/client-go/v2/tikvrpc" "github.com/tikv/client-go/v2/tikvrpc/interceptor" + "github.com/tikv/client-go/v2/txnkv" "github.com/tikv/client-go/v2/txnkv/txnsnapshot" "github.com/tikv/client-go/v2/txnkv/txnutil" ) @@ -110,7 +111,7 @@ func (s *tikvSnapshot) SetOption(opt int, val interface{}) { s.KVSnapshot.SetRuntimeStats(val.(*txnsnapshot.SnapshotRuntimeStats)) } case kv.IsStalenessReadOnly: - s.KVSnapshot.SetIsStatenessReadOnly(val.(bool)) + s.KVSnapshot.SetIsStalenessReadOnly(val.(bool)) case kv.MatchStoreLabels: s.KVSnapshot.SetMatchStoreLabels(val.([]*metapb.StoreLabel)) case kv.ResourceGroupTag: @@ -127,6 +128,8 @@ func (s *tikvSnapshot) SetOption(opt int, val interface{}) { s.KVSnapshot.SetRequestSourceInternal(val.(bool)) case kv.RequestSourceType: s.KVSnapshot.SetRequestSourceType(val.(string)) + case kv.ReplicaReadAdjuster: + s.KVSnapshot.SetReplicaReadAdjuster(val.(txnkv.ReplicaReadAdjuster)) } } diff --git a/store/driver/txn/txn_driver.go b/store/driver/txn/txn_driver.go index 29baf3c48c06f..22b22957865a9 100644 --- a/store/driver/txn/txn_driver.go +++ b/store/driver/txn/txn_driver.go @@ -34,6 +34,7 @@ import ( "github.com/tikv/client-go/v2/tikv" "github.com/tikv/client-go/v2/tikvrpc" "github.com/tikv/client-go/v2/tikvrpc/interceptor" + "github.com/tikv/client-go/v2/txnkv" "github.com/tikv/client-go/v2/txnkv/txnsnapshot" "go.uber.org/zap" ) @@ -232,7 +233,7 @@ func (txn *tikvTxn) SetOption(opt int, val interface{}) { case kv.TxnScope: txn.SetScope(val.(string)) case kv.IsStalenessReadOnly: - txn.KVTxn.GetSnapshot().SetIsStatenessReadOnly(val.(bool)) + txn.KVTxn.GetSnapshot().SetIsStalenessReadOnly(val.(bool)) case kv.MatchStoreLabels: txn.KVTxn.GetSnapshot().SetMatchStoreLabels(val.([]*metapb.StoreLabel)) case kv.ResourceGroupTag: @@ -255,6 +256,8 @@ func (txn *tikvTxn) SetOption(opt int, val interface{}) { txn.KVTxn.SetRequestSourceInternal(val.(bool)) case kv.RequestSourceType: txn.KVTxn.SetRequestSourceType(val.(string)) + case kv.ReplicaReadAdjuster: + txn.KVTxn.GetSnapshot().SetReplicaReadAdjuster(val.(txnkv.ReplicaReadAdjuster)) } } diff --git a/store/gcworker/BUILD.bazel b/store/gcworker/BUILD.bazel index 9ac77dd4ceb30..971a8216fbc09 100644 --- a/store/gcworker/BUILD.bazel +++ b/store/gcworker/BUILD.bazel @@ -6,6 +6,7 @@ go_library( importpath = "github.com/pingcap/tidb/store/gcworker", visibility = ["//visibility:public"], deps = [ + "//br/pkg/utils", "//ddl", "//ddl/label", "//ddl/placement", @@ -48,6 +49,7 @@ go_test( "main_test.go", ], embed = [":gcworker"], + flaky = True, deps = [ "//ddl/placement", "//ddl/util", diff --git a/store/gcworker/gc_worker.go b/store/gcworker/gc_worker.go index e07536e599795..a92858befc8fc 100644 --- a/store/gcworker/gc_worker.go +++ b/store/gcworker/gc_worker.go @@ -33,6 +33,7 @@ import ( "github.com/pingcap/kvproto/pkg/errorpb" "github.com/pingcap/kvproto/pkg/kvrpcpb" "github.com/pingcap/kvproto/pkg/metapb" + "github.com/pingcap/tidb/br/pkg/utils" "github.com/pingcap/tidb/ddl" "github.com/pingcap/tidb/ddl/label" "github.com/pingcap/tidb/ddl/placement" @@ -78,6 +79,7 @@ type GCWorker struct { batchResolveLocks func(locks []*txnlock.Lock, regionID tikv.RegionVerID, safepoint uint64) (ok bool, err error) resolveLocks func(locks []*txnlock.Lock, lowResolutionTS uint64) (int64, error) } + logBackupEnabled bool } // NewGCWorker creates a GCWorker instance. @@ -307,12 +309,31 @@ func (w *GCWorker) leaderTick(ctx context.Context) error { return nil } + concurrency, err := w.getGCConcurrency(ctx) + if err != nil { + logutil.Logger(ctx).Info("[gc worker] failed to get gc concurrency.", + zap.String("uuid", w.uuid), + zap.Error(err)) + return errors.Trace(err) + } + ok, safePoint, err := w.prepare(ctx) - if err != nil || !ok { - if err != nil { - metrics.GCJobFailureCounter.WithLabelValues("prepare").Inc() - } + if err != nil { + metrics.GCJobFailureCounter.WithLabelValues("prepare").Inc() return errors.Trace(err) + } else if !ok { + // If skip gc, it still needs to resolve locks with expired TTL, in order not to block log backup. + if w.logBackupEnabled { + tryResolveLocksTS, err := w.getTryResolveLocksTS() + if err != nil { + return errors.Trace(err) + } + // Set 0 to safepoint, which means resolving locks with expired TTL only. + if err = w.legacyResolveLocks(ctx, 0, tryResolveLocksTS, concurrency); err != nil { + return errors.Trace(err) + } + } + return nil } // When the worker is just started, or an old GC job has just finished, // wait a while before starting a new job. @@ -322,14 +343,6 @@ func (w *GCWorker) leaderTick(ctx context.Context) error { return nil } - concurrency, err := w.getGCConcurrency(ctx) - if err != nil { - logutil.Logger(ctx).Info("[gc worker] failed to get gc concurrency.", - zap.String("uuid", w.uuid), - zap.Error(err)) - return errors.Trace(err) - } - w.gcIsRunning = true logutil.Logger(ctx).Info("[gc worker] starts the whole job", zap.String("uuid", w.uuid), @@ -1027,9 +1040,8 @@ func (w *GCWorker) resolveLocks(ctx context.Context, safePoint uint64, concurren if tryResolveLocksTS < safePoint { tryResolveLocksTS = safePoint - } else { - // to do: add a switch for tryResolveLocksTS. - // if the config log-backup.enable is false in PiTR, set safePoint to tryResolveLocksTS directly. + } else if !w.logBackupEnabled { + tryResolveLocksTS = safePoint } if !usePhysical { @@ -1778,6 +1790,7 @@ func (w *GCWorker) checkLeader(ctx context.Context) (bool, error) { se := createSession(w.store) defer se.Close() + w.logBackupEnabled = utils.CheckLogBackupEnabled(se) _, err := se.ExecuteInternal(ctx, "BEGIN") if err != nil { return false, errors.Trace(err) diff --git a/store/gcworker/gc_worker_test.go b/store/gcworker/gc_worker_test.go index 362c304efafe5..c453545a4362b 100644 --- a/store/gcworker/gc_worker_test.go +++ b/store/gcworker/gc_worker_test.go @@ -1820,6 +1820,8 @@ func TestGCLabelRules(t *testing.T) { func TestGCWithPendingTxn(t *testing.T) { s, clean := createGCWorkerSuite(t) defer clean() + // set to false gc worker won't resolve locks after safepoint. + s.gcWorker.logBackupEnabled = false ctx := gcContext() gcSafePointCacheInterval = 0 @@ -1866,11 +1868,13 @@ func TestGCWithPendingTxn(t *testing.T) { require.NoError(t, err) err = txn.Commit(ctx) - require.Error(t, err) + require.NoError(t, err) } func TestGCWithPendingTxn2(t *testing.T) { s, clean := createGCWorkerSuite(t) + // only when log backup enabled will scan locks after safepoint. + s.gcWorker.logBackupEnabled = true defer clean() ctx := gcContext() @@ -1940,6 +1944,65 @@ func TestGCWithPendingTxn2(t *testing.T) { require.NoError(t, err) } +func TestSkipGCAndOnlyResolveLock(t *testing.T) { + s, clean := createGCWorkerSuite(t) + // only when log backup enabled will scan locks after safepoint. + s.gcWorker.logBackupEnabled = true + defer clean() + + ctx := gcContext() + gcSafePointCacheInterval = 0 + err := s.gcWorker.saveValueToSysTable(gcEnableKey, booleanFalse) + require.NoError(t, err) + now, err := s.oracle.GetTimestamp(ctx, &oracle.Option{}) + require.NoError(t, err) + + // Prepare to run gc with txn's startTS as the safepoint ts. + spkv := s.tikvStore.GetSafePointKV() + err = spkv.Put(fmt.Sprintf("%s/%s", infosync.ServerMinStartTSPath, "a"), strconv.FormatUint(now, 10)) + require.NoError(t, err) + s.mustSetTiDBServiceSafePoint(t, now, now) + veryLong := gcDefaultLifeTime * 100 + lastRunTime := oracle.GetTimeFromTS(s.mustAllocTs(t)).Add(-veryLong) + newGcLifeTime := time.Hour * 24 + err = s.gcWorker.saveTime(gcLastRunTimeKey, lastRunTime) + require.NoError(t, err) + err = s.gcWorker.saveTime(gcSafePointKey, oracle.GetTimeFromTS(s.mustAllocTs(t)).Add(-time.Minute*10)) + require.NoError(t, err) + err = s.gcWorker.saveDuration(gcLifeTimeKey, newGcLifeTime) + require.NoError(t, err) + s.gcWorker.lastFinish = time.Now().Add(-veryLong) + err = s.gcWorker.saveValueToSysTable(gcEnableKey, booleanTrue) + require.NoError(t, err) + + // lock the key1 + k1 := []byte("tk1") + v1 := []byte("v1") + txn, err := s.store.Begin(tikv.WithStartTS(now)) + require.NoError(t, err) + txn.SetOption(kv.Pessimistic, true) + lockCtx := &kv.LockCtx{ForUpdateTS: txn.StartTS(), WaitStartTime: time.Now()} + + err = txn.Set(k1, v1) + require.NoError(t, err) + err = txn.LockKeys(ctx, lockCtx, k1) + require.NoError(t, err) + + // Trigger the tick let the gc job start. + s.oracle.AddOffset(time.Minute * 5) + err = s.gcWorker.leaderTick(ctx) + require.NoError(t, err) + + // check the lock has been resolved. + err = txn.Commit(ctx) + require.Error(t, err) + + // check gc is skipped + last, err := s.gcWorker.loadTime(gcLastRunTimeKey) + require.NoError(t, err) + require.Equal(t, last.Unix(), lastRunTime.Unix()) +} + func bootstrap(t testing.TB, store kv.Storage, lease time.Duration) (*domain.Domain, func()) { session.SetSchemaLease(lease) session.DisableStats4Test() diff --git a/store/helper/BUILD.bazel b/store/helper/BUILD.bazel index ebd81b67a80a0..743183baf657e 100644 --- a/store/helper/BUILD.bazel +++ b/store/helper/BUILD.bazel @@ -35,6 +35,7 @@ go_test( "main_test.go", ], embed = [":helper"], + flaky = True, deps = [ "//parser/model", "//store/mockstore", diff --git a/store/helper/helper.go b/store/helper/helper.go index 760cfb11f6a3a..97aefbc142ae6 100644 --- a/store/helper/helper.go +++ b/store/helper/helper.go @@ -183,7 +183,7 @@ func (h *Helper) GetMvccByStartTs(startTS uint64, startKey, endKey kv.Key) (*Mvc if len(curRegion.EndKey) == 0 { return nil, nil } - startKey = kv.Key(curRegion.EndKey) + startKey = curRegion.EndKey } } @@ -313,7 +313,7 @@ func (h *Helper) FetchRegionTableIndex(metrics map[uint64]RegionMetric, allSchem } // FindTableIndexOfRegion finds what table is involved in this hot region. And constructs the new frame item for future use. -func (h *Helper) FindTableIndexOfRegion(allSchemas []*model.DBInfo, hotRange *RegionFrameRange) *FrameItem { +func (*Helper) FindTableIndexOfRegion(allSchemas []*model.DBInfo, hotRange *RegionFrameRange) *FrameItem { for _, db := range allSchemas { for _, tbl := range db.Tables { if f := findRangeInTable(hotRange, db, tbl); f != nil { @@ -608,12 +608,12 @@ func isBehind(x, y withKeyRange) bool { } // IsBefore returns true is x is before [startKey, endKey) -func isBeforeKeyRange(x withKeyRange, startKey, endKey string) bool { +func isBeforeKeyRange(x withKeyRange, startKey, _ string) bool { return x.getEndKey() != "" && x.getEndKey() <= startKey } // IsBehind returns true is x is behind [startKey, endKey) -func isBehindKeyRange(x withKeyRange, startKey, endKey string) bool { +func isBehindKeyRange(x withKeyRange, _, endKey string) bool { return endKey != "" && x.getStartKey() >= endKey } @@ -689,7 +689,7 @@ func newPartitionTableWithKeyRange(db *model.DBInfo, table *model.TableInfo, par } // FilterMemDBs filters memory databases in the input schemas. -func (h *Helper) FilterMemDBs(oldSchemas []*model.DBInfo) (schemas []*model.DBInfo) { +func (*Helper) FilterMemDBs(oldSchemas []*model.DBInfo) (schemas []*model.DBInfo) { for _, dbInfo := range oldSchemas { if util.IsMemDB(dbInfo.Name.L) { continue @@ -715,7 +715,7 @@ func (h *Helper) GetRegionsTableInfo(regionsInfo *RegionsInfo, schemas []*model. } // GetTablesInfoWithKeyRange returns a slice containing tableInfos with key ranges of all tables in schemas. -func (h *Helper) GetTablesInfoWithKeyRange(schemas []*model.DBInfo) []TableInfoWithKeyRange { +func (*Helper) GetTablesInfoWithKeyRange(schemas []*model.DBInfo) []TableInfoWithKeyRange { tables := []TableInfoWithKeyRange{} for _, db := range schemas { for _, table := range db.Tables { @@ -738,7 +738,7 @@ func (h *Helper) GetTablesInfoWithKeyRange(schemas []*model.DBInfo) []TableInfoW } // ParseRegionsTableInfos parses the tables or indices in regions according to key range. -func (h *Helper) ParseRegionsTableInfos(regionsInfo []*RegionInfo, tables []TableInfoWithKeyRange) map[int64][]TableInfo { +func (*Helper) ParseRegionsTableInfos(regionsInfo []*RegionInfo, tables []TableInfoWithKeyRange) map[int64][]TableInfo { tableInfos := make(map[int64][]TableInfo, len(regionsInfo)) if len(tables) == 0 || len(regionsInfo) == 0 { @@ -1166,7 +1166,7 @@ func GetTiFlashTableIDFromEndKey(endKey string) int64 { e, _ := hex.DecodeString(endKey) _, decodedEndKey, _ := codec.DecodeBytes(e, []byte{}) tableID := tablecodec.DecodeTableID(decodedEndKey) - tableID -= 1 + tableID-- return tableID } @@ -1195,7 +1195,7 @@ func ComputeTiFlashStatus(reader *bufio.Reader, regionReplica *map[int64]int) er if s == "" { continue } - realN += 1 + realN++ r, err := strconv.ParseInt(s, 10, 32) if err != nil { return errors.Trace(err) diff --git a/store/mockstore/BUILD.bazel b/store/mockstore/BUILD.bazel index 9d0ce8a6a181b..55ce6c638a879 100644 --- a/store/mockstore/BUILD.bazel +++ b/store/mockstore/BUILD.bazel @@ -33,6 +33,7 @@ go_test( "tikv_test.go", ], embed = [":mockstore"], + flaky = True, deps = [ "//config", "//kv", diff --git a/store/mockstore/mockcopr/BUILD.bazel b/store/mockstore/mockcopr/BUILD.bazel index 1b46f031d104c..27877695ac478 100644 --- a/store/mockstore/mockcopr/BUILD.bazel +++ b/store/mockstore/mockcopr/BUILD.bazel @@ -53,6 +53,7 @@ go_test( "main_test.go", ], embed = [":mockcopr"], + flaky = True, deps = [ "//domain", "//kv", diff --git a/store/mockstore/unistore/BUILD.bazel b/store/mockstore/unistore/BUILD.bazel index f1536201753f7..4f32365c80c39 100644 --- a/store/mockstore/unistore/BUILD.bazel +++ b/store/mockstore/unistore/BUILD.bazel @@ -46,6 +46,7 @@ go_test( "raw_handler_test.go", ], embed = [":unistore"], + flaky = True, deps = [ "//testkit/testsetup", "@com_github_pingcap_kvproto//pkg/kvrpcpb", diff --git a/store/mockstore/unistore/cophandler/BUILD.bazel b/store/mockstore/unistore/cophandler/BUILD.bazel index c28fd9d865518..bf8964155bf72 100644 --- a/store/mockstore/unistore/cophandler/BUILD.bazel +++ b/store/mockstore/unistore/cophandler/BUILD.bazel @@ -60,6 +60,7 @@ go_test( "main_test.go", ], embed = [":cophandler"], + flaky = True, deps = [ "//expression", "//kv", diff --git a/store/mockstore/unistore/lockstore/BUILD.bazel b/store/mockstore/unistore/lockstore/BUILD.bazel index 8fa2e907d2d77..214cd9050e210 100644 --- a/store/mockstore/unistore/lockstore/BUILD.bazel +++ b/store/mockstore/unistore/lockstore/BUILD.bazel @@ -24,6 +24,7 @@ go_test( "main_test.go", ], embed = [":lockstore"], + flaky = True, deps = [ "//testkit/testsetup", "@com_github_stretchr_testify//require", diff --git a/store/mockstore/unistore/lockstore/load_dump.go b/store/mockstore/unistore/lockstore/load_dump.go index 4f8e9acf46dff..85d16938baa0e 100644 --- a/store/mockstore/unistore/lockstore/load_dump.go +++ b/store/mockstore/unistore/lockstore/load_dump.go @@ -65,7 +65,7 @@ func (ls *MemStore) LoadFromFile(fileName string) (meta []byte, err error) { var endian = binary.LittleEndian -func (ls *MemStore) readItem(reader *bufio.Reader, buf []byte) ([]byte, error) { +func (*MemStore) readItem(reader *bufio.Reader, buf []byte) ([]byte, error) { lenBuf := make([]byte, 4) _, err := io.ReadFull(reader, lenBuf) if err != nil { @@ -83,7 +83,7 @@ func (ls *MemStore) readItem(reader *bufio.Reader, buf []byte) ([]byte, error) { return buf, nil } -func (ls *MemStore) writeItem(writer *bufio.Writer, data []byte) error { +func (*MemStore) writeItem(writer *bufio.Writer, data []byte) error { lenBuf := make([]byte, 4) endian.PutUint32(lenBuf, uint32(len(data))) _, err := writer.Write(lenBuf) diff --git a/store/mockstore/unistore/lockstore/lockstore.go b/store/mockstore/unistore/lockstore/lockstore.go index 02da0c06aed5a..1ae54ccecdb20 100644 --- a/store/mockstore/unistore/lockstore/lockstore.go +++ b/store/mockstore/unistore/lockstore/lockstore.go @@ -233,7 +233,7 @@ func (ls *MemStore) findLess(key []byte, allowEqual bool) (entry, bool) { // findSpliceForLevel returns (outBefore, outAfter) with outBefore.key < key <= outAfter.key. // The input "before" tells us where to start looking. // If we found a node with the same key, then we return true. -func (ls *MemStore) findSpliceForLevel(arena *arena, key []byte, before *node, level int) (*node, *node, bool) { +func (*MemStore) findSpliceForLevel(arena *arena, key []byte, before *node, level int) (*node, *node, bool) { for { // Assume before.key < key. nextAddr := before.getNextAddr(level) @@ -274,7 +274,7 @@ func (ls *MemStore) findLast() entry { } } -func (ls *MemStore) getNode(arena *arena, addr arenaAddr) *node { +func (*MemStore) getNode(arena *arena, addr arenaAddr) *node { data := arena.get(addr, nodeHeaderSize) return (*node)(unsafe.Pointer(&data[0])) } diff --git a/store/mockstore/unistore/pd/client.go b/store/mockstore/unistore/pd/client.go index 3ac364d5c0284..55547e9461899 100644 --- a/store/mockstore/unistore/pd/client.go +++ b/store/mockstore/unistore/pd/client.go @@ -211,8 +211,8 @@ func (c *client) switchLeader(addrs []string) error { return nil } -func (c *client) getMembers(ctx context.Context, url string) (*pdpb.GetMembersResponse, error) { - cc, err := c.getOrCreateConn(url) +func (c *client) getMembers(ctx context.Context, addr string) (*pdpb.GetMembersResponse, error) { + cc, err := c.getOrCreateConn(addr) if err != nil { return nil, err } @@ -466,7 +466,7 @@ func (c *client) GetStore(ctx context.Context, storeID uint64) (*metapb.Store, e return resp.Store, nil } -func (c *client) GetAllStores(ctx context.Context, opts ...pd.GetStoreOption) ([]*metapb.Store, error) { +func (c *client) GetAllStores(ctx context.Context, _ ...pd.GetStoreOption) ([]*metapb.Store, error) { var resp *pdpb.GetAllStoresResponse err := c.doRequest(ctx, func(ctx context.Context, client pdpb.PDClient) error { var err1 error @@ -503,7 +503,7 @@ func (c *client) GetClusterConfig(ctx context.Context) (*metapb.Cluster, error) return resp.Cluster, nil } -func (c *client) GetRegion(ctx context.Context, key []byte, opts ...pd.GetRegionOption) (*pd.Region, error) { +func (c *client) GetRegion(ctx context.Context, key []byte, _ ...pd.GetRegionOption) (*pd.Region, error) { var resp *pdpb.GetRegionResponse err := c.doRequest(ctx, func(ctx context.Context, client pdpb.PDClient) error { var err1 error @@ -530,7 +530,7 @@ func (c *client) GetRegion(ctx context.Context, key []byte, opts ...pd.GetRegion return r, nil } -func (c *client) GetRegionByID(ctx context.Context, regionID uint64, opts ...pd.GetRegionOption) (*pd.Region, error) { +func (c *client) GetRegionByID(ctx context.Context, regionID uint64, _ ...pd.GetRegionOption) (*pd.Region, error) { var resp *pdpb.GetRegionResponse err := c.doRequest(ctx, func(ctx context.Context, client pdpb.PDClient) error { var err1 error @@ -650,9 +650,9 @@ func (c *client) StoreHeartbeat(ctx context.Context, stats *pdpb.StoreStats) err return nil } -func (c *client) GetTS(ctx context.Context) (int64, int64, error) { +func (c *client) GetTS(ctx context.Context) (physical int64, logical int64, err error) { var resp *pdpb.TsoResponse - err := c.doRequest(ctx, func(ctx context.Context, client pdpb.PDClient) error { + err = c.doRequest(ctx, func(ctx context.Context, client pdpb.PDClient) error { tsoClient, err := client.Tso(ctx) if err != nil { return err diff --git a/store/mockstore/unistore/tikv/BUILD.bazel b/store/mockstore/unistore/tikv/BUILD.bazel index 926fd045d44f9..82456f7a50a09 100644 --- a/store/mockstore/unistore/tikv/BUILD.bazel +++ b/store/mockstore/unistore/tikv/BUILD.bazel @@ -67,6 +67,7 @@ go_test( "mvcc_test.go", ], embed = [":tikv"], + flaky = True, deps = [ "//store/mockstore/unistore/config", "//store/mockstore/unistore/lockstore", diff --git a/store/mockstore/unistore/tikv/dbreader/db_reader.go b/store/mockstore/unistore/tikv/dbreader/db_reader.go index 474c7bb6b58d1..23de917f66252 100644 --- a/store/mockstore/unistore/tikv/dbreader/db_reader.go +++ b/store/mockstore/unistore/tikv/dbreader/db_reader.go @@ -74,7 +74,7 @@ type DBReader struct { } // GetMvccInfoByKey fills MvccInfo reading committed keys from db -func (r *DBReader) GetMvccInfoByKey(key []byte, isRowKey bool, mvccInfo *kvrpcpb.MvccInfo) error { +func (r *DBReader) GetMvccInfoByKey(key []byte, _ bool, mvccInfo *kvrpcpb.MvccInfo) error { it := r.GetIter() it.SetAllVersions(true) for it.Seek(key); it.Valid(); it.Next() { diff --git a/store/mockstore/unistore/tikv/kverrors/errors.go b/store/mockstore/unistore/tikv/kverrors/errors.go index 7081b4a7f80c8..abaa681ed5a89 100644 --- a/store/mockstore/unistore/tikv/kverrors/errors.go +++ b/store/mockstore/unistore/tikv/kverrors/errors.go @@ -75,7 +75,7 @@ func (e ErrInvalidOp) Error() string { // committed lock. type ErrAlreadyCommitted uint64 -func (e ErrAlreadyCommitted) Error() string { +func (ErrAlreadyCommitted) Error() string { return "txn already committed" } @@ -84,7 +84,7 @@ type ErrKeyAlreadyExists struct { Key []byte } -func (e ErrKeyAlreadyExists) Error() string { +func (ErrKeyAlreadyExists) Error() string { return "key already exists" } @@ -96,7 +96,7 @@ type ErrDeadlock struct { WaitChain []*deadlockpb.WaitForEntry } -func (e ErrDeadlock) Error() string { +func (ErrDeadlock) Error() string { return "deadlock" } @@ -108,7 +108,7 @@ type ErrConflict struct { Key []byte } -func (e *ErrConflict) Error() string { +func (*ErrConflict) Error() string { return "write conflict" } @@ -120,7 +120,7 @@ type ErrCommitExpire struct { Key []byte } -func (e *ErrCommitExpire) Error() string { +func (*ErrCommitExpire) Error() string { return "commit expired" } @@ -130,7 +130,7 @@ type ErrTxnNotFound struct { PrimaryKey []byte } -func (e *ErrTxnNotFound) Error() string { +func (*ErrTxnNotFound) Error() string { return "txn not found" } diff --git a/store/mockstore/unistore/util/lockwaiter/BUILD.bazel b/store/mockstore/unistore/util/lockwaiter/BUILD.bazel index effbb268c1fc3..003b1957cca7f 100644 --- a/store/mockstore/unistore/util/lockwaiter/BUILD.bazel +++ b/store/mockstore/unistore/util/lockwaiter/BUILD.bazel @@ -21,6 +21,7 @@ go_test( "main_test.go", ], embed = [":lockwaiter"], + flaky = True, deps = [ "//store/mockstore/unistore/config", "//testkit/testsetup", diff --git a/structure/BUILD.bazel b/structure/BUILD.bazel index 49c3ef4c43053..cb019d87a2edc 100644 --- a/structure/BUILD.bazel +++ b/structure/BUILD.bazel @@ -27,6 +27,7 @@ go_test( "structure_test.go", ], embed = [":structure"], + flaky = True, deps = [ "//kv", "//parser/mysql", diff --git a/structure/hash.go b/structure/hash.go index 7a40172c98ff7..18983767c3001 100644 --- a/structure/hash.go +++ b/structure/hash.go @@ -49,7 +49,7 @@ func (t *TxStructure) HGet(key []byte, field []byte) ([]byte, error) { return value, errors.Trace(err) } -func (t *TxStructure) hashFieldIntegerVal(val int64) []byte { +func (*TxStructure) hashFieldIntegerVal(val int64) []byte { return []byte(strconv.FormatInt(val, 10)) } @@ -284,8 +284,7 @@ func (i *ReverseHashIterator) Value() []byte { } // Close Implements the Iterator Close. -func (i *ReverseHashIterator) Close() { -} +func (*ReverseHashIterator) Close() {} // NewHashReverseIter creates a reverse hash iterator. func NewHashReverseIter(t *TxStructure, key []byte) (*ReverseHashIterator, error) { diff --git a/table/table.go b/table/table.go index 775cb03bb6cf9..09dc61feb0fdc 100644 --- a/table/table.go +++ b/table/table.go @@ -242,6 +242,7 @@ type PartitionedTable interface { GetPartitionByRow(sessionctx.Context, []types.Datum) (PhysicalTable, error) GetAllPartitionIDs() []int64 GetPartitionColumnNames() []model.CIStr + CheckForExchangePartition(ctx sessionctx.Context, pi *model.PartitionInfo, r []types.Datum, pid int64) error } // TableFromMeta builds a table.Table from *model.TableInfo. diff --git a/table/tables/partition.go b/table/tables/partition.go index 9f84333213a82..89d3c02e4b559 100644 --- a/table/tables/partition.go +++ b/table/tables/partition.go @@ -247,12 +247,16 @@ func (item *btreeListColumnItem) Less(other btree.Item) bool { return item.key < other.(*btreeListColumnItem).key } +func lessBtreeListColumnItem(a, b *btreeListColumnItem) bool { + return a.key < b.key +} + // ForListColumnPruning is used for list columns partition pruning. type ForListColumnPruning struct { ExprCol *expression.Column valueTp *types.FieldType valueMap map[string]ListPartitionLocation - sorted *btree.BTree + sorted *btree.BTreeG[*btreeListColumnItem] // To deal with the location partition failure caused by inconsistent NewCollationEnabled values(see issue #32416). // The following fields are used to delay building valueMap. @@ -677,7 +681,7 @@ func (lp *ForListPruning) buildListColumnsPruner(ctx sessionctx.Context, tblInfo ExprCol: columns[idx], valueTp: &colInfo.FieldType, valueMap: make(map[string]ListPartitionLocation), - sorted: btree.New(btreeDegree), + sorted: btree.NewG[*btreeListColumnItem](btreeDegree, lessBtreeListColumnItem), } err := colPrune.buildPartitionValueMapAndSorted(p) if err != nil { @@ -891,8 +895,8 @@ func (lp *ForListColumnPruning) LocateRanges(sc *stmtctx.StatementContext, r *ra } locations := make([]ListPartitionLocation, 0, lp.sorted.Len()) - lp.sorted.AscendRange(newBtreeListColumnSearchItem(string(hack.String(lowKey))), newBtreeListColumnSearchItem(string(hack.String(highKey))), func(item btree.Item) bool { - locations = append(locations, item.(*btreeListColumnItem).location) + lp.sorted.AscendRange(newBtreeListColumnSearchItem(string(hack.String(lowKey))), newBtreeListColumnSearchItem(string(hack.String(highKey))), func(item *btreeListColumnItem) bool { + locations = append(locations, item.location) return true }) return locations, nil @@ -964,6 +968,17 @@ func PartitionRecordKey(pid int64, handle int64) kv.Key { return tablecodec.EncodeRecordKey(recordPrefix, kv.IntHandle(handle)) } +func (t *partitionedTable) CheckForExchangePartition(ctx sessionctx.Context, pi *model.PartitionInfo, r []types.Datum, pid int64) error { + defID, err := t.locatePartition(ctx, pi, r) + if err != nil { + return err + } + if defID != pid { + return errors.WithStack(table.ErrRowDoesNotMatchGivenPartitionSet) + } + return nil +} + // locatePartition returns the partition ID of the input record. func (t *partitionedTable) locatePartition(ctx sessionctx.Context, pi *model.PartitionInfo, r []types.Datum) (int64, error) { var err error diff --git a/table/temptable/BUILD.bazel b/table/temptable/BUILD.bazel index efeab02191b93..30c41bd1c55b3 100644 --- a/table/temptable/BUILD.bazel +++ b/table/temptable/BUILD.bazel @@ -30,12 +30,14 @@ go_library( go_test( name = "temptable_test", + timeout = "short", srcs = [ "ddl_test.go", "interceptor_test.go", "main_test.go", ], embed = [":temptable"], + flaky = True, deps = [ "//infoschema", "//kv", diff --git a/tablecodec/BUILD.bazel b/tablecodec/BUILD.bazel index 29b92a92d62f7..5752a60ddfdd1 100644 --- a/tablecodec/BUILD.bazel +++ b/tablecodec/BUILD.bazel @@ -26,12 +26,14 @@ go_library( go_test( name = "tablecodec_test", + timeout = "short", srcs = [ "bench_test.go", "main_test.go", "tablecodec_test.go", ], embed = [":tablecodec"], + flaky = True, deps = [ "//kv", "//parser/mysql", diff --git a/tablecodec/rowindexcodec/BUILD.bazel b/tablecodec/rowindexcodec/BUILD.bazel index 1956fbbf19933..7fcc37045b167 100644 --- a/tablecodec/rowindexcodec/BUILD.bazel +++ b/tablecodec/rowindexcodec/BUILD.bazel @@ -9,11 +9,13 @@ go_library( go_test( name = "rowindexcodec_test", + timeout = "short", srcs = [ "main_test.go", "rowindexcodec_test.go", ], embed = [":rowindexcodec"], + flaky = True, deps = [ "//testkit/testsetup", "@com_github_stretchr_testify//require", diff --git a/tablecodec/tablecodec.go b/tablecodec/tablecodec.go index 3db97ef11f9c0..df7f4d188efff 100644 --- a/tablecodec/tablecodec.go +++ b/tablecodec/tablecodec.go @@ -1203,7 +1203,7 @@ func TryGetCommonPkColumnRestoredIds(tbl *model.TableInfo) []int64 { } // GenIndexValueForClusteredIndexVersion1 generates the index value for the clustered index with version 1(New in v5.0.0). -func GenIndexValueForClusteredIndexVersion1(sc *stmtctx.StatementContext, tblInfo *model.TableInfo, idxInfo *model.IndexInfo, IdxValNeedRestoredData bool, distinct bool, untouched bool, indexedValues []types.Datum, h kv.Handle, partitionID int64, handleRestoredData []types.Datum) ([]byte, error) { +func GenIndexValueForClusteredIndexVersion1(sc *stmtctx.StatementContext, tblInfo *model.TableInfo, idxInfo *model.IndexInfo, idxValNeedRestoredData bool, distinct bool, untouched bool, indexedValues []types.Datum, h kv.Handle, partitionID int64, handleRestoredData []types.Datum) ([]byte, error) { idxVal := make([]byte, 0) idxVal = append(idxVal, 0) tailLen := 0 @@ -1217,7 +1217,7 @@ func GenIndexValueForClusteredIndexVersion1(sc *stmtctx.StatementContext, tblInf if idxInfo.Global { idxVal = encodePartitionID(idxVal, partitionID) } - if IdxValNeedRestoredData || len(handleRestoredData) > 0 { + if idxValNeedRestoredData || len(handleRestoredData) > 0 { colIds := make([]int64, 0, len(idxInfo.Columns)) allRestoredData := make([]types.Datum, 0, len(handleRestoredData)+len(idxInfo.Columns)) for i, idxCol := range idxInfo.Columns { @@ -1261,7 +1261,7 @@ func GenIndexValueForClusteredIndexVersion1(sc *stmtctx.StatementContext, tblInf } // genIndexValueVersion0 create index value for both local and global index. -func genIndexValueVersion0(sc *stmtctx.StatementContext, tblInfo *model.TableInfo, idxInfo *model.IndexInfo, IdxValNeedRestoredData bool, distinct bool, untouched bool, indexedValues []types.Datum, h kv.Handle, partitionID int64) ([]byte, error) { +func genIndexValueVersion0(sc *stmtctx.StatementContext, tblInfo *model.TableInfo, idxInfo *model.IndexInfo, idxValNeedRestoredData bool, distinct bool, untouched bool, indexedValues []types.Datum, h kv.Handle, partitionID int64) ([]byte, error) { idxVal := make([]byte, 0) idxVal = append(idxVal, 0) newEncode := false @@ -1274,7 +1274,7 @@ func genIndexValueVersion0(sc *stmtctx.StatementContext, tblInfo *model.TableInf idxVal = encodePartitionID(idxVal, partitionID) newEncode = true } - if IdxValNeedRestoredData { + if idxValNeedRestoredData { colIds := make([]int64, len(idxInfo.Columns)) for i, col := range idxInfo.Columns { colIds[i] = tblInfo.Columns[col.Offset].ID @@ -1303,7 +1303,7 @@ func genIndexValueVersion0(sc *stmtctx.StatementContext, tblInfo *model.TableInf // If index is untouched and fetch here means the key is exists in TiKV, but not in txn mem-buffer, // then should also write the untouched index key/value to mem-buffer to make sure the data // is consistent with the index in txn mem-buffer. - tailLen += 1 + tailLen++ idxVal = append(idxVal, kv.UnCommitIndexKVFlag) } idxVal[0] = byte(tailLen) diff --git a/telemetry/BUILD.bazel b/telemetry/BUILD.bazel index 66fc1c7a3631b..42762b19544ba 100644 --- a/telemetry/BUILD.bazel +++ b/telemetry/BUILD.bazel @@ -18,6 +18,7 @@ go_library( importpath = "github.com/pingcap/tidb/telemetry", visibility = ["//visibility:public"], deps = [ + "//br/pkg/utils", "//config", "//domain/infosync", "//infoschema", @@ -47,6 +48,7 @@ go_library( go_test( name = "telemetry_test", + timeout = "short", srcs = [ "data_cluster_hardware_test.go", "data_feature_usage_test.go", @@ -56,16 +58,24 @@ go_test( "util_test.go", ], embed = [":telemetry"], + flaky = True, deps = [ "//config", + "//ddl", + "//domain", + "//domain/infosync", "//kv", "//session", "//sessionctx", "//sessionctx/variable", + "//store/mockstore", + "//store/mockstore/unistore", "//testkit", "//testkit/testsetup", "@com_github_jeffail_gabs_v2//:gabs", + "@com_github_pingcap_kvproto//pkg/metapb", "@com_github_stretchr_testify//require", + "@com_github_tikv_client_go_v2//testutils", "@io_etcd_go_etcd_tests_v3//integration", "@org_uber_go_goleak//:goleak", ], diff --git a/telemetry/cte_test/BUILD.bazel b/telemetry/cte_test/BUILD.bazel index b73c62623079c..7236a4ce32559 100644 --- a/telemetry/cte_test/BUILD.bazel +++ b/telemetry/cte_test/BUILD.bazel @@ -2,7 +2,9 @@ load("@io_bazel_rules_go//go:def.bzl", "go_test") go_test( name = "cte_test_test", + timeout = "short", srcs = ["cte_test.go"], + flaky = True, deps = [ "//config", "//domain", diff --git a/telemetry/data.go b/telemetry/data.go index 49bac14ce69f8..0e357a897f356 100644 --- a/telemetry/data.go +++ b/telemetry/data.go @@ -48,7 +48,7 @@ func generateTelemetryData(sctx sessionctx.Context, trackingID string) telemetry if f, err := getFeatureUsage(ctx, sctx); err == nil { r.FeatureUsage = f } - if s, err := getSlowQueryStats(ctx, sctx); err == nil { + if s, err := getSlowQueryStats(); err == nil { r.SlowQueryStats = s } @@ -61,6 +61,13 @@ func postReportTelemetryData() { postReportTxnUsage() postReportCTEUsage() postReportMultiSchemaChangeUsage() + postReportTablePartitionUsage() postReportSlowQueryStats() postReportNonTransactionalCounter() + PostSavepointCount() +} + +// PostReportTelemetryDataForTest is for test. +func PostReportTelemetryDataForTest() { + postReportTablePartitionUsage() } diff --git a/telemetry/data_feature_usage.go b/telemetry/data_feature_usage.go index bc73153a84e15..d0a520907513f 100644 --- a/telemetry/data_feature_usage.go +++ b/telemetry/data_feature_usage.go @@ -18,6 +18,7 @@ import ( "context" "errors" + "github.com/pingcap/tidb/br/pkg/utils" "github.com/pingcap/tidb/config" "github.com/pingcap/tidb/infoschema" m "github.com/pingcap/tidb/metrics" @@ -47,6 +48,11 @@ type featureUsage struct { NonTransactionalUsage *m.NonTransactionalStmtCounter `json:"nonTransactional"` GlobalKill bool `json:"globalKill"` MultiSchemaChange *m.MultiSchemaChangeUsageCounter `json:"multiSchemaChange"` + TablePartition *m.TablePartitionUsageCounter `json:"tablePartition"` + TiFlashModeStatistics TiFlashModeStatistics `json:"TiFlashModeStatistics"` + LogBackup bool `json:"logBackup"` + EnablePaging bool `json:"enablePaging"` + EnableCostModelVer2 bool `json:"enableCostModelVer2"` } type placementPolicyUsage struct { @@ -73,6 +79,8 @@ func getFeatureUsage(ctx context.Context, sctx sessionctx.Context) (*featureUsag usage.MultiSchemaChange = getMultiSchemaChangeUsageInfo() + usage.TablePartition = getTablePartitionUsageInfo() + usage.AutoCapture = getAutoCaptureUsageInfo(sctx) collectFeatureUsageFromInfoschema(sctx, &usage) @@ -81,6 +89,14 @@ func getFeatureUsage(ctx context.Context, sctx sessionctx.Context) (*featureUsag usage.GlobalKill = getGlobalKillUsageInfo() + usage.TiFlashModeStatistics = getTiFlashModeStatistics(sctx) + + usage.LogBackup = getLogBackupUsageInfo(sctx) + + usage.EnablePaging = getPagingUsageInfo(sctx) + + usage.EnableCostModelVer2 = getCostModelVer2UsageInfo(sctx) + return &usage, nil } @@ -199,12 +215,15 @@ type TxnUsage struct { MutationCheckerUsed bool `json:"mutationCheckerUsed"` AssertionLevel string `json:"assertionLevel"` RcCheckTS bool `json:"rcCheckTS"` + SavepointCounter int64 `json:"SavepointCounter"` } var initialTxnCommitCounter metrics.TxnCommitCounter var initialCTECounter m.CTEUsageCounter var initialNonTransactionalCounter m.NonTransactionalStmtCounter var initialMultiSchemaChangeCounter m.MultiSchemaChangeUsageCounter +var initialTablePartitionCounter m.TablePartitionUsageCounter +var initialSavepointStmtCounter int64 // getTxnUsageInfo gets the usage info of transaction related features. It's exported for tests. func getTxnUsageInfo(ctx sessionctx.Context) *TxnUsage { @@ -230,7 +249,9 @@ func getTxnUsageInfo(ctx sessionctx.Context) *TxnUsage { if val, err := variable.GetGlobalSystemVar(ctx.GetSessionVars(), variable.TiDBRCReadCheckTS); err == nil { rcCheckTSUsed = val == variable.On } - return &TxnUsage{asyncCommitUsed, onePCUsed, diff, mutationCheckerUsed, assertionUsed, rcCheckTSUsed} + currSavepointCount := m.GetSavepointStmtCounter() + diffSavepointCount := currSavepointCount - initialSavepointStmtCounter + return &TxnUsage{asyncCommitUsed, onePCUsed, diff, mutationCheckerUsed, assertionUsed, rcCheckTSUsed, diffSavepointCount} } func postReportTxnUsage() { @@ -241,6 +262,11 @@ func postReportCTEUsage() { initialCTECounter = m.GetCTECounter() } +// PostSavepointCount exports for testing. +func PostSavepointCount() { + initialSavepointStmtCounter = m.GetSavepointStmtCounter() +} + // getCTEUsageInfo gets the CTE usages. func getCTEUsageInfo() *m.CTEUsageCounter { curr := m.GetCTECounter() @@ -258,6 +284,16 @@ func getMultiSchemaChangeUsageInfo() *m.MultiSchemaChangeUsageCounter { return &diff } +func postReportTablePartitionUsage() { + initialTablePartitionCounter = m.ResetTablePartitionCounter(initialTablePartitionCounter) +} + +func getTablePartitionUsageInfo() *m.TablePartitionUsageCounter { + curr := m.GetTablePartitionCounter() + diff := curr.Cal(initialTablePartitionCounter) + return &diff +} + // getAutoCaptureUsageInfo gets the 'Auto Capture' usage func getAutoCaptureUsageInfo(ctx sessionctx.Context) bool { if val, err := variable.GetGlobalSystemVar(ctx.GetSessionVars(), variable.TiDBCapturePlanBaseline); err == nil { @@ -279,3 +315,46 @@ func postReportNonTransactionalCounter() { func getGlobalKillUsageInfo() bool { return config.GetGlobalConfig().EnableGlobalKill } + +// TiFlashModeStatistics records the usage info of Fast Mode +type TiFlashModeStatistics struct { + FastModeTableCount int64 `json:"fast_mode_table_count"` + NormalModeTableCount int64 `json:"normal_mode_table_count"` + AllTableCount int64 `json:"all_table_count"` +} + +func getTiFlashModeStatistics(ctx sessionctx.Context) TiFlashModeStatistics { + is := GetDomainInfoSchema(ctx) + var fastModeTableCount int64 = 0 + var normalModeTableCount int64 = 0 + var allTableCount int64 = 0 + for _, dbInfo := range is.AllSchemas() { + for _, tbInfo := range is.SchemaTables(dbInfo.Name) { + allTableCount++ + if tbInfo.Meta().TiFlashReplica != nil { + if tbInfo.Meta().TiFlashMode == model.TiFlashModeFast { + fastModeTableCount++ + } else { + normalModeTableCount++ + } + } + } + } + + return TiFlashModeStatistics{FastModeTableCount: fastModeTableCount, NormalModeTableCount: normalModeTableCount, AllTableCount: allTableCount} +} + +func getLogBackupUsageInfo(ctx sessionctx.Context) bool { + return utils.CheckLogBackupEnabled(ctx) +} + +func getCostModelVer2UsageInfo(ctx sessionctx.Context) bool { + return ctx.GetSessionVars().CostModelVersion == 2 +} + +// getPagingUsageInfo gets the value of system variable `tidb_enable_paging`. +// This variable is set to true as default since v6.2.0. We want to know many +// users set it to false manually. +func getPagingUsageInfo(ctx sessionctx.Context) bool { + return ctx.GetSessionVars().EnablePaging +} diff --git a/telemetry/data_feature_usage_test.go b/telemetry/data_feature_usage_test.go index d89928bbcc19d..7924d3bc9eb38 100644 --- a/telemetry/data_feature_usage_test.go +++ b/telemetry/data_feature_usage_test.go @@ -17,12 +17,22 @@ package telemetry_test import ( "fmt" "testing" + "time" + "github.com/pingcap/kvproto/pkg/metapb" "github.com/pingcap/tidb/config" + "github.com/pingcap/tidb/ddl" + "github.com/pingcap/tidb/domain" + "github.com/pingcap/tidb/domain/infosync" + "github.com/pingcap/tidb/kv" + "github.com/pingcap/tidb/session" "github.com/pingcap/tidb/sessionctx/variable" + "github.com/pingcap/tidb/store/mockstore" + "github.com/pingcap/tidb/store/mockstore/unistore" "github.com/pingcap/tidb/telemetry" "github.com/pingcap/tidb/testkit" "github.com/stretchr/testify/require" + "github.com/tikv/client-go/v2/testutils" ) func TestTxnUsageInfo(t *testing.T) { @@ -161,6 +171,51 @@ func TestMultiSchemaChange(t *testing.T) { require.Equal(t, int64(2), usage.MultiSchemaChange.MultiSchemaChangeUsed) } +func TestTablePartition(t *testing.T) { + store, clean := testkit.CreateMockStore(t) + defer clean() + + tk := testkit.NewTestKit(t, store) + tk.MustExec("use test") + + usage, err := telemetry.GetFeatureUsage(tk.Session()) + require.NoError(t, err) + require.Equal(t, int64(0), usage.TablePartition.TablePartitionCnt) + require.Equal(t, int64(0), usage.TablePartition.TablePartitionListCnt) + require.Equal(t, int64(0), usage.TablePartition.TablePartitionMaxPartitionsCnt) + + tk.MustExec("drop table if exists pt") + tk.MustExec("create table pt (a int,b int) partition by hash(a) partitions 4") + + usage, err = telemetry.GetFeatureUsage(tk.Session()) + require.NoError(t, err) + require.Equal(t, int64(1), usage.TablePartition.TablePartitionCnt) + require.Equal(t, int64(1), usage.TablePartition.TablePartitionHashCnt) + require.Equal(t, int64(4), usage.TablePartition.TablePartitionMaxPartitionsCnt) + require.Equal(t, int64(0), usage.TablePartition.TablePartitionListCnt) + require.Equal(t, int64(0), usage.TablePartition.TablePartitionRangeCnt) + require.Equal(t, int64(0), usage.TablePartition.TablePartitionRangeColumnsCnt) + require.Equal(t, int64(0), usage.TablePartition.TablePartitionListColumnsCnt) + + telemetry.PostReportTelemetryDataForTest() + tk.MustExec("drop table if exists pt1") + tk.MustExec("create table pt1 (a int,b int) partition by range(a) (" + + "partition p0 values less than (3)," + + "partition p1 values less than (6), " + + "partition p2 values less than (9)," + + "partition p3 values less than (12)," + + "partition p4 values less than (15))") + usage, err = telemetry.GetFeatureUsage(tk.Session()) + require.NoError(t, err) + require.Equal(t, int64(1), usage.TablePartition.TablePartitionCnt) + require.Equal(t, int64(0), usage.TablePartition.TablePartitionHashCnt) + require.Equal(t, int64(5), usage.TablePartition.TablePartitionMaxPartitionsCnt) + require.Equal(t, int64(0), usage.TablePartition.TablePartitionListCnt) + require.Equal(t, int64(1), usage.TablePartition.TablePartitionRangeCnt) + require.Equal(t, int64(0), usage.TablePartition.TablePartitionRangeColumnsCnt) + require.Equal(t, int64(0), usage.TablePartition.TablePartitionListColumnsCnt) +} + func TestPlacementPolicies(t *testing.T) { store, clean := testkit.CreateMockStore(t) defer clean() @@ -279,3 +334,143 @@ func TestGlobalKillUsageInfo(t *testing.T) { require.NoError(t, err) require.False(t, usage.GlobalKill) } + +type tiflashContext struct { + store kv.Storage + dom *domain.Domain + tiflash *infosync.MockTiFlash + cluster *unistore.Cluster +} + +func createTiFlashContext(t *testing.T) (*tiflashContext, func()) { + s := &tiflashContext{} + var err error + + ddl.PollTiFlashInterval = 1000 * time.Millisecond + ddl.PullTiFlashPdTick.Store(60) + s.tiflash = infosync.NewMockTiFlash() + s.store, err = mockstore.NewMockStore( + mockstore.WithClusterInspector(func(c testutils.Cluster) { + mockCluster := c.(*unistore.Cluster) + _, _, region1 := mockstore.BootstrapWithSingleStore(c) + tiflashIdx := 0 + for tiflashIdx < 2 { + store2 := c.AllocID() + peer2 := c.AllocID() + addr2 := fmt.Sprintf("tiflash%d", tiflashIdx) + mockCluster.AddStore(store2, addr2, &metapb.StoreLabel{Key: "engine", Value: "tiflash"}) + mockCluster.AddPeer(region1, store2, peer2) + tiflashIdx++ + } + s.cluster = mockCluster + }), + mockstore.WithStoreType(mockstore.EmbedUnistore), + ) + + require.NoError(t, err) + session.SetSchemaLease(0) + session.DisableStats4Test() + s.dom, err = session.BootstrapSession(s.store) + infosync.SetMockTiFlash(s.tiflash) + require.NoError(t, err) + s.dom.SetStatsUpdating(true) + + tearDown := func() { + s.tiflash.Lock() + s.tiflash.StatusServer.Close() + s.tiflash.Unlock() + s.dom.Close() + require.NoError(t, s.store.Close()) + ddl.PollTiFlashInterval = 2 * time.Second + } + return s, tearDown +} + +func TestTiFlashModeStatistics(t *testing.T) { + s, teardown := createTiFlashContext(t) + defer teardown() + + tk := testkit.NewTestKit(t, s.store) + tk.MustExec("use test") + + usage, err := telemetry.GetFeatureUsage(tk.Session()) + require.NoError(t, err) + require.Equal(t, int64(0), usage.TiFlashModeStatistics.FastModeTableCount) + require.Equal(t, int64(0), usage.TiFlashModeStatistics.NormalModeTableCount) + + tk.MustExec(`create table t1(a int);`) + tk.MustExec(`alter table t1 set tiflash replica 1;`) + tk.MustExec(`alter table t1 set tiflash mode fast;`) + + tk.MustExec(`create table t2(a int);`) + tk.MustExec(`alter table t2 set tiflash replica 1;`) + tk.MustExec(`alter table t2 set tiflash mode normal;`) + + tk.MustExec(`create table t3(a int);`) + tk.MustExec(`alter table t3 set tiflash replica 1;`) + + tk.MustExec(`create table t4(a int);`) + + usage, err = telemetry.GetFeatureUsage(tk.Session()) + require.NoError(t, err) + require.Equal(t, int64(1), usage.TiFlashModeStatistics.FastModeTableCount) + require.Equal(t, int64(2), usage.TiFlashModeStatistics.NormalModeTableCount) + + tk.MustExec("drop table t1;") + tk.MustExec(`alter table t2 set tiflash mode fast;`) + + usage, err = telemetry.GetFeatureUsage(tk.Session()) + require.NoError(t, err) + require.Equal(t, int64(1), usage.TiFlashModeStatistics.FastModeTableCount) + require.Equal(t, int64(1), usage.TiFlashModeStatistics.NormalModeTableCount) +} + +func TestPagingUsageInfo(t *testing.T) { + store, clean := testkit.CreateMockStore(t) + defer clean() + + tk := testkit.NewTestKit(t, store) + usage, err := telemetry.GetFeatureUsage(tk.Session()) + require.NoError(t, err) + require.True(t, usage.EnablePaging == variable.DefTiDBEnablePaging) + + tk.Session().GetSessionVars().EnablePaging = false + usage, err = telemetry.GetFeatureUsage(tk.Session()) + require.NoError(t, err) + require.False(t, usage.EnablePaging) +} + +func TestCostModelVer2UsageInfo(t *testing.T) { + store, clean := testkit.CreateMockStore(t) + defer clean() + + tk := testkit.NewTestKit(t, store) + usage, err := telemetry.GetFeatureUsage(tk.Session()) + require.NoError(t, err) + require.False(t, usage.EnableCostModelVer2) + + tk.Session().GetSessionVars().CostModelVersion = 2 + usage, err = telemetry.GetFeatureUsage(tk.Session()) + require.NoError(t, err) + require.True(t, usage.EnableCostModelVer2) +} + +func TestTxnSavepointUsageInfo(t *testing.T) { + store, clean := testkit.CreateMockStore(t) + defer clean() + + tk := testkit.NewTestKit(t, store) + tk.MustExec("savepoint sp1") + tk.MustExec("savepoint sp2") + txnUsage := telemetry.GetTxnUsageInfo(tk.Session()) + require.Equal(t, int64(2), txnUsage.SavepointCounter) + + tk.MustExec("savepoint sp3") + txnUsage = telemetry.GetTxnUsageInfo(tk.Session()) + require.Equal(t, int64(3), txnUsage.SavepointCounter) + + telemetry.PostSavepointCount() + tk.MustExec("savepoint sp1") + txnUsage = telemetry.GetTxnUsageInfo(tk.Session()) + require.Equal(t, int64(1), txnUsage.SavepointCounter) +} diff --git a/telemetry/data_slow_query.go b/telemetry/data_slow_query.go index 7b1b9ef00d440..188e2b3a4b5f3 100644 --- a/telemetry/data_slow_query.go +++ b/telemetry/data_slow_query.go @@ -25,7 +25,6 @@ import ( pingcapErrors "github.com/pingcap/errors" "github.com/pingcap/tidb/domain/infosync" "github.com/pingcap/tidb/parser/mysql" - "github.com/pingcap/tidb/sessionctx" "github.com/pingcap/tidb/util/logutil" pmodel "github.com/prometheus/common/model" "go.uber.org/zap" @@ -62,8 +61,8 @@ var ( slowQueryLock sync.Mutex ) -func getSlowQueryStats(ctx context.Context, sctx sessionctx.Context) (*slowQueryStats, error) { - slowQueryBucket, err := getSlowQueryBucket(sctx) +func getSlowQueryStats() (*slowQueryStats, error) { + slowQueryBucket, err := getSlowQueryBucket() if err != nil { logutil.BgLogger().Info(err.Error()) return nil, err @@ -73,9 +72,9 @@ func getSlowQueryStats(ctx context.Context, sctx sessionctx.Context) (*slowQuery } // getSlowQueryBucket generates the delta SlowQueryBucket to report -func getSlowQueryBucket(sctx sessionctx.Context) (*SlowQueryBucket, error) { +func getSlowQueryBucket() (*SlowQueryBucket, error) { // update currentSQBInfo first, then gen delta - if err := updateCurrentSQB(sctx); err != nil { + if err := updateCurrentSQB(); err != nil { return nil, err } delta := calculateDeltaSQB() @@ -83,7 +82,7 @@ func getSlowQueryBucket(sctx sessionctx.Context) (*SlowQueryBucket, error) { } // updateCurrentSQB records current slow query buckets -func updateCurrentSQB(sctx sessionctx.Context) (err error) { +func updateCurrentSQB() (err error) { defer func() { if r := recover(); r != nil { err = pingcapErrors.Errorf(fmt.Sprintln(r)) diff --git a/telemetry/data_window.go b/telemetry/data_window.go index 0945326075083..4bee9522fde56 100644 --- a/telemetry/data_window.go +++ b/telemetry/data_window.go @@ -159,14 +159,14 @@ func getSQLSum(sqlTypeData *sqlType) uint64 { return result } -func readSQLMetric(timepoint time.Time, SQLResult *sqlUsageData) error { +func readSQLMetric(timepoint time.Time, sqlResult *sqlUsageData) error { ctx := context.TODO() promQL := "avg(tidb_executor_statement_total{}) by (type)" result, err := querySQLMetric(ctx, timepoint, promQL) if err != nil { return err } - analysisSQLUsage(result, SQLResult) + analysisSQLUsage(result, sqlResult) return nil } @@ -204,17 +204,16 @@ func querySQLMetric(ctx context.Context, queryTime time.Time, promQL string) (re return result, err } -func analysisSQLUsage(promResult pmodel.Value, SQLResult *sqlUsageData) { +func analysisSQLUsage(promResult pmodel.Value, sqlResult *sqlUsageData) { if promResult == nil { return } - switch promResult.Type() { - case pmodel.ValVector: + if promResult.Type() == pmodel.ValVector { matrix := promResult.(pmodel.Vector) for _, m := range matrix { v := m.Value promLable := string(m.Metric[pmodel.LabelName("type")]) - SQLResult.SQLType[promLable] = uint64(v) + sqlResult.SQLType[promLable] = uint64(v) } } } diff --git a/telemetry/util.go b/telemetry/util.go index bdbe8816201fc..0ac56649662c5 100644 --- a/telemetry/util.go +++ b/telemetry/util.go @@ -34,7 +34,7 @@ func hashString(text string) (string, error) { } // parseAddressAndHash parses an address in HOST:PORT format, returns the hashed host and the port. -func parseAddressAndHash(address string) (string, string, error) { +func parseAddressAndHash(address string) (result string, portName string, err error) { var host, port string if !strings.Contains(address, ":") { host = address diff --git a/testkit/testfork/BUILD.bazel b/testkit/testfork/BUILD.bazel index 89d1e33ac65a5..3b86fb06185e1 100644 --- a/testkit/testfork/BUILD.bazel +++ b/testkit/testfork/BUILD.bazel @@ -13,7 +13,9 @@ go_library( go_test( name = "testfork_test", + timeout = "short", srcs = ["fork_test.go"], embed = [":testfork"], + flaky = True, deps = ["@com_github_stretchr_testify//require"], ) diff --git a/testkit/testkit.go b/testkit/testkit.go index 912b5292dad10..4b47dd61f4b96 100644 --- a/testkit/testkit.go +++ b/testkit/testkit.go @@ -186,6 +186,28 @@ func (tk *TestKit) HasPlan(sql string, plan string, args ...interface{}) bool { return false } +// HasKeywordInOperatorInfo checks if the result execution plan contains specific keyword in the operator info. +func (tk *TestKit) HasKeywordInOperatorInfo(sql string, keyword string, args ...interface{}) bool { + rs := tk.MustQuery("explain "+sql, args...) + for i := range rs.rows { + if strings.Contains(rs.rows[i][4], keyword) { + return true + } + } + return false +} + +// NotHasKeywordInOperatorInfo checks if the result execution plan doesn't contain specific keyword in the operator info. +func (tk *TestKit) NotHasKeywordInOperatorInfo(sql string, keyword string, args ...interface{}) bool { + rs := tk.MustQuery("explain "+sql, args...) + for i := range rs.rows { + if strings.Contains(rs.rows[i][4], keyword) { + return false + } + } + return true +} + // HasPlan4ExplainFor checks if the result execution plan contains specific plan. func (tk *TestKit) HasPlan4ExplainFor(result *Result, plan string) bool { for i := range result.rows { diff --git a/testkit/testutil/BUILD.bazel b/testkit/testutil/BUILD.bazel index 2e167c384deda..dd662dc0aa80f 100644 --- a/testkit/testutil/BUILD.bazel +++ b/testkit/testutil/BUILD.bazel @@ -22,8 +22,10 @@ go_library( go_test( name = "testutil_test", + timeout = "short", srcs = ["require_test.go"], embed = [":testutil"], + flaky = True, deps = [ "@com_github_stretchr_testify//require", "@org_uber_go_goleak//:goleak", diff --git a/tests/globalkilltest/BUILD.bazel b/tests/globalkilltest/BUILD.bazel index d0f55d977c3f3..e196895ad30dc 100644 --- a/tests/globalkilltest/BUILD.bazel +++ b/tests/globalkilltest/BUILD.bazel @@ -6,6 +6,7 @@ go_test( "global_kill_test.go", "main_test.go", ], + flaky = True, deps = [ "//testkit/testsetup", "//util/logutil", diff --git a/tests/graceshutdown/BUILD.bazel b/tests/graceshutdown/BUILD.bazel index 591cb817fc158..ad76c7ab79e12 100644 --- a/tests/graceshutdown/BUILD.bazel +++ b/tests/graceshutdown/BUILD.bazel @@ -6,6 +6,7 @@ go_test( "graceshutdown_test.go", "main_test.go", ], + flaky = True, deps = [ "//testkit/testsetup", "@com_github_go_sql_driver_mysql//:mysql", diff --git a/tests/readonlytest/BUILD.bazel b/tests/readonlytest/BUILD.bazel index 3561b8cbdc805..0902001c26220 100644 --- a/tests/readonlytest/BUILD.bazel +++ b/tests/readonlytest/BUILD.bazel @@ -6,6 +6,7 @@ go_test( "main_test.go", "readonly_test.go", ], + flaky = True, deps = [ "//testkit/testsetup", "@com_github_go_sql_driver_mysql//:mysql", diff --git a/tests/readonlytest/readonly_test.go b/tests/readonlytest/readonly_test.go index bf2f267531788..dee5ff29196ea 100644 --- a/tests/readonlytest/readonly_test.go +++ b/tests/readonlytest/readonly_test.go @@ -64,7 +64,7 @@ func setVariableNoError(t *testing.T, db *sql.DB, variable string, status int) { require.NoError(t, err) } -func setVariable(t *testing.T, db *sql.DB, variable string, status int) error { +func setVariable(_ *testing.T, db *sql.DB, variable string, status int) error { _, err := db.Exec(fmt.Sprintf("set global %s=%d", variable, status)) return err } diff --git a/tests/realtikvtest/brietest/BUILD.bazel b/tests/realtikvtest/brietest/BUILD.bazel index dc4d8f961044c..637b0b97d026d 100644 --- a/tests/realtikvtest/brietest/BUILD.bazel +++ b/tests/realtikvtest/brietest/BUILD.bazel @@ -2,11 +2,13 @@ load("@io_bazel_rules_go//go:def.bzl", "go_test") go_test( name = "brietest_test", + timeout = "short", srcs = [ "backup_restore_test.go", "binlog_test.go", "main_test.go", ], + flaky = True, deps = [ "//config", "//parser/mysql", diff --git a/tests/realtikvtest/pessimistictest/BUILD.bazel b/tests/realtikvtest/pessimistictest/BUILD.bazel index 4e24498c34a4f..4308d0e931f5d 100644 --- a/tests/realtikvtest/pessimistictest/BUILD.bazel +++ b/tests/realtikvtest/pessimistictest/BUILD.bazel @@ -2,10 +2,12 @@ load("@io_bazel_rules_go//go:def.bzl", "go_test") go_test( name = "pessimistictest_test", + timeout = "short", srcs = [ "main_test.go", "pessimistic_test.go", ], + flaky = True, deps = [ "//config", "//domain", diff --git a/tests/realtikvtest/sessiontest/BUILD.bazel b/tests/realtikvtest/sessiontest/BUILD.bazel index 1f7df628a05d9..25319ceafe3b4 100644 --- a/tests/realtikvtest/sessiontest/BUILD.bazel +++ b/tests/realtikvtest/sessiontest/BUILD.bazel @@ -5,6 +5,7 @@ go_test( timeout = "short", srcs = [ "main_test.go", + "paging_test.go", "retry_test.go", "session_fail_test.go", "session_test.go", diff --git a/tests/realtikvtest/sessiontest/paging_test.go b/tests/realtikvtest/sessiontest/paging_test.go new file mode 100644 index 0000000000000..0266534d8226b --- /dev/null +++ b/tests/realtikvtest/sessiontest/paging_test.go @@ -0,0 +1,105 @@ +// Copyright 2022 PingCAP, Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package sessiontest + +import ( + "fmt" + "math/rand" + "strconv" + "strings" + "testing" + + "github.com/pingcap/tidb/config" + "github.com/pingcap/tidb/testkit" + "github.com/pingcap/tidb/tests/realtikvtest" + "github.com/stretchr/testify/require" +) + +func TestPagingActRowsAndProcessKeys(t *testing.T) { + // Close copr-cache + defer config.RestoreFunc() + config.UpdateGlobal(func(conf *config.Config) { + conf.TiKVClient.CoprCache.CapacityMB = 0 + }) + + store, clean := realtikvtest.CreateMockStoreAndSetup(t) + defer clean() + session := testkit.NewTestKit(t, store) + session.MustExec("use test;") + session.MustExec("drop table if exists t;") + session.MustExec(`set @@tidb_wait_split_region_finish=1`) + session.MustExec("create table t(a int,b int,c int,index idx(a,b), primary key(a));") + // prepare data, insert 10w record + // [0, 999999] + for i := 0; i < 100; i++ { + sql := "insert into t value" + for j := 0; j < 1000; j++ { + if j != 0 { + sql += "," + } + sql += "(" + strconv.Itoa(i*1000+j) + "," + strconv.Itoa(i*1000+j) + "," + strconv.Itoa(i*1000+j) + ")" + } + session.MustExec(sql) + } + + testcase := []struct { + regionNumLowerBound int32 + regionNumUpperBound int32 + }{ + {10, 100}, // [10, 99] + {100, 500}, // [100,499] + {500, 1000}, // [500,999] + {1000, 1001}, // 1000 + } + + openOrClosePaging := []string{ + "set tidb_enable_paging = on;", + "set tidb_enable_paging = off;", + } + + sqls := []string{ + "desc analyze select a,b from t;", // TableScan + "desc analyze select /*+ use_index(t,idx) */ a,b from t;", // IndexScan + "desc analyze select /*+ use_index(t,idx) */ c from t;", // IndexLookUp + } + + checkScanOperator := func(strs []interface{}) { + require.Equal(t, strs[2].(string), "100000") + if *realtikvtest.WithRealTiKV { // Unistore don't collect process_keys now + require.True(t, strings.Contains(strs[5].(string), "total_process_keys: 100000"), strs[5]) + } + } + + checkResult := func(result [][]interface{}) { + for _, strs := range result { + if strings.Contains(strs[0].(string), "Scan") { + checkScanOperator(strs) + } + } + } + + for _, tc := range testcase { + regionNum := rand.Int31n(tc.regionNumUpperBound-tc.regionNumLowerBound) + tc.regionNumLowerBound + _ = session.MustQuery(fmt.Sprintf("split table t between (0) and (1000000) regions %v;", regionNum)) + _ = session.MustQuery(fmt.Sprintf("split table t index idx between (0) and (1000000) regions %v;", regionNum)) + for _, sql := range sqls { + for _, pagingSQL := range openOrClosePaging { + session.MustExec(pagingSQL) + rows := session.MustQuery(sql) + checkResult(rows.Rows()) + } + } + } +} diff --git a/tests/realtikvtest/sessiontest/session_test.go b/tests/realtikvtest/sessiontest/session_test.go index 33a36053dedb8..ffb52d4f2eb2b 100644 --- a/tests/realtikvtest/sessiontest/session_test.go +++ b/tests/realtikvtest/sessiontest/session_test.go @@ -1373,7 +1373,8 @@ func TestCoprocessorOOMAction(t *testing.T) { store, clean := realtikvtest.CreateMockStoreAndSetup(t) defer clean() tk := testkit.NewTestKit(t, store) - tk.MustExec("use test") + tk.MustExec("create database testoom") + tk.MustExec("use testoom") tk.MustExec(`set @@tidb_wait_split_region_finish=1`) // create table for non keep-order case tk.MustExec("drop table if exists t5") @@ -1414,7 +1415,7 @@ func TestCoprocessorOOMAction(t *testing.T) { quota := 5*copr.MockResponseSizeForTest - 100 defer tk.MustExec("SET GLOBAL tidb_mem_oom_action = DEFAULT") tk.MustExec("SET GLOBAL tidb_mem_oom_action='CANCEL'") - tk.MustExec("use test") + tk.MustExec("use testoom") tk.MustExec("set @@tidb_distsql_scan_concurrency = 10") tk.MustExec(fmt.Sprintf("set @@tidb_mem_quota_query=%v;", quota)) var expect []string @@ -1429,7 +1430,7 @@ func TestCoprocessorOOMAction(t *testing.T) { disableOOM := func(tk *testkit.TestKit, name, sql string) { t.Logf("disable OOM, testcase: %v", name) quota := 5*copr.MockResponseSizeForTest - 100 - tk.MustExec("use test") + tk.MustExec("use testoom") tk.MustExec("set @@tidb_distsql_scan_concurrency = 10") tk.MustExec(fmt.Sprintf("set @@tidb_mem_quota_query=%v;", quota)) err := tk.QueryToErr(sql) @@ -1451,7 +1452,7 @@ func TestCoprocessorOOMAction(t *testing.T) { se.Close() } globaltk := testkit.NewTestKit(t, store) - globaltk.MustExec("use test") + globaltk.MustExec("use testoom") globaltk.MustExec("set global tidb_enable_rate_limit_action= 0") for _, testcase := range testcases { se, err := session.CreateSession4Test(store) @@ -1476,7 +1477,7 @@ func TestCoprocessorOOMAction(t *testing.T) { se, err := session.CreateSession4Test(store) require.NoError(t, err) tk.SetSession(se) - tk.MustExec("use test") + tk.MustExec("use testoom") tk.MustExec("set tidb_distsql_scan_concurrency = 1") tk.MustExec("set @@tidb_mem_quota_query=1;") err = tk.QueryToErr(testcase.sql) diff --git a/tests/realtikvtest/statisticstest/BUILD.bazel b/tests/realtikvtest/statisticstest/BUILD.bazel index 0baa43e00be64..272733e401d89 100644 --- a/tests/realtikvtest/statisticstest/BUILD.bazel +++ b/tests/realtikvtest/statisticstest/BUILD.bazel @@ -2,10 +2,12 @@ load("@io_bazel_rules_go//go:def.bzl", "go_test") go_test( name = "statisticstest_test", + timeout = "short", srcs = [ "main_test.go", "statistics_test.go", ], + flaky = True, deps = [ "//statistics/handle", "//testkit", diff --git a/tests/realtikvtest/testkit.go b/tests/realtikvtest/testkit.go index 501fafcd3e6ec..a50dd5ef0d85a 100644 --- a/tests/realtikvtest/testkit.go +++ b/tests/realtikvtest/testkit.go @@ -46,7 +46,7 @@ var WithRealTiKV = flag.Bool("with-real-tikv", false, "whether tests run with re func RunTestMain(m *testing.M) { testsetup.SetupForCommonTest() flag.Parse() - session.SetSchemaLease(20 * time.Millisecond) + session.SetSchemaLease(5 * time.Second) config.UpdateGlobal(func(conf *config.Config) { conf.TiKVClient.AsyncCommit.SafeWindow = 0 conf.TiKVClient.AsyncCommit.AllowedClockDrift = 0 diff --git a/tests/realtikvtest/txntest/BUILD.bazel b/tests/realtikvtest/txntest/BUILD.bazel index fd7e9fbdb3753..e415136f121cb 100644 --- a/tests/realtikvtest/txntest/BUILD.bazel +++ b/tests/realtikvtest/txntest/BUILD.bazel @@ -2,12 +2,14 @@ load("@io_bazel_rules_go//go:def.bzl", "go_test") go_test( name = "txntest_test", + timeout = "short", srcs = [ "isolation_test.go", "main_test.go", "txn_state_test.go", "txn_test.go", ], + flaky = True, deps = [ "//kv", "//parser", diff --git a/tidb-binlog/driver/reader/BUILD.bazel b/tidb-binlog/driver/reader/BUILD.bazel index 11fd71c2dec51..32f271d627085 100644 --- a/tidb-binlog/driver/reader/BUILD.bazel +++ b/tidb-binlog/driver/reader/BUILD.bazel @@ -19,8 +19,10 @@ go_library( go_test( name = "reader_test", + timeout = "short", srcs = ["offset_test.go"], embed = [":reader"], + flaky = True, deps = [ "//tidb-binlog/proto/go-binlog", "@com_github_shopify_sarama//:sarama", diff --git a/tidb-binlog/node/BUILD.bazel b/tidb-binlog/node/BUILD.bazel index 4ab911cebb865..01c2669bbb640 100644 --- a/tidb-binlog/node/BUILD.bazel +++ b/tidb-binlog/node/BUILD.bazel @@ -20,8 +20,10 @@ go_library( go_test( name = "node_test", + timeout = "short", srcs = ["registry_test.go"], embed = [":node"], + flaky = True, deps = [ "//util/etcd", "@com_github_stretchr_testify//require", diff --git a/tidb-binlog/node/registry.go b/tidb-binlog/node/registry.go index 9ef55d3061318..5d7d07acb2044 100644 --- a/tidb-binlog/node/registry.go +++ b/tidb-binlog/node/registry.go @@ -48,7 +48,7 @@ func (r *EtcdRegistry) Close() error { return errors.Trace(err) } -func (r *EtcdRegistry) prefixed(p ...string) string { +func (*EtcdRegistry) prefixed(p ...string) string { return path.Join(p...) } @@ -173,15 +173,14 @@ func AnalyzeNodeID(key string) string { paths := strings.Split(key, "/") nodeIDOffset := 3 - if len(paths) >= 2 { - // version string start with 'v' - if !strings.HasPrefix(paths[1], "v") { - nodeIDOffset = 2 - } - } else { + if len(paths) < 2 { log.Error("can't get nodeID or node type", zap.String("key", key)) return "" } + // version string start with 'v' + if !strings.HasPrefix(paths[1], "v") { + nodeIDOffset = 2 + } if len(paths) < nodeIDOffset+1 { log.Error("can't get nodeID or node type", zap.String("key", key)) diff --git a/tidb-binlog/pump_client/BUILD.bazel b/tidb-binlog/pump_client/BUILD.bazel index 9063cb7e95a07..ad98822adaf5b 100644 --- a/tidb-binlog/pump_client/BUILD.bazel +++ b/tidb-binlog/pump_client/BUILD.bazel @@ -28,11 +28,13 @@ go_library( go_test( name = "pump_client_test", + timeout = "short", srcs = [ "bench_test.go", "client_test.go", ], embed = [":pump_client"], + flaky = True, deps = [ "//tidb-binlog/node", "@com_github_pingcap_errors//:errors", diff --git a/tidb-binlog/pump_client/client.go b/tidb-binlog/pump_client/client.go index 1ef701973b9e3..59c21f9ef76ec 100644 --- a/tidb-binlog/pump_client/client.go +++ b/tidb-binlog/pump_client/client.go @@ -214,13 +214,13 @@ func NewLocalPumpsClient(etcdURLs, binlogSocket string, timeout time.Duration, s Security: security, binlogSocket: binlogSocket, } - newPumpsClient.getLocalPumpStatus(ctx) + newPumpsClient.syncLocalPumpStatus(ctx) return newPumpsClient, nil } -// getLocalPumpStatus gets the local pump. For compatible with kafka version tidb-binlog. -func (c *PumpsClient) getLocalPumpStatus(pctx context.Context) { +// getLocalPumpStatus sync the local pump. For compatible with kafka version tidb-binlog. +func (c *PumpsClient) syncLocalPumpStatus(_ context.Context) { nodeStatus := &node.Status{ NodeID: localPump, Addr: c.binlogSocket, @@ -326,7 +326,7 @@ func (c *PumpsClient) WriteBinlog(binlog *pb.Binlog) error { } log.Info("[pumps client] write binlog to available pumps all failed, will try unavailable pumps") - pump, err1 := c.backoffWriteBinlog(req, binlog.Tp, binlog.StartTs) + pump, err1 := c.backoffWriteBinlog(req, binlog.Tp) if err1 == nil { choosePump = pump return nil @@ -337,7 +337,7 @@ func (c *PumpsClient) WriteBinlog(binlog *pb.Binlog) error { // Return directly for non p-binlog. // Try every online pump for p-binlog. -func (c *PumpsClient) backoffWriteBinlog(req *pb.WriteBinlogReq, binlogType pb.BinlogType, startTS int64) (pump *PumpStatus, err error) { +func (c *PumpsClient) backoffWriteBinlog(req *pb.WriteBinlogReq, binlogType pb.BinlogType) (pump *PumpStatus, err error) { if binlogType != pb.BinlogType_Prewrite { // never return error for commit/rollback binlog. return nil, nil @@ -428,7 +428,6 @@ func (c *PumpsClient) addPump(pump *PumpStatus, updateSelector bool) { if updateSelector { c.Selector.SetPumps(copyPumps(c.Pumps.AvaliablePumps)) } - } // SetSelectStrategy sets the selector's strategy, strategy should be 'range' or 'hash' now. diff --git a/tidb-binlog/pump_client/pump.go b/tidb-binlog/pump_client/pump.go index a03d5a307b31c..82fa48da92da2 100644 --- a/tidb-binlog/pump_client/pump.go +++ b/tidb-binlog/pump_client/pump.go @@ -182,5 +182,4 @@ func (p *PumpStatus) IsUsable() bool { // ShouldBeUsable returns true if pump should be usable func (p *PumpStatus) ShouldBeUsable() bool { return p.Status.State == node.Online - } diff --git a/tidb-binlog/pump_client/selector.go b/tidb-binlog/pump_client/selector.go index f687049c69974..af879ab27330d 100644 --- a/tidb-binlog/pump_client/selector.go +++ b/tidb-binlog/pump_client/selector.go @@ -102,7 +102,7 @@ func (h *HashSelector) Select(binlog *pb.Binlog, retryTime int) *PumpStatus { } // Feedback implement PumpSelector.Feedback -func (h *HashSelector) Feedback(startTS int64, binlogType pb.BinlogType, pump *PumpStatus) { +func (*HashSelector) Feedback(startTS int64, binlogType pb.BinlogType, pump *PumpStatus) { maintainTSMap(startTS, binlogType, pump) } @@ -132,7 +132,7 @@ func (r *RangeSelector) SetPumps(pumps []*PumpStatus) { } // Select implement PumpSelector.Select. -func (r *RangeSelector) Select(binlog *pb.Binlog, retryTime int) *PumpStatus { +func (r *RangeSelector) Select(binlog *pb.Binlog, _ int) *PumpStatus { // TODO: use status' label to match suitable pump. selectorLock.Lock() defer selectorLock.Unlock() @@ -163,7 +163,7 @@ func (r *RangeSelector) Select(binlog *pb.Binlog, retryTime int) *PumpStatus { } // Feedback implement PumpSelector.Select -func (r *RangeSelector) Feedback(startTS int64, binlogType pb.BinlogType, pump *PumpStatus) { +func (*RangeSelector) Feedback(startTS int64, binlogType pb.BinlogType, pump *PumpStatus) { maintainTSMap(startTS, binlogType, pump) } @@ -190,7 +190,7 @@ func (u *LocalUnixSelector) SetPumps(pumps []*PumpStatus) { } // Select implement PumpSelector.Select. -func (u *LocalUnixSelector) Select(binlog *pb.Binlog, retryTime int) *PumpStatus { +func (u *LocalUnixSelector) Select(_ *pb.Binlog, _ int) *PumpStatus { selectorLock.RLock() defer selectorLock.RUnlock() @@ -198,8 +198,7 @@ func (u *LocalUnixSelector) Select(binlog *pb.Binlog, retryTime int) *PumpStatus } // Feedback implement PumpSelector.Feedback -func (u *LocalUnixSelector) Feedback(startTS int64, binlogType pb.BinlogType, pump *PumpStatus) { -} +func (*LocalUnixSelector) Feedback(_ int64, _ pb.BinlogType, _ *PumpStatus) {} // ScoreSelector select a pump by pump's score. type ScoreSelector struct{} @@ -210,18 +209,18 @@ func NewScoreSelector() PumpSelector { } // SetPumps implement PumpSelector.SetPumps. -func (s *ScoreSelector) SetPumps(pumps []*PumpStatus) { +func (*ScoreSelector) SetPumps(_ []*PumpStatus) { // TODO } // Select implement PumpSelector.Select. -func (s *ScoreSelector) Select(binlog *pb.Binlog, retryTime int) *PumpStatus { +func (*ScoreSelector) Select(_ *pb.Binlog, _ int) *PumpStatus { // TODO return nil } // Feedback implement PumpSelector.Feedback -func (s *ScoreSelector) Feedback(startTS int64, binlogType pb.BinlogType, pump *PumpStatus) { +func (*ScoreSelector) Feedback(_ int64, _ pb.BinlogType, _ *PumpStatus) { // TODO } diff --git a/tidb-server/BUILD.bazel b/tidb-server/BUILD.bazel index ad6526d69138e..f84d1e2457a30 100644 --- a/tidb-server/BUILD.bazel +++ b/tidb-server/BUILD.bazel @@ -10,6 +10,7 @@ go_library( "//config", "//ddl", "//domain", + "//domain/infosync", "//executor", "//kv", "//metrics", @@ -46,6 +47,7 @@ go_library( "//util/systimemon", "//util/topsql", "//util/versioninfo", + "@com_github_coreos_go_semver//semver", "@com_github_opentracing_opentracing_go//:opentracing-go", "@com_github_pingcap_errors//:errors", "@com_github_pingcap_failpoint//:failpoint", @@ -85,8 +87,10 @@ go_binary( go_test( name = "tidb-server_test", + timeout = "short", srcs = ["main_test.go"], embed = [":tidb-server_lib"], + flaky = True, deps = [ "//config", "//parser/mysql", diff --git a/tidb-server/main.go b/tidb-server/main.go index 48710fa8a42f5..5a4ef5b62fae2 100644 --- a/tidb-server/main.go +++ b/tidb-server/main.go @@ -26,6 +26,7 @@ import ( "sync/atomic" "time" + "github.com/coreos/go-semver/semver" "github.com/opentracing/opentracing-go" "github.com/pingcap/errors" "github.com/pingcap/failpoint" @@ -34,6 +35,7 @@ import ( "github.com/pingcap/tidb/config" "github.com/pingcap/tidb/ddl" "github.com/pingcap/tidb/domain" + "github.com/pingcap/tidb/domain/infosync" "github.com/pingcap/tidb/executor" "github.com/pingcap/tidb/kv" "github.com/pingcap/tidb/metrics" @@ -297,6 +299,8 @@ func createStoreAndDomain() (kv.Storage, *domain.Domain) { var err error storage, err := kvstore.New(fullPath) terror.MustNil(err) + err = infosync.CheckTiKVVersion(storage, *semver.New(versioninfo.TiKVMinVersion)) + terror.MustNil(err) // Bootstrap a session to load information schema. dom, err := session.BootstrapSession(storage) terror.MustNil(err) diff --git a/tools/check/ut.go b/tools/check/ut.go index 45b969360d245..abef09e5b155d 100644 --- a/tools/check/ut.go +++ b/tools/check/ut.go @@ -20,10 +20,12 @@ import ( "encoding/xml" "fmt" "io" + "log" "math/rand" "os" "os/exec" "path" + "path/filepath" "regexp" "runtime" "sort" @@ -97,7 +99,7 @@ var workDir string func cmdList(args ...string) bool { pkgs, err := listPackages() if err != nil { - fmt.Println("list package error", err) + log.Println("list package error", err) return false } @@ -120,12 +122,12 @@ func cmdList(args ...string) bool { err := buildTestBinary(pkg) if err != nil { - fmt.Println("build package error", pkg, err) + log.Println("build package error", pkg, err) return false } exist, err := testBinaryExist(pkg) if err != nil { - fmt.Println("check test binary existence error", err) + log.Println("check test binary existence error", err) return false } if !exist { @@ -135,7 +137,7 @@ func cmdList(args ...string) bool { res, err := listTestCases(pkg, nil) if err != nil { - fmt.Println("list test cases for package error", err) + log.Println("list test cases for package error", err) return false } @@ -157,7 +159,7 @@ func cmdList(args ...string) bool { func cmdBuild(args ...string) bool { pkgs, err := listPackages() if err != nil { - fmt.Println("list package error", err) + log.Println("list package error", err) return false } @@ -165,7 +167,7 @@ func cmdBuild(args ...string) bool { if len(args) == 0 { err := buildTestBinaryMulti(pkgs) if err != nil { - fmt.Println("build package error", pkgs, err) + log.Println("build package error", pkgs, err) return false } return true @@ -176,7 +178,7 @@ func cmdBuild(args ...string) bool { pkg := args[0] err := buildTestBinary(pkg) if err != nil { - fmt.Println("build package error", pkg, err) + log.Println("build package error", pkg, err) return false } } @@ -196,14 +198,14 @@ func cmdRun(args ...string) bool { if len(args) == 0 { err := buildTestBinaryMulti(pkgs) if err != nil { - fmt.Println("build package error", pkgs, err) + log.Println("build package error", pkgs, err) return false } for _, pkg := range pkgs { exist, err := testBinaryExist(pkg) if err != nil { - fmt.Println("check test binary existence error", err) + log.Println("check test binary existence error", err) return false } if !exist { @@ -213,7 +215,7 @@ func cmdRun(args ...string) bool { tasks, err = listTestCases(pkg, tasks) if err != nil { - fmt.Println("list test cases error", err) + log.Println("list test cases error", err) return false } } @@ -224,12 +226,12 @@ func cmdRun(args ...string) bool { pkg := args[0] err := buildTestBinary(pkg) if err != nil { - fmt.Println("build package error", pkg, err) + log.Println("build package error", pkg, err) return false } exist, err := testBinaryExist(pkg) if err != nil { - fmt.Println("check test binary existence error", err) + log.Println("check test binary existence error", err) return false } @@ -239,7 +241,7 @@ func cmdRun(args ...string) bool { } tasks, err = listTestCases(pkg, tasks) if err != nil { - fmt.Println("list test cases error", err) + log.Println("list test cases error", err) return false } } @@ -249,12 +251,12 @@ func cmdRun(args ...string) bool { pkg := args[0] err := buildTestBinary(pkg) if err != nil { - fmt.Println("build package error", pkg, err) + log.Println("build package error", pkg, err) return false } exist, err := testBinaryExist(pkg) if err != nil { - fmt.Println("check test binary existence error", err) + log.Println("check test binary existence error", err) return false } if !exist { @@ -264,12 +266,12 @@ func cmdRun(args ...string) bool { tasks, err = listTestCases(pkg, tasks) if err != nil { - fmt.Println("list test cases error", err) + log.Println("list test cases error", err) return false } tasks, err = filterTestCases(tasks, args[1]) if err != nil { - fmt.Println("filter test cases error", err) + log.Println("filter test cases error", err) return false } } @@ -277,7 +279,7 @@ func cmdRun(args ...string) bool { if except != "" { list, err := parseCaseListFromFile(except) if err != nil { - fmt.Println("parse --except file error", err) + log.Println("parse --except file error", err) return false } tmp := tasks[:0] @@ -292,7 +294,7 @@ func cmdRun(args ...string) bool { if only != "" { list, err := parseCaseListFromFile(only) if err != nil { - fmt.Println("parse --only file error", err) + log.Println("parse --only file error", err) return false } tmp := tasks[:0] @@ -349,7 +351,7 @@ func cmdRun(args ...string) bool { } func parseCaseListFromFile(fileName string) (map[string]struct{}, error) { - f, err := os.Open(fileName) + f, err := os.Open(filepath.Clean(fileName)) if err != nil { return nil, withTrace(err) } @@ -624,7 +626,7 @@ func (b blocksByStart) Less(i, j int) bool { func listTestCases(pkg string, tasks []task) ([]task, error) { newCases, err := listNewTestCases(pkg) if err != nil { - fmt.Println("list test case error", pkg, err) + log.Println("list test case error", pkg, err) return nil, withTrace(err) } for _, c := range newCases { @@ -818,6 +820,7 @@ func (n *numa) testCommand(pkg string, fn string) *exec.Cmd { // session.test -test.run TestClusteredPrefixColum args = append(args, "-test.run", "^"+fn+"$") + return exec.Command(exe, args...) } diff --git a/tools/check/xprog.go b/tools/check/xprog.go index 23b8ebffe141e..e31bd0d52f354 100644 --- a/tools/check/xprog.go +++ b/tools/check/xprog.go @@ -34,7 +34,7 @@ func main() { cwd := os.Args[0] cwd = cwd[:len(cwd)-len("tools/bin/xprog")] - testBinaryPath := os.Args[1] + testBinaryPath := filepath.Clean(os.Args[1]) dir, _ := filepath.Split(testBinaryPath) // Extract the package info from /tmp/go-build2662369829/b1382/importcfg.link @@ -51,7 +51,7 @@ func main() { _, file := filepath.Split(pkg) // The path of the destination file looks like $CWD/util/topsql/topsql.test.bin - newName := filepath.Join(cwd, pkg, file+".test.bin") + newName := filepath.Clean(filepath.Join(cwd, pkg, file+".test.bin")) if err1 := os.Rename(testBinaryPath, newName); err1 != nil { // Rename fail, handle error like "invalid cross-device linkcd tools/check" @@ -64,7 +64,7 @@ func main() { func getPackageInfo(dir string) string { // Read the /tmp/go-build2662369829/b1382/importcfg.link file to get the package information - f, err := os.Open(filepath.Join(dir, "importcfg.link")) + f, err := os.Open(filepath.Join(filepath.Clean(dir), "importcfg.link")) if err != nil { os.Exit(-1) } @@ -84,6 +84,9 @@ func getPackageInfo(dir string) string { } func MoveFile(sourcePath, destPath string) error { + filepath.Clean(sourcePath) + filepath.Clean(destPath) + inputFile, err := os.Open(sourcePath) if err != nil { return fmt.Errorf("Couldn't open source file: %s", err) diff --git a/types/BUILD.bazel b/types/BUILD.bazel index cbe5865ec3c5d..670b1df39612f 100644 --- a/types/BUILD.bazel +++ b/types/BUILD.bazel @@ -52,6 +52,7 @@ go_library( go_test( name = "types_test", + timeout = "short", srcs = [ "benchmark_test.go", "binary_literal_test.go", @@ -76,6 +77,7 @@ go_test( "time_test.go", ], embed = [":types"], + flaky = True, deps = [ "//parser/charset", "//parser/mysql", diff --git a/types/binary_literal.go b/types/binary_literal.go index 93a0d59d4e873..3453c57e07760 100644 --- a/types/binary_literal.go +++ b/types/binary_literal.go @@ -147,11 +147,11 @@ func ParseBitStr(s string) (BinaryLiteral, error) { if s[0] == 'b' || s[0] == 'B' { // format is b'val' or B'val' s = strings.Trim(s[1:], "'") - } else if strings.HasPrefix(s, "0b") { - s = s[2:] - } else { + } else if !strings.HasPrefix(s, "0b") { // here means format is not b'val', B'val' or 0bval. return nil, errors.Errorf("invalid bit type format %s", s) + } else { + s = s[2:] } if len(s) == 0 { @@ -202,11 +202,11 @@ func ParseHexStr(s string) (BinaryLiteral, error) { if len(s)%2 != 0 { return nil, errors.Errorf("invalid hexadecimal format, must even numbers, but %d", len(s)) } - } else if strings.HasPrefix(s, "0x") { - s = s[2:] - } else { + } else if !strings.HasPrefix(s, "0x") { // here means format is not x'val', X'val' or 0xval. return nil, errors.Errorf("invalid hexadecimal format %s", s) + } else { + s = s[2:] } if len(s) == 0 { diff --git a/types/core_time.go b/types/core_time.go index 64820f98aaf79..59509059a30bb 100644 --- a/types/core_time.go +++ b/types/core_time.go @@ -142,7 +142,7 @@ func (t CoreTime) Weekday() gotime.Weekday { } // YearWeek returns year and week. -func (t CoreTime) YearWeek(mode int) (int, int) { +func (t CoreTime) YearWeek(mode int) (year int, week int) { behavior := weekMode(mode) | weekBehaviourYear return calcWeek(t, behavior) } diff --git a/types/datum.go b/types/datum.go index 7d8f6fd3ae776..1e28893318077 100644 --- a/types/datum.go +++ b/types/datum.go @@ -855,7 +855,7 @@ func (d *Datum) compareMysqlSet(sc *stmtctx.StatementContext, set Set, comparer } } -func (d *Datum) compareMysqlJSON(sc *stmtctx.StatementContext, target json.BinaryJSON) (int, error) { +func (d *Datum) compareMysqlJSON(_ *stmtctx.StatementContext, target json.BinaryJSON) (int, error) { origin, err := d.ToMysqlJSON() if err != nil { return 0, errors.Trace(err) @@ -1092,8 +1092,10 @@ func ProduceStrWithSpecifiedTp(s string, tp *FieldType, sc *stmtctx.StatementCon r, size = utf8.DecodeLastRuneInString(tempStr) if r == utf8.RuneError && size == 0 { // Empty string + continue } else if r == utf8.RuneError && size == 1 { // Invalid string + continue } else { // Get the truncate position break @@ -1124,7 +1126,6 @@ func ProduceStrWithSpecifiedTp(s string, tp *FieldType, sc *stmtctx.StatementCon s = truncateStr(s, truncateLen) } } - } else if len(s) > flen { characterLen = len(s) overflowed = s[flen:] @@ -1665,7 +1666,7 @@ func (d *Datum) convertToMysqlSet(sc *stmtctx.StatementContext, target *FieldTyp return ret, err } -func (d *Datum) convertToMysqlJSON(sc *stmtctx.StatementContext, target *FieldType) (ret Datum, err error) { +func (d *Datum) convertToMysqlJSON(_ *stmtctx.StatementContext, _ *FieldType) (ret Datum, err error) { switch d.k { case KindString, KindBytes: var j json.BinaryJSON @@ -1802,8 +1803,7 @@ func (d *Datum) ToDecimal(sc *stmtctx.StatementContext) (*MyDecimal, error) { // ToInt64 converts to a int64. func (d *Datum) ToInt64(sc *stmtctx.StatementContext) (int64, error) { - switch d.Kind() { - case KindMysqlBit: + if d.Kind() == KindMysqlBit { uintVal, err := d.GetBinaryLiteral().ToInt(sc) return int64(uintVal), err } @@ -2043,7 +2043,7 @@ func (d *Datum) MarshalJSON() ([]byte, error) { jd.MyDecimal = d.GetMysqlDecimal() default: if d.x != nil { - return nil, errors.New(fmt.Sprintf("unsupported type: %d", d.k)) + return nil, fmt.Errorf("unsupported type: %d", d.k) } } return gjson.Marshal(jd) diff --git a/types/datum_eval.go b/types/datum_eval.go index 7b6c7e568c9c5..126d13b2ed321 100644 --- a/types/datum_eval.go +++ b/types/datum_eval.go @@ -46,15 +46,13 @@ func ComputePlus(a, b Datum) (d Datum, err error) { return d, errors.Trace(err1) } case KindFloat64: - switch b.Kind() { - case KindFloat64: + if b.Kind() == KindFloat64 { r := a.GetFloat64() + b.GetFloat64() d.SetFloat64(r) return d, nil } case KindMysqlDecimal: - switch b.Kind() { - case KindMysqlDecimal: + if b.Kind() == KindMysqlDecimal { r := new(MyDecimal) err = DecimalAdd(a.GetMysqlDecimal(), b.GetMysqlDecimal(), r) d.SetMysqlDecimal(r) diff --git a/types/explain_format.go b/types/explain_format.go index 6c8ef6f72d546..2599f7bb046ed 100644 --- a/types/explain_format.go +++ b/types/explain_format.go @@ -31,6 +31,8 @@ var ( ExplainFormatTraditional = "traditional" // ExplainFormatTrueCardCost indicates the optimizer to use true cardinality to calculate the cost. ExplainFormatTrueCardCost = "true_card_cost" + // ExplainFormatBinary prints the proto for binary plan. + ExplainFormatBinary = "binary" // ExplainFormats stores the valid formats for explain statement, used by validator. ExplainFormats = []string{ @@ -42,5 +44,6 @@ var ( ExplainFormatVerbose, ExplainFormatTraditional, ExplainFormatTrueCardCost, + ExplainFormatBinary, } ) diff --git a/types/field_type.go b/types/field_type.go index d7cfe3030ed56..f512642932b29 100644 --- a/types/field_type.go +++ b/types/field_type.go @@ -332,7 +332,7 @@ func DefaultTypeForValue(value interface{}, tp *FieldType, char string, collate } // DefaultCharsetForType returns the default charset/collation for mysql type. -func DefaultCharsetForType(tp byte) (string, string) { +func DefaultCharsetForType(tp byte) (defaultCharset string, defaultCollation string) { switch tp { case mysql.TypeVarString, mysql.TypeString, mysql.TypeVarchar: // Default charset for string types is utf8mb4. diff --git a/types/json/BUILD.bazel b/types/json/BUILD.bazel index f125a1a35c0ad..8bc9cf5f61e0d 100644 --- a/types/json/BUILD.bazel +++ b/types/json/BUILD.bazel @@ -24,6 +24,7 @@ go_library( go_test( name = "json_test", + timeout = "short", srcs = [ "binary_functions_test.go", "binary_test.go", @@ -31,6 +32,7 @@ go_test( "path_expr_test.go", ], embed = [":json"], + flaky = True, deps = [ "//testkit/testsetup", "@com_github_stretchr_testify//require", diff --git a/types/json/binary.go b/types/json/binary.go index f21c1cb70cbf7..e13b12086d3b3 100644 --- a/types/json/binary.go +++ b/types/json/binary.go @@ -615,8 +615,7 @@ func appendBinaryValElem(buf []byte, docOff, valEntryOff int, val interface{}) ( if err != nil { return nil, errors.Trace(err) } - switch typeCode { - case TypeCodeLiteral: + if typeCode == TypeCodeLiteral { litCode := buf[elemDocOff] buf = buf[:elemDocOff] buf[valEntryOff] = TypeCodeLiteral diff --git a/types/json/binary_functions.go b/types/json/binary_functions.go index dc24bdaed4312..3d374c81fcecc 100644 --- a/types/json/binary_functions.go +++ b/types/json/binary_functions.go @@ -1103,7 +1103,6 @@ func (bj BinaryJSON) Search(containType string, search string, escape byte, path default: return CreateBinary(result), false, nil } - } // extractCallbackFn the type of CALLBACK function for extractToCallback diff --git a/types/mydecimal.go b/types/mydecimal.go index 0e2ca156a8bc4..81a7714288410 100644 --- a/types/mydecimal.go +++ b/types/mydecimal.go @@ -124,19 +124,20 @@ func zeroMyDecimalWithFrac(frac int8) MyDecimal { } // add adds a and b and carry, returns the sum and new carry. -func add(a, b, carry int32) (int32, int32) { - sum := a + b + carry +func add(a, b, carry int32) (sum int32, newCarry int32) { + sum = a + b + carry if sum >= wordBase { - carry = 1 + newCarry = 1 sum -= wordBase } else { - carry = 0 + newCarry = 0 } - return sum, carry + return sum, newCarry } // add2 adds a and b and carry, returns the sum and new carry. // It is only used in DecimalMul. +//nolint: revive func add2(a, b, carry int32) (int32, int32) { sum := int64(a) + int64(b) + int64(carry) if sum >= wordBase { @@ -154,32 +155,32 @@ func add2(a, b, carry int32) (int32, int32) { } // sub subtracts b and carry from a, returns the diff and new carry. -func sub(a, b, carry int32) (int32, int32) { - diff := a - b - carry +func sub(a, b, carry int32) (diff int32, newCarry int32) { + diff = a - b - carry if diff < 0 { - carry = 1 + newCarry = 1 diff += wordBase } else { - carry = 0 + newCarry = 0 } - return diff, carry + return diff, newCarry } // sub2 subtracts b and carry from a, returns the diff and new carry. // the new carry may be 2. -func sub2(a, b, carry int32) (int32, int32) { - diff := a - b - carry +func sub2(a, b, carry int32) (diff int32, newCarray int32) { + diff = a - b - carry if diff < 0 { - carry = 1 + newCarray = 1 diff += wordBase } else { - carry = 0 + newCarray = 0 } if diff < 0 { diff += wordBase - carry++ + newCarray++ } - return diff, carry + return diff, newCarray } // fixWordCntError limits word count in wordBufLen, and returns overflow or truncate error. @@ -1685,15 +1686,14 @@ func doSub(from1, from2, to *MyDecimal) (cmp int, err error) { carry = 0 } } else { - if idx2 <= end2 { - carry = 1 - } else { + if idx2 > end2 { if to == nil { return 0, nil } *to = zeroMyDecimalWithFrac(to.resultFrac) return 0, nil } + carry = 1 } } diff --git a/types/parser_driver/BUILD.bazel b/types/parser_driver/BUILD.bazel index 4cb8767c3e94b..4c2260dd5bc43 100644 --- a/types/parser_driver/BUILD.bazel +++ b/types/parser_driver/BUILD.bazel @@ -17,11 +17,13 @@ go_library( go_test( name = "parser_driver_test", + timeout = "short", srcs = [ "main_test.go", "value_expr_test.go", ], embed = [":parser_driver"], + flaky = True, deps = [ "//parser/format", "//testkit/testsetup", diff --git a/types/parser_driver/value_expr.go b/types/parser_driver/value_expr.go index e2490783fc329..e588548fcd589 100644 --- a/types/parser_driver/value_expr.go +++ b/types/parser_driver/value_expr.go @@ -227,7 +227,7 @@ type ParamMarkerExpr struct { } // Restore implements Node interface. -func (n *ParamMarkerExpr) Restore(ctx *format.RestoreCtx) error { +func (*ParamMarkerExpr) Restore(ctx *format.RestoreCtx) error { ctx.WritePlain("?") return nil } @@ -239,7 +239,7 @@ func newParamMarkerExpr(offset int) ast.ParamMarkerExpr { } // Format the ExprNode into a Writer. -func (n *ParamMarkerExpr) Format(w io.Writer) { +func (*ParamMarkerExpr) Format(_ io.Writer) { panic("Not implemented") } diff --git a/types/time.go b/types/time.go index 14c647f945788..c3608ee219a1c 100644 --- a/types/time.go +++ b/types/time.go @@ -919,6 +919,7 @@ func splitDateTime(format string) (seps []string, fracStr string, hasTZ bool, tz hasTZ = true for ; tzIndex > 0 && isPunctuation(format[tzIndex-1]); tzIndex-- { // In case of multiple separators, e.g. 2020-10--10 + continue } format = format[:tzIndex] } @@ -933,6 +934,7 @@ func splitDateTime(format string) (seps []string, fracStr string, hasTZ bool, tz fracStr = format[fracIndex+1 : fracEnd] for ; fracIndex > 0 && isPunctuation(format[fracIndex-1]); fracIndex-- { // In case of multiple separators, e.g. 2020-10..10 + continue } format = format[:fracIndex] } @@ -1091,9 +1093,7 @@ func parseDatetime(sc *stmtctx.StatementContext, str string, fsp int, isFloat bo // We must handle float => string => datetime, the difference is that fractional // part of float type is discarded directly, while fractional part of string type // is parsed to HH:MM:SS. - if isFloat { - // 20170118.123423 => 2017-01-18 00:00:00 - } else { + if !isFloat { // '20170118.123423' => 2017-01-18 12:34:23.234 switch len(fracStr) { case 0: @@ -1106,6 +1106,7 @@ func parseDatetime(sc *stmtctx.StatementContext, str string, fsp int, isFloat bo } truncatedOrIncorrect = err != nil } + // 20170118.123423 => 2017-01-18 00:00:00 } if l == 9 || l == 10 { if len(fracStr) == 0 { @@ -1153,11 +1154,10 @@ func parseDatetime(sc *stmtctx.StatementContext, str string, fsp int, isFloat bo // we should adjust it. // TODO: adjust year is very complex, now we only consider the simplest way. if len(seps[0]) <= 2 && !isFloat { - if year == 0 && month == 0 && day == 0 && hour == 0 && minute == 0 && second == 0 && fracStr == "" { - // Skip a special case "00-00-00". - } else { + if !(year == 0 && month == 0 && day == 0 && hour == 0 && minute == 0 && second == 0 && fracStr == "") { year = adjustYear(year) } + // Skip a special case "00-00-00". } var microsecond int @@ -1242,11 +1242,9 @@ func ParseYear(str string) (int16, error) { } y := int16(v) - if len(str) == 4 { - // Nothing to do. - } else if len(str) == 2 || len(str) == 1 { + if len(str) == 2 || len(str) == 1 { y = int16(adjustYear(int(y))) - } else { + } else if len(str) != 4 { return 0, errors.Trace(ErrInvalidYearFormat) } @@ -1489,6 +1487,17 @@ func (d Duration) ConvertToTime(sc *stmtctx.StatementContext, tp uint8) (Time, e return t.Convert(sc, tp) } +// ConvertToTimeWithTimestamp converts duration to Time by system timestamp. +// Tp is TypeDatetime, TypeTimestamp and TypeDate. +func (d Duration) ConvertToTimeWithTimestamp(sc *stmtctx.StatementContext, tp uint8, ts gotime.Time) (Time, error) { + year, month, day := ts.In(sc.TimeZone).Date() + datePart := FromDate(year, int(month), day, 0, 0, 0, 0) + mixDateAndDuration(&datePart, d) + + t := NewTime(datePart, mysql.TypeDatetime, d.Fsp) + return t.Convert(sc, tp) +} + // RoundFrac rounds fractional seconds precision with new fsp and returns a new one. // We will use the “round half up” rule, e.g, >= 0.5 -> 1, < 0.5 -> 0, // so 10:10:10.999999 round 0 -> 10:10:11 @@ -1817,22 +1826,22 @@ func TruncateOverflowMySQLTime(d gotime.Duration) (gotime.Duration, error) { return d, nil } -func splitDuration(t gotime.Duration) (int, int, int, int, int) { - sign := 1 +func splitDuration(t gotime.Duration) (sign int, hours int, minutes int, seconds int, fraction int) { + sign = 1 if t < 0 { t = -t sign = -1 } - hours := t / gotime.Hour - t -= hours * gotime.Hour //nolint:durationcheck - minutes := t / gotime.Minute - t -= minutes * gotime.Minute //nolint:durationcheck - seconds := t / gotime.Second - t -= seconds * gotime.Second //nolint:durationcheck - fraction := t / gotime.Microsecond + hoursDuration := t / gotime.Hour + t -= hoursDuration * gotime.Hour //nolint:durationcheck + minutesDuration := t / gotime.Minute + t -= minutesDuration * gotime.Minute //nolint:durationcheck + secondsDuration := t / gotime.Second + t -= secondsDuration * gotime.Second //nolint:durationcheck + fractionDuration := t / gotime.Microsecond - return sign, int(hours), int(minutes), int(seconds), int(fraction) + return sign, int(hoursDuration), int(minutesDuration), int(secondsDuration), int(fractionDuration) } var maxDaysInMonth = []int{31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31} @@ -1998,7 +2007,7 @@ func ParseDate(sc *stmtctx.StatementContext, str string) (Time, error) { // ParseTimeFromYear parse a `YYYY` formed year to corresponded Datetime type. // Note: the invoker must promise the `year` is in the range [MinYear, MaxYear]. -func ParseTimeFromYear(sc *stmtctx.StatementContext, year int64) (Time, error) { +func ParseTimeFromYear(_ *stmtctx.StatementContext, year int64) (Time, error) { if year == 0 { return NewTime(ZeroCoreTime, mysql.TypeDate, DefaultFsp), nil } @@ -2263,7 +2272,7 @@ func ExtractDurationNum(d *Duration, unit string) (res int64, err error) { // parseSingleTimeValue parse the format according the given unit. If we set strictCheck true, we'll check whether // the converted value not exceed the range of MySQL's TIME type. // The returned values are year, month, day, nanosecond and fsp. -func parseSingleTimeValue(unit string, format string, strictCheck bool) (int64, int64, int64, int64, int, error) { +func parseSingleTimeValue(unit string, format string, strictCheck bool) (year int64, month int64, day int64, nanosecond int64, fsp int, err error) { // Format is a preformatted number, it format should be A[.[B]]. decimalPointPos := strings.IndexRune(format, '.') if decimalPointPos == -1 { @@ -2367,10 +2376,10 @@ func parseSingleTimeValue(unit string, format string, strictCheck bool) (int64, // nanosecond will not exceed length of single day // MySQL permits any punctuation delimiter in the expr format. // See https://dev.mysql.com/doc/refman/8.0/en/expressions.html#temporal-intervals -func parseTimeValue(format string, index, cnt int) (int64, int64, int64, int64, int, error) { +func parseTimeValue(format string, index, cnt int) (years int64, months int64, days int64, nanoseconds int64, fsp int, err error) { neg := false originalFmt := format - fsp := map[bool]int{true: MaxFsp, false: MinFsp}[index == MicrosecondIndex] + fsp = map[bool]int{true: MaxFsp, false: MinFsp}[index == MicrosecondIndex] format = strings.TrimSpace(format) if len(format) > 0 && format[0] == '-' { neg = true @@ -2393,15 +2402,15 @@ func parseTimeValue(format string, index, cnt int) (int64, int64, int64, int64, index-- } - years, err := strconv.ParseInt(fields[YearIndex], 10, 64) + years, err = strconv.ParseInt(fields[YearIndex], 10, 64) if err != nil { return 0, 0, 0, 0, 0, ErrWrongValue.GenWithStackByArgs(DateTimeStr, originalFmt) } - months, err := strconv.ParseInt(fields[MonthIndex], 10, 64) + months, err = strconv.ParseInt(fields[MonthIndex], 10, 64) if err != nil { return 0, 0, 0, 0, 0, ErrWrongValue.GenWithStackByArgs(DateTimeStr, originalFmt) } - days, err := strconv.ParseInt(fields[DayIndex], 10, 64) + days, err = strconv.ParseInt(fields[DayIndex], 10, 64) if err != nil { return 0, 0, 0, 0, 0, ErrWrongValue.GenWithStackByArgs(DateTimeStr, originalFmt) } @@ -2742,18 +2751,18 @@ func (t Time) convertDateFormat(b rune, buf *bytes.Buffer) error { case 'k': buf.WriteString(strconv.FormatInt(int64(t.Hour()), 10)) case 'h', 'I': - t := t.Hour() - if t%12 == 0 { + tt := t.Hour() + if tt%12 == 0 { buf.WriteString("12") } else { - buf.WriteString(FormatIntWidthN(t%12, 2)) + buf.WriteString(FormatIntWidthN(tt%12, 2)) } case 'l': - t := t.Hour() - if t%12 == 0 { + tt := t.Hour() + if tt%12 == 0 { buf.WriteString("12") } else { - buf.WriteString(strconv.FormatInt(int64(t%12), 10)) + buf.WriteString(strconv.FormatInt(int64(tt%12), 10)) } case 'i': buf.WriteString(FormatIntWidthN(t.Minute(), 2)) @@ -3085,20 +3094,20 @@ func matchDateWithToken(t *CoreTime, date string, token string, ctx map[string]i // Try to parse digits with number of `limit` starting from `input` // Return if success. // Return <_, 0> if fail. -func parseNDigits(input string, limit int) (int, int) { +func parseNDigits(input string, limit int) (number int, step int) { if limit <= 0 { return 0, 0 } var num uint64 = 0 - var step = 0 + step = 0 for ; step < len(input) && step < limit && '0' <= input[step] && input[step] <= '9'; step++ { num = num*10 + uint64(input[step]-'0') } return int(num), step } -func secondsNumeric(t *CoreTime, input string, ctx map[string]int) (string, bool) { +func secondsNumeric(t *CoreTime, input string, _ map[string]int) (string, bool) { v, step := parseNDigits(input, 2) if step <= 0 || v >= 60 { return input, false @@ -3107,7 +3116,7 @@ func secondsNumeric(t *CoreTime, input string, ctx map[string]int) (string, bool return input[step:], true } -func minutesNumeric(t *CoreTime, input string, ctx map[string]int) (string, bool) { +func minutesNumeric(t *CoreTime, input string, _ map[string]int) (string, bool) { v, step := parseNDigits(input, 2) if step <= 0 || v >= 60 { return input, false @@ -3138,7 +3147,7 @@ func parseSep(input string) (string, parseState) { return input, parseStateNormal } -func time12Hour(t *CoreTime, input string, ctx map[string]int) (string, bool) { +func time12Hour(t *CoreTime, input string, _ map[string]int) (string, bool) { tryParse := func(input string) (string, parseState) { // hh:mm:ss AM /// Note that we should update `t` as soon as possible, or we @@ -3206,7 +3215,7 @@ func time12Hour(t *CoreTime, input string, ctx map[string]int) (string, bool) { return remain, true } -func time24Hour(t *CoreTime, input string, ctx map[string]int) (string, bool) { +func time24Hour(t *CoreTime, input string, _ map[string]int) (string, bool) { tryParse := func(input string) (string, parseState) { // hh:mm:ss /// Note that we should update `t` as soon as possible, or we @@ -3255,7 +3264,7 @@ const ( constForPM ) -func isAMOrPM(t *CoreTime, input string, ctx map[string]int) (string, bool) { +func isAMOrPM(_ *CoreTime, input string, ctx map[string]int) (string, bool) { if len(input) < 2 { return input, false } @@ -3278,7 +3287,7 @@ var oneToSixDigitRegex = regexp.MustCompile("^[0-9]{0,6}") // numericRegex: it was for any numeric characters var numericRegex = regexp.MustCompile("[0-9]+") -func dayOfMonthNumeric(t *CoreTime, input string, ctx map[string]int) (string, bool) { +func dayOfMonthNumeric(t *CoreTime, input string, _ map[string]int) (string, bool) { v, step := parseNDigits(input, 2) // 0..31 if step <= 0 || v > 31 { return input, false @@ -3307,7 +3316,7 @@ func hour12Numeric(t *CoreTime, input string, ctx map[string]int) (string, bool) return input[step:], true } -func microSeconds(t *CoreTime, input string, ctx map[string]int) (string, bool) { +func microSeconds(t *CoreTime, input string, _ map[string]int) (string, bool) { v, step := parseNDigits(input, 6) if step <= 0 { t.setMicrosecond(0) @@ -3328,7 +3337,7 @@ func yearNumericTwoDigits(t *CoreTime, input string, ctx map[string]int) (string return yearNumericNDigits(t, input, ctx, 2) } -func yearNumericNDigits(t *CoreTime, input string, ctx map[string]int, n int) (string, bool) { +func yearNumericNDigits(t *CoreTime, input string, _ map[string]int, n int) (string, bool) { year, step := parseNDigits(input, n) if step <= 0 { return input, false @@ -3339,7 +3348,7 @@ func yearNumericNDigits(t *CoreTime, input string, ctx map[string]int, n int) (s return input[step:], true } -func dayOfYearNumeric(t *CoreTime, input string, ctx map[string]int) (string, bool) { +func dayOfYearNumeric(_ *CoreTime, input string, ctx map[string]int) (string, bool) { // MySQL declares that "%j" should be "Day of year (001..366)". But actually, // it accepts a number that is up to three digits, which range is [1, 999]. v, step := parseNDigits(input, 3) @@ -3350,7 +3359,7 @@ func dayOfYearNumeric(t *CoreTime, input string, ctx map[string]int) (string, bo return input[step:], true } -func abbreviatedMonth(t *CoreTime, input string, ctx map[string]int) (string, bool) { +func abbreviatedMonth(t *CoreTime, input string, _ map[string]int) (string, bool) { if len(input) >= 3 { monthName := strings.ToLower(input[:3]) if month, ok := monthAbbrev[monthName]; ok { @@ -3368,7 +3377,7 @@ func hasCaseInsensitivePrefix(input, prefix string) bool { return strings.EqualFold(input[:len(prefix)], prefix) } -func fullNameMonth(t *CoreTime, input string, ctx map[string]int) (string, bool) { +func fullNameMonth(t *CoreTime, input string, _ map[string]int) (string, bool) { for i, month := range MonthNames { if hasCaseInsensitivePrefix(input, month) { t.setMonth(uint8(i + 1)) @@ -3378,7 +3387,7 @@ func fullNameMonth(t *CoreTime, input string, ctx map[string]int) (string, bool) return input, false } -func monthNumeric(t *CoreTime, input string, ctx map[string]int) (string, bool) { +func monthNumeric(t *CoreTime, input string, _ map[string]int) (string, bool) { v, step := parseNDigits(input, 2) // 1..12 if step <= 0 || v > 12 { return input, false @@ -3443,7 +3452,7 @@ func DateTimeIsOverflow(sc *stmtctx.StatementContext, date Time) (bool, error) { return !inRange, nil } -func skipAllNums(t *CoreTime, input string, ctx map[string]int) (string, bool) { +func skipAllNums(_ *CoreTime, input string, _ map[string]int) (string, bool) { retIdx := 0 for i, ch := range input { if unicode.IsNumber(ch) { @@ -3455,7 +3464,7 @@ func skipAllNums(t *CoreTime, input string, ctx map[string]int) (string, bool) { return input[retIdx:], true } -func skipAllPunct(t *CoreTime, input string, ctx map[string]int) (string, bool) { +func skipAllPunct(_ *CoreTime, input string, _ map[string]int) (string, bool) { retIdx := 0 for i, ch := range input { if unicode.IsPunct(ch) { @@ -3467,7 +3476,7 @@ func skipAllPunct(t *CoreTime, input string, ctx map[string]int) (string, bool) return input[retIdx:], true } -func skipAllAlpha(t *CoreTime, input string, ctx map[string]int) (string, bool) { +func skipAllAlpha(_ *CoreTime, input string, _ map[string]int) (string, bool) { retIdx := 0 for i, ch := range input { if unicode.IsLetter(ch) { diff --git a/util/BUILD.bazel b/util/BUILD.bazel index 00ae97bd39a22..6618ff6c0cc61 100644 --- a/util/BUILD.bazel +++ b/util/BUILD.bazel @@ -49,6 +49,7 @@ go_library( go_test( name = "util_test", + timeout = "short", srcs = [ "errors_test.go", "main_test.go", diff --git a/util/admin/BUILD.bazel b/util/admin/BUILD.bazel index d6b829bb4ed2c..aaa6abdd25a0c 100644 --- a/util/admin/BUILD.bazel +++ b/util/admin/BUILD.bazel @@ -34,6 +34,7 @@ go_test( "main_test.go", ], embed = [":admin"], + flaky = True, deps = [ "//config", "//sessionctx/variable", diff --git a/util/arena/BUILD.bazel b/util/arena/BUILD.bazel index 3b7582f4ea356..b38c606afd35a 100644 --- a/util/arena/BUILD.bazel +++ b/util/arena/BUILD.bazel @@ -15,6 +15,7 @@ go_test( "main_test.go", ], embed = [":arena"], + flaky = True, deps = [ "//testkit/testsetup", "@com_github_stretchr_testify//assert", diff --git a/util/arena/arena.go b/util/arena/arena.go index 62f83098ad922..07ef575e8748d 100644 --- a/util/arena/arena.go +++ b/util/arena/arena.go @@ -37,16 +37,15 @@ type SimpleAllocator struct { type stdAllocator struct { } -func (a *stdAllocator) Alloc(capacity int) []byte { +func (*stdAllocator) Alloc(capacity int) []byte { return make([]byte, 0, capacity) } -func (a *stdAllocator) AllocWithLen(length int, capacity int) []byte { +func (*stdAllocator) AllocWithLen(length int, capacity int) []byte { return make([]byte, length, capacity) } -func (a *stdAllocator) Reset() { -} +func (*stdAllocator) Reset() {} var _ Allocator = &stdAllocator{} diff --git a/util/benchdaily/BUILD.bazel b/util/benchdaily/BUILD.bazel index a9359576c0fe4..ebf2b340d9334 100644 --- a/util/benchdaily/BUILD.bazel +++ b/util/benchdaily/BUILD.bazel @@ -9,11 +9,13 @@ go_library( go_test( name = "benchdaily_test", + timeout = "short", srcs = [ "bench_daily_test.go", "main_test.go", ], embed = [":benchdaily"], + flaky = True, deps = [ "//testkit/testsetup", "@org_uber_go_goleak//:goleak", diff --git a/util/bitmap/BUILD.bazel b/util/bitmap/BUILD.bazel index 1a2544f8dcc91..533eb910bb40b 100644 --- a/util/bitmap/BUILD.bazel +++ b/util/bitmap/BUILD.bazel @@ -9,11 +9,13 @@ go_library( go_test( name = "bitmap_test", + timeout = "short", srcs = [ "concurrent_test.go", "main_test.go", ], embed = [":bitmap"], + flaky = True, deps = [ "//testkit/testsetup", "@com_github_stretchr_testify//assert", diff --git a/util/checksum/BUILD.bazel b/util/checksum/BUILD.bazel index adf3565326f01..8b4c7a7679379 100644 --- a/util/checksum/BUILD.bazel +++ b/util/checksum/BUILD.bazel @@ -9,11 +9,13 @@ go_library( go_test( name = "checksum_test", + timeout = "short", srcs = [ "checksum_test.go", "main_test.go", ], embed = [":checksum"], + flaky = True, deps = [ "//testkit/testsetup", "//util/encrypt", diff --git a/util/chunk/BUILD.bazel b/util/chunk/BUILD.bazel index 948adc6666223..8520d475cb780 100644 --- a/util/chunk/BUILD.bazel +++ b/util/chunk/BUILD.bazel @@ -40,6 +40,7 @@ go_library( go_test( name = "chunk_test", + timeout = "short", srcs = [ "alloc_test.go", "chunk_test.go", @@ -55,6 +56,7 @@ go_test( "row_container_test.go", ], embed = [":chunk"], + flaky = True, race = "on", deps = [ "//config", diff --git a/util/chunk/codec.go b/util/chunk/codec.go index d7c30faec11dc..01a90dd9dc007 100644 --- a/util/chunk/codec.go +++ b/util/chunk/codec.go @@ -48,7 +48,7 @@ func (c *Codec) Encode(chk *Chunk) []byte { return buffer } -func (c *Codec) encodeColumn(buffer []byte, col *Column) []byte { +func (*Codec) encodeColumn(buffer []byte, col *Column) []byte { var lenBuffer [4]byte // encode length. binary.LittleEndian.PutUint32(lenBuffer[:], uint32(col.length)) @@ -148,7 +148,7 @@ func (c *Codec) decodeColumn(buffer []byte, col *Column, ordinal int) (remained var allNotNullBitmap [128]byte -func (c *Codec) setAllNotNull(col *Column) { +func (*Codec) setAllNotNull(col *Column) { numNullBitmapBytes := (col.length + 7) / 8 col.nullBitmap = col.nullBitmap[:0] for i := 0; i < numNullBitmapBytes; { diff --git a/util/chunk/disk_test.go b/util/chunk/disk_test.go index fa82eef01024d..3b25b6de1c1eb 100644 --- a/util/chunk/disk_test.go +++ b/util/chunk/disk_test.go @@ -259,42 +259,84 @@ func testListInDisk(t *testing.T, concurrency int) { wg.Wait() } -func TestListInDiskWithChecksum(t *testing.T) { +func TestListInDiskWithChecksum1(t *testing.T) { defer config.RestoreFunc()() config.UpdateGlobal(func(conf *config.Config) { conf.Security.SpilledFileEncryptionMethod = config.SpilledFileEncryptionMethodPlaintext }) - t.Run("testListInDisk", func(t *testing.T) { - testListInDisk(t, 1) + testListInDisk(t, 1) +} + +func TestListInDiskWithChecksum2(t *testing.T) { + defer config.RestoreFunc()() + config.UpdateGlobal(func(conf *config.Config) { + conf.Security.SpilledFileEncryptionMethod = config.SpilledFileEncryptionMethodPlaintext }) - t.Run("testListInDisk", func(t *testing.T) { - testListInDisk(t, 2) + testListInDisk(t, 2) +} + +func TestListInDiskWithChecksum8(t *testing.T) { + defer config.RestoreFunc()() + config.UpdateGlobal(func(conf *config.Config) { + conf.Security.SpilledFileEncryptionMethod = config.SpilledFileEncryptionMethodPlaintext }) - t.Run("testListInDisk", func(t *testing.T) { - testListInDisk(t, 8) + testListInDisk(t, 8) +} + +func TestListInDiskWithChecksumReaderWithCache(t *testing.T) { + defer config.RestoreFunc()() + config.UpdateGlobal(func(conf *config.Config) { + conf.Security.SpilledFileEncryptionMethod = config.SpilledFileEncryptionMethodPlaintext }) + testReaderWithCache(t) +} - t.Run("testReaderWithCache", testReaderWithCache) - t.Run("testReaderWithCacheNoFlush", testReaderWithCacheNoFlush) +func TestListInDiskWithChecksumReaderWithCacheNoFlush(t *testing.T) { + defer config.RestoreFunc()() + config.UpdateGlobal(func(conf *config.Config) { + conf.Security.SpilledFileEncryptionMethod = config.SpilledFileEncryptionMethodPlaintext + }) + testReaderWithCacheNoFlush(t) } -func TestListInDiskWithChecksumAndEncrypt(t *testing.T) { +func TestListInDiskWithChecksumAndEncrypt1(t *testing.T) { defer config.RestoreFunc()() config.UpdateGlobal(func(conf *config.Config) { conf.Security.SpilledFileEncryptionMethod = config.SpilledFileEncryptionMethodAES128CTR }) - t.Run("testListInDisk", func(t *testing.T) { - testListInDisk(t, 1) + testListInDisk(t, 1) +} + +func TestListInDiskWithChecksumAndEncrypt2(t *testing.T) { + defer config.RestoreFunc()() + config.UpdateGlobal(func(conf *config.Config) { + conf.Security.SpilledFileEncryptionMethod = config.SpilledFileEncryptionMethodAES128CTR }) - t.Run("testListInDisk", func(t *testing.T) { - testListInDisk(t, 2) + testListInDisk(t, 2) +} + +func TestListInDiskWithChecksumAndEncrypt8(t *testing.T) { + defer config.RestoreFunc()() + config.UpdateGlobal(func(conf *config.Config) { + conf.Security.SpilledFileEncryptionMethod = config.SpilledFileEncryptionMethodAES128CTR }) - t.Run("testListInDisk", func(t *testing.T) { - testListInDisk(t, 8) + testListInDisk(t, 8) +} + +func TestListInDiskWithChecksumAndEncryptReaderWithCache(t *testing.T) { + defer config.RestoreFunc()() + config.UpdateGlobal(func(conf *config.Config) { + conf.Security.SpilledFileEncryptionMethod = config.SpilledFileEncryptionMethodAES128CTR }) + testReaderWithCache(t) +} - t.Run("testReaderWithCache", testReaderWithCache) - t.Run("testReaderWithCacheNoFlush", testReaderWithCacheNoFlush) +func TestListInDiskWithChecksumAndEncryptReaderWithCacheNoFlush(t *testing.T) { + defer config.RestoreFunc()() + config.UpdateGlobal(func(conf *config.Config) { + conf.Security.SpilledFileEncryptionMethod = config.SpilledFileEncryptionMethodAES128CTR + }) + testReaderWithCacheNoFlush(t) } // Following diagram describes the testdata we use to test: diff --git a/util/chunk/iterator.go b/util/chunk/iterator.go index e62ef08212349..7928f748fc4b4 100644 --- a/util/chunk/iterator.go +++ b/util/chunk/iterator.go @@ -111,7 +111,7 @@ func (it *iterator4Slice) Current() Row { } // End implements the Iterator interface. -func (it *iterator4Slice) End() Row { +func (*iterator4Slice) End() Row { return Row{} } @@ -126,7 +126,7 @@ func (it *iterator4Slice) Len() int { } // Error returns none-nil error if anything wrong happens during the iteration. -func (it *iterator4Slice) Error() error { +func (*iterator4Slice) Error() error { return nil } @@ -172,7 +172,7 @@ func (it *Iterator4Chunk) Current() Row { } // End implements the Iterator interface. -func (it *Iterator4Chunk) End() Row { +func (*Iterator4Chunk) End() Row { return Row{} } @@ -192,7 +192,7 @@ func (it *Iterator4Chunk) GetChunk() *Chunk { } // Error returns none-nil error if anything wrong happens during the iteration. -func (it *Iterator4Chunk) Error() error { +func (*Iterator4Chunk) Error() error { return nil } @@ -254,7 +254,7 @@ func (it *iterator4List) Current() Row { } // End implements the Iterator interface. -func (it *iterator4List) End() Row { +func (*iterator4List) End() Row { return Row{} } @@ -269,7 +269,7 @@ func (it *iterator4List) Len() int { } // Error returns none-nil error if anything wrong happens during the iteration. -func (it *iterator4List) Error() error { +func (*iterator4List) Error() error { return nil } @@ -313,7 +313,7 @@ func (it *iterator4RowPtr) Current() Row { } // End implements the Iterator interface. -func (it *iterator4RowPtr) End() Row { +func (*iterator4RowPtr) End() Row { return Row{} } @@ -328,7 +328,7 @@ func (it *iterator4RowPtr) Len() int { } // Error returns none-nil error if anything wrong happens during the iteration. -func (it *iterator4RowPtr) Error() error { +func (*iterator4RowPtr) Error() error { return nil } @@ -388,7 +388,7 @@ func (it *iterator4RowContainer) Current() Row { } // End implements the Iterator interface. -func (it *iterator4RowContainer) End() Row { +func (*iterator4RowContainer) End() Row { return Row{} } @@ -475,7 +475,7 @@ func (it *multiIterator) Current() Row { } // End implements the Iterator interface. -func (it *multiIterator) End() Row { +func (*multiIterator) End() Row { return Row{} } diff --git a/util/chunk/row_container.go b/util/chunk/row_container.go index e80e8b7485b77..7b1506636fdba 100644 --- a/util/chunk/row_container.go +++ b/util/chunk/row_container.go @@ -129,10 +129,10 @@ func (c *RowContainer) SpillToDisk() { defer c.actionSpill.setStatus(spilledYet) } var err error - N := c.m.records.inMemory.NumChunks() + n := c.m.records.inMemory.NumChunks() c.m.records.inDisk = NewListInDisk(c.m.records.inMemory.FieldTypes()) c.m.records.inDisk.diskTracker.AttachTo(c.diskTracker) - for i := 0; i < N; i++ { + for i := 0; i < n; i++ { chk := c.m.records.inMemory.GetChunk(i) err = c.m.records.inDisk.Add(chk) if err != nil { @@ -405,10 +405,10 @@ func (a *SpillDiskAction) Reset() { } // SetLogHook sets the hook, it does nothing just to form the memory.ActionOnExceed interface. -func (a *SpillDiskAction) SetLogHook(hook func(uint64)) {} +func (*SpillDiskAction) SetLogHook(_ func(uint64)) {} // GetPriority get the priority of the Action. -func (a *SpillDiskAction) GetPriority() int64 { +func (*SpillDiskAction) GetPriority() int64 { return memory.DefSpillPriority } @@ -442,10 +442,10 @@ type SortedRowContainer struct { } // NewSortedRowContainer creates a new SortedRowContainer in memory. -func NewSortedRowContainer(fieldType []*types.FieldType, chunkSize int, ByItemsDesc []bool, +func NewSortedRowContainer(fieldType []*types.FieldType, chunkSize int, byItemsDesc []bool, keyColumns []int, keyCmpFuncs []CompareFunc) *SortedRowContainer { src := SortedRowContainer{RowContainer: NewRowContainer(fieldType, chunkSize), - ByItemsDesc: ByItemsDesc, keyColumns: keyColumns, keyCmpFuncs: keyCmpFuncs} + ByItemsDesc: byItemsDesc, keyColumns: keyColumns, keyCmpFuncs: keyCmpFuncs} src.memTracker = memory.NewTracker(memory.LabelForRowContainer, -1) src.RowContainer.GetMemTracker().AttachTo(src.GetMemTracker()) return &src @@ -601,7 +601,7 @@ func (a *SortAndSpillDiskAction) Action(t *memory.Tracker) { } // SetLogHook sets the hook, it does nothing just to form the memory.ActionOnExceed interface. -func (a *SortAndSpillDiskAction) SetLogHook(hook func(uint64)) {} +func (*SortAndSpillDiskAction) SetLogHook(_ func(uint64)) {} // WaitForTest waits all goroutine have gone. func (a *SortAndSpillDiskAction) WaitForTest() { diff --git a/util/codec/BUILD.bazel b/util/codec/BUILD.bazel index a7387f4ad7e4d..eabf83ec1fc4f 100644 --- a/util/codec/BUILD.bazel +++ b/util/codec/BUILD.bazel @@ -29,6 +29,7 @@ go_library( go_test( name = "codec_test", + timeout = "short", srcs = [ "bench_test.go", "bytes_test.go", @@ -38,6 +39,7 @@ go_test( "main_test.go", ], embed = [":codec"], + flaky = True, deps = [ "//parser/mysql", "//parser/terror", diff --git a/util/codec/codec.go b/util/codec/codec.go index 9c5099a4c4ae9..d905809bca196 100644 --- a/util/codec/codec.go +++ b/util/codec/codec.go @@ -68,7 +68,7 @@ func preRealloc(b []byte, vals []types.Datum, comparable1 bool) []byte { case types.KindMysqlTime, types.KindMysqlDuration, types.KindFloat32, types.KindFloat64: size += 9 case types.KindNull, types.KindMinNotNull, types.KindMaxValue: - size += 1 + size++ case types.KindMysqlJSON: size += 2 + len(vals[i].GetBytes()) case types.KindMysqlDecimal: @@ -1300,7 +1300,7 @@ func HashGroupKey(sc *stmtctx.StatementContext, n int, col *chunk.Column, buf [] } } default: - return nil, errors.New(fmt.Sprintf("invalid eval type %v", ft.EvalType())) + return nil, fmt.Errorf("invalid eval type %v", ft.EvalType()) } return buf, nil } diff --git a/util/collate/BUILD.bazel b/util/collate/BUILD.bazel index 3f1781975a1f6..584226cfa5d4b 100644 --- a/util/collate/BUILD.bazel +++ b/util/collate/BUILD.bazel @@ -40,6 +40,7 @@ go_test( "main_test.go", ], embed = [":collate"], + flaky = True, deps = [ "//testkit/testsetup", "@com_github_stretchr_testify//require", diff --git a/util/collate/bin.go b/util/collate/bin.go index 8d620b351e446..2d8509c8e1a46 100644 --- a/util/collate/bin.go +++ b/util/collate/bin.go @@ -24,44 +24,44 @@ type binCollator struct { } // Compare implement Collator interface. -func (bc *binCollator) Compare(a, b string) int { +func (*binCollator) Compare(a, b string) int { return strings.Compare(a, b) } // Key implement Collator interface. -func (bc *binCollator) Key(str string) []byte { +func (*binCollator) Key(str string) []byte { return []byte(str) } // KeyWithoutTrimRightSpace implement Collator interface. -func (bc *binCollator) KeyWithoutTrimRightSpace(str string) []byte { +func (*binCollator) KeyWithoutTrimRightSpace(str string) []byte { return []byte(str) } // Pattern implements Collator interface. -func (bc *binCollator) Pattern() WildcardPattern { +func (*binCollator) Pattern() WildcardPattern { return &binPattern{} } type binPaddingCollator struct { } -func (bpc *binPaddingCollator) Compare(a, b string) int { +func (*binPaddingCollator) Compare(a, b string) int { return strings.Compare(truncateTailingSpace(a), truncateTailingSpace(b)) } -func (bpc *binPaddingCollator) Key(str string) []byte { +func (*binPaddingCollator) Key(str string) []byte { return []byte(truncateTailingSpace(str)) } // KeyWithoutTrimRightSpace implement Collator interface. -func (bpc *binPaddingCollator) KeyWithoutTrimRightSpace(str string) []byte { +func (*binPaddingCollator) KeyWithoutTrimRightSpace(str string) []byte { return []byte(str) } // Pattern implements Collator interface. // Notice that trailing spaces are significant. -func (bpc *binPaddingCollator) Pattern() WildcardPattern { +func (*binPaddingCollator) Pattern() WildcardPattern { return &binPattern{} } diff --git a/util/collate/collate.go b/util/collate/collate.go index 69d4c33fdeba1..f8489798c4239 100644 --- a/util/collate/collate.go +++ b/util/collate/collate.go @@ -116,11 +116,10 @@ func CompatibleCollate(collate1, collate2 string) bool { // When new collations are not enabled, collation id remains the same. func RewriteNewCollationIDIfNeeded(id int32) int32 { if atomic.LoadInt32(&newCollationEnabled) == 1 { - if id < 0 { - logutil.BgLogger().Warn("Unexpected negative collation ID for rewrite.", zap.Int32("ID", id)) - } else { + if id >= 0 { return -id } + logutil.BgLogger().Warn("Unexpected negative collation ID for rewrite.", zap.Int32("ID", id)) } return id } @@ -128,11 +127,10 @@ func RewriteNewCollationIDIfNeeded(id int32) int32 { // RestoreCollationIDIfNeeded restores a collation id if the new collations are enabled. func RestoreCollationIDIfNeeded(id int32) int32 { if atomic.LoadInt32(&newCollationEnabled) == 1 { - if id > 0 { - logutil.BgLogger().Warn("Unexpected positive collation ID for restore.", zap.Int32("ID", id)) - } else { + if id <= 0 { return -id } + logutil.BgLogger().Warn("Unexpected positive collation ID for restore.", zap.Int32("ID", id)) } return id } diff --git a/util/collate/gbk_bin.go b/util/collate/gbk_bin.go index 7b28ad88ef799..807d7b8c1768e 100644 --- a/util/collate/gbk_bin.go +++ b/util/collate/gbk_bin.go @@ -79,7 +79,7 @@ func (g *gbkBinCollator) KeyWithoutTrimRightSpace(str string) []byte { } // Pattern implements Collator interface. -func (g *gbkBinCollator) Pattern() WildcardPattern { +func (*gbkBinCollator) Pattern() WildcardPattern { return &gbkBinPattern{} } diff --git a/util/collate/gbk_chinese_ci.go b/util/collate/gbk_chinese_ci.go index d06519fc8eb5e..a81003cd9ef6a 100644 --- a/util/collate/gbk_chinese_ci.go +++ b/util/collate/gbk_chinese_ci.go @@ -20,7 +20,7 @@ type gbkChineseCICollator struct { } // Compare implements Collator interface. -func (g *gbkChineseCICollator) Compare(a, b string) int { +func (*gbkChineseCICollator) Compare(a, b string) int { a = truncateTailingSpace(a) b = truncateTailingSpace(b) @@ -44,7 +44,7 @@ func (g *gbkChineseCICollator) Key(str string) []byte { } // KeyWithoutTrimRightSpace implement Collator interface. -func (g *gbkChineseCICollator) KeyWithoutTrimRightSpace(str string) []byte { +func (*gbkChineseCICollator) KeyWithoutTrimRightSpace(str string) []byte { buf := make([]byte, 0, len(str)*2) i := 0 r := rune(0) @@ -60,7 +60,7 @@ func (g *gbkChineseCICollator) KeyWithoutTrimRightSpace(str string) []byte { } // Pattern implements Collator interface. -func (g *gbkChineseCICollator) Pattern() WildcardPattern { +func (*gbkChineseCICollator) Pattern() WildcardPattern { return &gbkChineseCIPattern{} } diff --git a/util/collate/general_ci.go b/util/collate/general_ci.go index d9d9ab400a11a..00f9c817819f6 100644 --- a/util/collate/general_ci.go +++ b/util/collate/general_ci.go @@ -22,7 +22,7 @@ type generalCICollator struct { } // Compare implements Collator interface. -func (gc *generalCICollator) Compare(a, b string) int { +func (*generalCICollator) Compare(a, b string) int { a = truncateTailingSpace(a) b = truncateTailingSpace(b) r1, r2 := rune(0), rune(0) @@ -45,7 +45,7 @@ func (gc *generalCICollator) Key(str string) []byte { } // KeyWithoutTrimRightSpace implements Collator interface. -func (gc *generalCICollator) KeyWithoutTrimRightSpace(str string) []byte { +func (*generalCICollator) KeyWithoutTrimRightSpace(str string) []byte { buf := make([]byte, 0, len(str)) i := 0 r := rune(0) @@ -58,7 +58,7 @@ func (gc *generalCICollator) KeyWithoutTrimRightSpace(str string) []byte { } // Pattern implements Collator interface. -func (gc *generalCICollator) Pattern() WildcardPattern { +func (*generalCICollator) Pattern() WildcardPattern { return &ciPattern{} } diff --git a/util/collate/pinyin_tidb_as_cs.go b/util/collate/pinyin_tidb_as_cs.go index 4341d2cb6ef31..f995941f4a32b 100644 --- a/util/collate/pinyin_tidb_as_cs.go +++ b/util/collate/pinyin_tidb_as_cs.go @@ -18,22 +18,22 @@ package collate type zhPinyinTiDBASCSCollator struct { } -// Collator interface, no implements now. -func (py *zhPinyinTiDBASCSCollator) Compare(a, b string) int { +// Compare is not implemented. +func (*zhPinyinTiDBASCSCollator) Compare(_, _ string) int { panic("implement me") } -// Collator interface, no implements now. -func (py *zhPinyinTiDBASCSCollator) Key(str string) []byte { +// Key is not implemented. +func (*zhPinyinTiDBASCSCollator) Key(_ string) []byte { panic("implement me") } -// Collator interface, no implements now. -func (py *zhPinyinTiDBASCSCollator) KeyWithoutTrimRightSpace(str string) []byte { +// KeyWithoutTrimRightSpace is not implemented. +func (*zhPinyinTiDBASCSCollator) KeyWithoutTrimRightSpace(_ string) []byte { panic("implement me") } -// Collator interface, no implements now. -func (py *zhPinyinTiDBASCSCollator) Pattern() WildcardPattern { +// Pattern is not implemented. +func (*zhPinyinTiDBASCSCollator) Pattern() WildcardPattern { panic("implement me") } diff --git a/util/collate/unicode_ci.go b/util/collate/unicode_ci.go index 58575551d011b..41440ef6b941a 100644 --- a/util/collate/unicode_ci.go +++ b/util/collate/unicode_ci.go @@ -28,7 +28,7 @@ type unicodeCICollator struct { } // Compare implements Collator interface. -func (uc *unicodeCICollator) Compare(a, b string) int { +func (*unicodeCICollator) Compare(a, b string) int { a = truncateTailingSpace(a) b = truncateTailingSpace(b) // weight of a, b. weight in unicode_ci may has 8 uint16s. xn indicate first 4 u16s, xs indicate last 4 u16s @@ -73,12 +73,11 @@ func (uc *unicodeCICollator) Compare(a, b string) int { } for an != 0 && bn != 0 { - if (an^bn)&0xFFFF == 0 { - an >>= 16 - bn >>= 16 - } else { + if (an^bn)&0xFFFF != 0 { return sign(int(an&0xFFFF) - int(bn&0xFFFF)) } + an >>= 16 + bn >>= 16 } } } @@ -89,7 +88,7 @@ func (uc *unicodeCICollator) Key(str string) []byte { } // KeyWithoutTrimRightSpace implements Collator interface. -func (uc *unicodeCICollator) KeyWithoutTrimRightSpace(str string) []byte { +func (*unicodeCICollator) KeyWithoutTrimRightSpace(str string) []byte { buf := make([]byte, 0, len(str)*2) r := rune(0) si := 0 // decode index of s @@ -124,7 +123,7 @@ func convertRuneUnicodeCI(r rune) (first, second uint64) { } // Pattern implements Collator interface. -func (uc *unicodeCICollator) Pattern() WildcardPattern { +func (*unicodeCICollator) Pattern() WildcardPattern { return &unicodePattern{} } diff --git a/util/column-mapping/BUILD.bazel b/util/column-mapping/BUILD.bazel index 5b20244d7052e..03a35005bf28c 100644 --- a/util/column-mapping/BUILD.bazel +++ b/util/column-mapping/BUILD.bazel @@ -13,7 +13,9 @@ go_library( go_test( name = "column-mapping_test", + timeout = "short", srcs = ["column_test.go"], embed = [":column-mapping"], + flaky = True, deps = ["@com_github_stretchr_testify//require"], ) diff --git a/util/column-mapping/column.go b/util/column-mapping/column.go index 93a1443dc6173..054c561bd3661 100644 --- a/util/column-mapping/column.go +++ b/util/column-mapping/column.go @@ -130,7 +130,7 @@ func (r *Rule) Adjust() { } // check source and target position -func (r *Rule) adjustColumnPosition(source, target int) (int, int, error) { +func (r *Rule) adjustColumnPosition(source, target int) (src int, targ int, err error) { // if not found target, ignore it if target == -1 { return source, target, errors.NotFoundf("target column %s", r.TargetColumn) diff --git a/util/cpuprofile/BUILD.bazel b/util/cpuprofile/BUILD.bazel index 32f6638285bfb..79b6e341b479f 100644 --- a/util/cpuprofile/BUILD.bazel +++ b/util/cpuprofile/BUILD.bazel @@ -19,8 +19,10 @@ go_library( go_test( name = "cpuprofile_test", + timeout = "short", srcs = ["cpuprofile_test.go"], embed = [":cpuprofile"], + flaky = True, deps = [ "//testkit/testsetup", "//util/cpuprofile/testutil", diff --git a/util/cpuprofile/pprof_api.go b/util/cpuprofile/pprof_api.go index 04d492da0e01e..4840138f38404 100644 --- a/util/cpuprofile/pprof_api.go +++ b/util/cpuprofile/pprof_api.go @@ -184,7 +184,7 @@ const labelSQL = "sql" // removeLabel uses to remove the sql_digest and plan_digest labels for pprof cpu profile data. // Since TopSQL will set the sql_digest and plan_digest label, they are strange for other users. -func (pc *Collector) removeLabel(profileData *profile.Profile) { +func (*Collector) removeLabel(profileData *profile.Profile) { for _, s := range profileData.Sample { for k := range s.Label { if k != labelSQL { diff --git a/util/cteutil/BUILD.bazel b/util/cteutil/BUILD.bazel index 1fab2fdcbeab5..86a9174e45809 100644 --- a/util/cteutil/BUILD.bazel +++ b/util/cteutil/BUILD.bazel @@ -16,11 +16,13 @@ go_library( go_test( name = "cteutil_test", + timeout = "short", srcs = [ "main_test.go", "storage_test.go", ], embed = [":cteutil"], + flaky = True, deps = [ "//parser/mysql", "//testkit/testsetup", diff --git a/util/cteutil/storage.go b/util/cteutil/storage.go index c84cbc5217ad3..8b29bb41d7c37 100644 --- a/util/cteutil/storage.go +++ b/util/cteutil/storage.go @@ -117,7 +117,7 @@ func (s *StorageRC) OpenAndRef() (err error) { s.refCnt = 1 s.iter = 0 } else { - s.refCnt += 1 + s.refCnt++ } return nil } @@ -127,7 +127,7 @@ func (s *StorageRC) DerefAndClose() (err error) { if !s.valid() { return errors.New("Storage not opend yet") } - s.refCnt -= 1 + s.refCnt-- if s.refCnt < 0 { return errors.New("Storage ref count is less than zero") } else if s.refCnt == 0 { diff --git a/util/dbterror/BUILD.bazel b/util/dbterror/BUILD.bazel index 6c67f5fd4484d..bea6593acf626 100644 --- a/util/dbterror/BUILD.bazel +++ b/util/dbterror/BUILD.bazel @@ -17,11 +17,13 @@ go_library( go_test( name = "dbterror_test", + timeout = "short", srcs = [ "main_test.go", "terror_test.go", ], embed = [":dbterror"], + flaky = True, deps = [ "//errno", "//testkit/testsetup", diff --git a/util/dbterror/ddl_terror.go b/util/dbterror/ddl_terror.go index d9e268c650948..2e90d25ffdd2c 100644 --- a/util/dbterror/ddl_terror.go +++ b/util/dbterror/ddl_terror.go @@ -33,7 +33,7 @@ var ( // ErrCancelledDDLJob means the DDL job is cancelled. ErrCancelledDDLJob = ClassDDL.NewStd(mysql.ErrCancelledDDLJob) // ErrRunMultiSchemaChanges means we run multi schema changes. - ErrRunMultiSchemaChanges = ClassDDL.NewStdErr(mysql.ErrUnsupportedDDLOperation, parser_mysql.Message(fmt.Sprintf(mysql.MySQLErrName[mysql.ErrUnsupportedDDLOperation].Raw, "multi schema change"), nil)) + ErrRunMultiSchemaChanges = ClassDDL.NewStdErr(mysql.ErrUnsupportedDDLOperation, parser_mysql.Message(fmt.Sprintf(mysql.MySQLErrName[mysql.ErrUnsupportedDDLOperation].Raw, "multi schema change for %s"), nil)) // ErrOperateSameColumn means we change the same columns multiple times in a DDL. ErrOperateSameColumn = ClassDDL.NewStdErr(mysql.ErrUnsupportedDDLOperation, parser_mysql.Message(fmt.Sprintf(mysql.MySQLErrName[mysql.ErrUnsupportedDDLOperation].Raw, "operate same column '%s'"), nil)) // ErrOperateSameIndex means we change the same indexes multiple times in a DDL. @@ -69,8 +69,6 @@ var ( ErrUnsupportedAlterTableWithoutValidation = ClassDDL.NewStdErr(mysql.ErrUnsupportedDDLOperation, parser_mysql.Message("ALTER TABLE WITHOUT VALIDATION is currently unsupported", nil)) // ErrUnsupportedAlterTableOption means we don't support the alter table option. ErrUnsupportedAlterTableOption = ClassDDL.NewStdErr(mysql.ErrUnsupportedDDLOperation, parser_mysql.Message("This type of ALTER TABLE is currently unsupported", nil)) - // ErrUnsupportedAlterReplicaForSysTable means we don't support the alter replica for system table. - ErrUnsupportedAlterReplicaForSysTable = ClassDDL.NewStdErr(mysql.ErrUnsupportedDDLOperation, parser_mysql.Message("ALTER table replica for tables in system database is currently unsupported", nil)) // ErrUnsupportedAlterCacheForSysTable means we don't support the alter cache for system table. ErrUnsupportedAlterCacheForSysTable = ClassDDL.NewStdErr(mysql.ErrUnsupportedDDLOperation, parser_mysql.Message("ALTER table cache for tables in system database is currently unsupported", nil)) // ErrBlobKeyWithoutLength is used when BLOB is used as key but without a length. @@ -99,10 +97,6 @@ var ( ErrFkColumnCannotDrop = ClassDDL.NewStd(mysql.ErrFkColumnCannotDrop) // ErrFKIncompatibleColumns is used when foreign key column type is incompatible. ErrFKIncompatibleColumns = ClassDDL.NewStd(mysql.ErrFKIncompatibleColumns) - - // ErrAlterReplicaForUnsupportedCharsetTable is used when alter table with unsupported charset. - ErrAlterReplicaForUnsupportedCharsetTable = ClassDDL.NewStdErr(mysql.ErrUnsupportedDDLOperation, parser_mysql.Message(fmt.Sprintf(mysql.MySQLErrName[mysql.ErrUnsupportedDDLOperation].Raw, "ALTER table replica for table contain %s charset"), nil)) - // ErrOnlyOnRangeListPartition is used when the partition type is range list. ErrOnlyOnRangeListPartition = ClassDDL.NewStd(mysql.ErrOnlyOnRangeListPartition) // ErrWrongKeyColumn is for table column cannot be indexed. @@ -391,4 +385,13 @@ var ( // ErrColumnInChange indicates there is modification on the column in parallel. ErrColumnInChange = ClassDDL.NewStd(mysql.ErrColumnInChange) + + // ErrAlterTiFlashModeForTableWithoutTiFlashReplica returns when set tiflash mode on table whose tiflash_replica is null or tiflash_replica_count = 0 + ErrAlterTiFlashModeForTableWithoutTiFlashReplica = ClassDDL.NewStdErr(0, parser_mysql.Message("TiFlash mode will take effect after at least one TiFlash replica is set for the table", nil)) + + // ErrUnsupportedTiFlashOperationForSysOrMemTable means we don't support the alter tiflash related action(e.g. set tiflash mode, set tiflash replica) for system table. + ErrUnsupportedTiFlashOperationForSysOrMemTable = ClassDDL.NewStdErr(mysql.ErrUnsupportedDDLOperation, parser_mysql.Message(fmt.Sprintf(mysql.MySQLErrName[mysql.ErrUnsupportedDDLOperation].Raw, "ALTER TiFlash settings for system table and memory table"), nil)) + + // ErrUnsupportedTiFlashOperationForUnsupportedCharsetTable is used when alter alter tiflash related action(e.g. set tiflash mode, set tiflash replica) with unsupported charset. + ErrUnsupportedTiFlashOperationForUnsupportedCharsetTable = ClassDDL.NewStdErr(mysql.ErrUnsupportedDDLOperation, parser_mysql.Message(fmt.Sprintf(mysql.MySQLErrName[mysql.ErrUnsupportedDDLOperation].Raw, "ALTER TiFlash settings for tables not supported by TiFlash: table contains %s charset"), nil)) ) diff --git a/util/dbterror/terror_test.go b/util/dbterror/terror_test.go index cdd66b21bd507..5ecfc2acaee58 100644 --- a/util/dbterror/terror_test.go +++ b/util/dbterror/terror_test.go @@ -34,49 +34,49 @@ func TestErrorRedact(t *testing.T) { class := ErrClass{} - NoSensitiveValue := "no_sensitive" - SensitiveData := "sensitive_data" - QuestionMark := "?" + noSensitiveValue := "no_sensitive" + sensitiveData := "sensitive_data" + questionMark := "?" - err := class.NewStd(errno.ErrDupEntry).GenWithStackByArgs(SensitiveData, NoSensitiveValue) - require.Contains(t, err.Error(), genErrMsg(errno.MySQLErrName[errno.ErrDupEntry].Raw, QuestionMark, NoSensitiveValue)) - err = class.NewStd(errno.ErrCutValueGroupConcat).GenWithStackByArgs(SensitiveData) - require.Contains(t, err.Error(), genErrMsg(errno.MySQLErrName[errno.ErrCutValueGroupConcat].Raw, QuestionMark)) - err = class.NewStd(errno.ErrDuplicatedValueInType).GenWithStackByArgs(NoSensitiveValue, SensitiveData) - require.Contains(t, err.Error(), genErrMsg(errno.MySQLErrName[errno.ErrDuplicatedValueInType].Raw, NoSensitiveValue, QuestionMark)) - err = class.NewStd(errno.ErrTruncatedWrongValue).GenWithStackByArgs(NoSensitiveValue, SensitiveData) - require.Contains(t, err.Error(), genErrMsg(errno.MySQLErrName[errno.ErrTruncatedWrongValue].Raw, NoSensitiveValue, QuestionMark)) - err = class.NewStd(errno.ErrInvalidCharacterString).FastGenByArgs(NoSensitiveValue, SensitiveData) - require.Contains(t, err.Error(), genErrMsg(errno.MySQLErrName[errno.ErrInvalidCharacterString].Raw, NoSensitiveValue, QuestionMark)) - err = class.NewStd(errno.ErrTruncatedWrongValueForField).FastGenByArgs(SensitiveData, SensitiveData) - require.Contains(t, err.Error(), genErrMsg(errno.MySQLErrName[errno.ErrTruncatedWrongValueForField].Raw, QuestionMark, QuestionMark)) - err = class.NewStd(errno.ErrIllegalValueForType).FastGenByArgs(NoSensitiveValue, SensitiveData) - require.Contains(t, err.Error(), genErrMsg(errno.MySQLErrName[errno.ErrIllegalValueForType].Raw, NoSensitiveValue, QuestionMark)) + err := class.NewStd(errno.ErrDupEntry).GenWithStackByArgs(sensitiveData, noSensitiveValue) + require.Contains(t, err.Error(), genErrMsg(errno.MySQLErrName[errno.ErrDupEntry].Raw, questionMark, noSensitiveValue)) + err = class.NewStd(errno.ErrCutValueGroupConcat).GenWithStackByArgs(sensitiveData) + require.Contains(t, err.Error(), genErrMsg(errno.MySQLErrName[errno.ErrCutValueGroupConcat].Raw, questionMark)) + err = class.NewStd(errno.ErrDuplicatedValueInType).GenWithStackByArgs(noSensitiveValue, sensitiveData) + require.Contains(t, err.Error(), genErrMsg(errno.MySQLErrName[errno.ErrDuplicatedValueInType].Raw, noSensitiveValue, questionMark)) + err = class.NewStd(errno.ErrTruncatedWrongValue).GenWithStackByArgs(noSensitiveValue, sensitiveData) + require.Contains(t, err.Error(), genErrMsg(errno.MySQLErrName[errno.ErrTruncatedWrongValue].Raw, noSensitiveValue, questionMark)) + err = class.NewStd(errno.ErrInvalidCharacterString).FastGenByArgs(noSensitiveValue, sensitiveData) + require.Contains(t, err.Error(), genErrMsg(errno.MySQLErrName[errno.ErrInvalidCharacterString].Raw, noSensitiveValue, questionMark)) + err = class.NewStd(errno.ErrTruncatedWrongValueForField).FastGenByArgs(sensitiveData, sensitiveData) + require.Contains(t, err.Error(), genErrMsg(errno.MySQLErrName[errno.ErrTruncatedWrongValueForField].Raw, questionMark, questionMark)) + err = class.NewStd(errno.ErrIllegalValueForType).FastGenByArgs(noSensitiveValue, sensitiveData) + require.Contains(t, err.Error(), genErrMsg(errno.MySQLErrName[errno.ErrIllegalValueForType].Raw, noSensitiveValue, questionMark)) - err = class.NewStd(errno.ErrPartitionWrongValues).GenWithStackByArgs(NoSensitiveValue, SensitiveData) - require.Contains(t, err.Error(), genErrMsg(errno.MySQLErrName[errno.ErrPartitionWrongValues].Raw, NoSensitiveValue, QuestionMark)) - err = class.NewStd(errno.ErrNoParts).GenWithStackByArgs(SensitiveData) - require.Contains(t, err.Error(), genErrMsg(errno.MySQLErrName[errno.ErrNoParts].Raw, QuestionMark)) - err = class.NewStd(errno.ErrWrongValue).GenWithStackByArgs(NoSensitiveValue, SensitiveData) - require.Contains(t, err.Error(), genErrMsg(errno.MySQLErrName[errno.ErrWrongValue].Raw, NoSensitiveValue, QuestionMark)) - err = class.NewStd(errno.ErrNoPartitionForGivenValue).GenWithStackByArgs(SensitiveData) - require.Contains(t, err.Error(), genErrMsg(errno.MySQLErrName[errno.ErrNoPartitionForGivenValue].Raw, QuestionMark)) - err = class.NewStd(errno.ErrDataOutOfRange).GenWithStackByArgs(NoSensitiveValue, SensitiveData) - require.Contains(t, err.Error(), genErrMsg(errno.MySQLErrName[errno.ErrDataOutOfRange].Raw, NoSensitiveValue, QuestionMark)) + err = class.NewStd(errno.ErrPartitionWrongValues).GenWithStackByArgs(noSensitiveValue, sensitiveData) + require.Contains(t, err.Error(), genErrMsg(errno.MySQLErrName[errno.ErrPartitionWrongValues].Raw, noSensitiveValue, questionMark)) + err = class.NewStd(errno.ErrNoParts).GenWithStackByArgs(sensitiveData) + require.Contains(t, err.Error(), genErrMsg(errno.MySQLErrName[errno.ErrNoParts].Raw, questionMark)) + err = class.NewStd(errno.ErrWrongValue).GenWithStackByArgs(noSensitiveValue, sensitiveData) + require.Contains(t, err.Error(), genErrMsg(errno.MySQLErrName[errno.ErrWrongValue].Raw, noSensitiveValue, questionMark)) + err = class.NewStd(errno.ErrNoPartitionForGivenValue).GenWithStackByArgs(sensitiveData) + require.Contains(t, err.Error(), genErrMsg(errno.MySQLErrName[errno.ErrNoPartitionForGivenValue].Raw, questionMark)) + err = class.NewStd(errno.ErrDataOutOfRange).GenWithStackByArgs(noSensitiveValue, sensitiveData) + require.Contains(t, err.Error(), genErrMsg(errno.MySQLErrName[errno.ErrDataOutOfRange].Raw, noSensitiveValue, questionMark)) - err = class.NewStd(errno.ErrRowInWrongPartition).GenWithStackByArgs(SensitiveData) - require.Contains(t, err.Error(), genErrMsg(errno.MySQLErrName[errno.ErrRowInWrongPartition].Raw, QuestionMark)) - err = class.NewStd(errno.ErrInvalidJSONText).GenWithStackByArgs(SensitiveData) - require.Contains(t, err.Error(), genErrMsg(errno.MySQLErrName[errno.ErrInvalidJSONText].Raw, QuestionMark)) - err = class.NewStd(errno.ErrTxnRetryable).GenWithStackByArgs(SensitiveData) - require.Contains(t, err.Error(), genErrMsg(errno.MySQLErrName[errno.ErrTxnRetryable].Raw, QuestionMark)) - require.Contains(t, err.Error(), genErrMsg(errno.MySQLErrName[errno.ErrTxnRetryable].Raw, QuestionMark)) - err = class.NewStd(errno.ErrIncorrectDatetimeValue).GenWithStackByArgs(SensitiveData) - require.Contains(t, err.Error(), genErrMsg(errno.MySQLErrName[errno.ErrIncorrectDatetimeValue].Raw, QuestionMark)) - err = class.NewStd(errno.ErrInvalidTimeFormat).GenWithStackByArgs(SensitiveData) - require.Contains(t, err.Error(), genErrMsg(errno.MySQLErrName[errno.ErrInvalidTimeFormat].Raw, QuestionMark)) - err = class.NewStd(errno.ErrRowNotFound).GenWithStackByArgs(SensitiveData) - require.Contains(t, err.Error(), genErrMsg(errno.MySQLErrName[errno.ErrRowNotFound].Raw, QuestionMark)) - err = class.NewStd(errno.ErrWriteConflict).GenWithStackByArgs(NoSensitiveValue, NoSensitiveValue, NoSensitiveValue, SensitiveData) - require.Contains(t, err.Error(), genErrMsg(errno.MySQLErrName[errno.ErrWriteConflict].Raw, NoSensitiveValue, NoSensitiveValue, NoSensitiveValue, QuestionMark)) + err = class.NewStd(errno.ErrRowInWrongPartition).GenWithStackByArgs(sensitiveData) + require.Contains(t, err.Error(), genErrMsg(errno.MySQLErrName[errno.ErrRowInWrongPartition].Raw, questionMark)) + err = class.NewStd(errno.ErrInvalidJSONText).GenWithStackByArgs(sensitiveData) + require.Contains(t, err.Error(), genErrMsg(errno.MySQLErrName[errno.ErrInvalidJSONText].Raw, questionMark)) + err = class.NewStd(errno.ErrTxnRetryable).GenWithStackByArgs(sensitiveData) + require.Contains(t, err.Error(), genErrMsg(errno.MySQLErrName[errno.ErrTxnRetryable].Raw, questionMark)) + require.Contains(t, err.Error(), genErrMsg(errno.MySQLErrName[errno.ErrTxnRetryable].Raw, questionMark)) + err = class.NewStd(errno.ErrIncorrectDatetimeValue).GenWithStackByArgs(sensitiveData) + require.Contains(t, err.Error(), genErrMsg(errno.MySQLErrName[errno.ErrIncorrectDatetimeValue].Raw, questionMark)) + err = class.NewStd(errno.ErrInvalidTimeFormat).GenWithStackByArgs(sensitiveData) + require.Contains(t, err.Error(), genErrMsg(errno.MySQLErrName[errno.ErrInvalidTimeFormat].Raw, questionMark)) + err = class.NewStd(errno.ErrRowNotFound).GenWithStackByArgs(sensitiveData) + require.Contains(t, err.Error(), genErrMsg(errno.MySQLErrName[errno.ErrRowNotFound].Raw, questionMark)) + err = class.NewStd(errno.ErrWriteConflict).GenWithStackByArgs(noSensitiveValue, noSensitiveValue, noSensitiveValue, sensitiveData) + require.Contains(t, err.Error(), genErrMsg(errno.MySQLErrName[errno.ErrWriteConflict].Raw, noSensitiveValue, noSensitiveValue, noSensitiveValue, questionMark)) } diff --git a/util/dbutil/BUILD.bazel b/util/dbutil/BUILD.bazel index b9b55839a52ad..827896678e94c 100644 --- a/util/dbutil/BUILD.bazel +++ b/util/dbutil/BUILD.bazel @@ -39,6 +39,7 @@ go_library( go_test( name = "dbutil_test", + timeout = "short", srcs = [ "common_test.go", "index_test.go", @@ -47,6 +48,7 @@ go_test( "variable_test.go", ], embed = [":dbutil"], + flaky = True, deps = [ "//errno", "//infoschema", diff --git a/util/dbutil/common.go b/util/dbutil/common.go index 674314af3492f..e4278028f9ff7 100644 --- a/util/dbutil/common.go +++ b/util/dbutil/common.go @@ -250,7 +250,7 @@ func GetRandomValues(ctx context.Context, db QueryExecutor, schemaName, table, c } // GetMinMaxValue return min and max value of given column by specified limitRange condition. -func GetMinMaxValue(ctx context.Context, db QueryExecutor, schema, table, column string, limitRange string, limitArgs []interface{}, collation string) (string, string, error) { +func GetMinMaxValue(ctx context.Context, db QueryExecutor, schema, table, column string, limitRange string, limitArgs []interface{}, collation string) (minStr string, maxStr string, err error) { /* example: mysql> SELECT MIN(`id`) as MIN, MAX(`id`) as MAX FROM `test`.`testa` WHERE id > 0 AND id < 10; @@ -334,7 +334,6 @@ func FormatTimeZoneOffset(offset time.Duration) string { minutes := (offset % time.Hour) / time.Minute return fmt.Sprintf("%s%02d:%02d", prefix, hours, minutes) - } func queryTables(ctx context.Context, db QueryExecutor, q string) (tables []string, err error) { diff --git a/util/ddl-checker/BUILD.bazel b/util/ddl-checker/BUILD.bazel index f364776532653..4cbd315e96817 100644 --- a/util/ddl-checker/BUILD.bazel +++ b/util/ddl-checker/BUILD.bazel @@ -26,6 +26,7 @@ go_test( timeout = "short", srcs = ["executable_checker_test.go"], embed = [":ddl-checker"], + flaky = True, deps = [ "//testkit", "@com_github_stretchr_testify//require", diff --git a/util/ddl-checker/executable_checker.go b/util/ddl-checker/executable_checker.go index 8f9381f69dd5a..47fd059a79530 100644 --- a/util/ddl-checker/executable_checker.go +++ b/util/ddl-checker/executable_checker.go @@ -109,7 +109,6 @@ func (ec *ExecutableChecker) Close() error { // Parse parses a query and returns an ast.StmtNode. func (ec *ExecutableChecker) Parse(sql string) (stmt ast.StmtNode, err error) { - charset, collation := ec.session.GetSessionVars().GetCharsetInfo() stmt, err = ec.parser.ParseOneStmt(sql, charset, collation) return diff --git a/util/deadlockhistory/BUILD.bazel b/util/deadlockhistory/BUILD.bazel index da5bff2870aed..89eb6921903cd 100644 --- a/util/deadlockhistory/BUILD.bazel +++ b/util/deadlockhistory/BUILD.bazel @@ -23,6 +23,7 @@ go_test( "main_test.go", ], embed = [":deadlockhistory"], + flaky = True, deps = [ "//parser", "//parser/model", diff --git a/util/disjointset/BUILD.bazel b/util/disjointset/BUILD.bazel index 564cf031d3041..77a6b05b7a6e4 100644 --- a/util/disjointset/BUILD.bazel +++ b/util/disjointset/BUILD.bazel @@ -9,11 +9,13 @@ go_library( go_test( name = "disjointset_test", + timeout = "short", srcs = [ "int_set_test.go", "main_test.go", ], embed = [":disjointset"], + flaky = True, deps = [ "//testkit/testsetup", "@com_github_stretchr_testify//assert", diff --git a/util/disk/BUILD.bazel b/util/disk/BUILD.bazel index 84ea6c67d676f..77b1f49c08b81 100644 --- a/util/disk/BUILD.bazel +++ b/util/disk/BUILD.bazel @@ -28,6 +28,7 @@ go_test( "tempDir_test.go", ], embed = [":disk"], + flaky = True, deps = [ "//config", "//testkit/testsetup", diff --git a/util/encrypt/BUILD.bazel b/util/encrypt/BUILD.bazel index 7011814e32f68..dfafb966b16c8 100644 --- a/util/encrypt/BUILD.bazel +++ b/util/encrypt/BUILD.bazel @@ -14,6 +14,7 @@ go_library( go_test( name = "encrypt_test", + timeout = "short", srcs = [ "aes_layer_test.go", "aes_test.go", @@ -21,6 +22,7 @@ go_test( "main_test.go", ], embed = [":encrypt"], + flaky = True, deps = [ "//testkit/testsetup", "//util/checksum", diff --git a/util/engine/BUILD.bazel b/util/engine/BUILD.bazel new file mode 100644 index 0000000000000..3d8ea7cfa6fa7 --- /dev/null +++ b/util/engine/BUILD.bazel @@ -0,0 +1,9 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "engine", + srcs = ["engine.go"], + importpath = "github.com/pingcap/tidb/util/engine", + visibility = ["//visibility:public"], + deps = ["@com_github_pingcap_kvproto//pkg/metapb"], +) diff --git a/util/engine/engine.go b/util/engine/engine.go new file mode 100644 index 0000000000000..68c369154888e --- /dev/null +++ b/util/engine/engine.go @@ -0,0 +1,29 @@ +// Copyright 2022 PingCAP, Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package engine + +import ( + "github.com/pingcap/kvproto/pkg/metapb" +) + +// IsTiFlash tests whether the store is based on tiflash engine. +func IsTiFlash(store *metapb.Store) bool { + for _, label := range store.Labels { + if label.Key == "engine" && label.Value == "tiflash" { + return true + } + } + return false +} diff --git a/util/etcd/BUILD.bazel b/util/etcd/BUILD.bazel index 33024813f8778..65b3e7a016047 100644 --- a/util/etcd/BUILD.bazel +++ b/util/etcd/BUILD.bazel @@ -13,8 +13,10 @@ go_library( go_test( name = "etcd_test", + timeout = "short", srcs = ["etcd_test.go"], embed = [":etcd"], + flaky = True, deps = [ "@com_github_pingcap_errors//:errors", "@com_github_stretchr_testify//require", diff --git a/util/etcd/etcd.go b/util/etcd/etcd.go index 26604a01dc2f4..e6447b9de9b78 100644 --- a/util/etcd/etcd.go +++ b/util/etcd/etcd.go @@ -304,8 +304,8 @@ func (e *Client) DoTxn(ctx context.Context, operations []*Operation) (int64, err return txnResp.Header.Revision, nil } -func parseToDirTree(root *Node, path string) *Node { - pathDirs := strings.Split(path, "/") +func parseToDirTree(root *Node, p string) *Node { + pathDirs := strings.Split(p, "/") current := root var next *Node var ok bool diff --git a/util/execdetails/BUILD.bazel b/util/execdetails/BUILD.bazel index d2c9142fe8cd4..3c745a8efd97c 100644 --- a/util/execdetails/BUILD.bazel +++ b/util/execdetails/BUILD.bazel @@ -15,11 +15,13 @@ go_library( go_test( name = "execdetails_test", + timeout = "short", srcs = [ "execdetails_test.go", "main_test.go", ], embed = [":execdetails"], + flaky = True, deps = [ "//testkit/testsetup", "@com_github_pingcap_tipb//go-tipb", diff --git a/util/execdetails/execdetails.go b/util/execdetails/execdetails.go index d284fec217ea7..db54f2c05c74a 100644 --- a/util/execdetails/execdetails.go +++ b/util/execdetails/execdetails.go @@ -80,10 +80,14 @@ const ( CommitTimeStr = "Commit_time" // GetCommitTSTimeStr means the time of getting commit ts. GetCommitTSTimeStr = "Get_commit_ts_time" + // GetLatestTsTimeStr means the time of getting latest ts in async commit and 1pc. + GetLatestTsTimeStr = "Get_latest_ts_time" // CommitBackoffTimeStr means the time of commit backoff. CommitBackoffTimeStr = "Commit_backoff_time" // BackoffTypesStr means the backoff type. BackoffTypesStr = "Backoff_types" + // SlowestCommitRPCDetailStr means the details of the slowest RPC during the transaction commit process. + SlowestCommitRPCDetailStr = "Slowest_commit_rpc_detail" // ResolveLockTimeStr means the time of resolving lock. ResolveLockTimeStr = "Resolve_lock_time" // LocalLatchWaitTimeStr means the time of waiting in local latch. @@ -96,6 +100,8 @@ const ( PrewriteRegionStr = "Prewrite_region" // TxnRetryStr means the count of transaction retry. TxnRetryStr = "Txn_retry" + // GetSnapshotTimeStr means the time spent on getting an engine snapshot. + GetSnapshotTimeStr = "Get_snapshot_time" // RocksdbDeleteSkippedCountStr means the count of rocksdb delete skipped count. RocksdbDeleteSkippedCountStr = "Rocksdb_delete_skipped_count" // RocksdbKeySkippedCountStr means the count of rocksdb key skipped count. @@ -106,6 +112,8 @@ const ( RocksdbBlockReadCountStr = "Rocksdb_block_read_count" // RocksdbBlockReadByteStr means the bytes of rocksdb block read. RocksdbBlockReadByteStr = "Rocksdb_block_read_byte" + // RocksdbBlockReadTimeStr means the time spent on rocksdb block read. + RocksdbBlockReadTimeStr = "Rocksdb_block_read_time" ) // String implements the fmt.Stringer interface. @@ -143,6 +151,9 @@ func (d ExecDetails) String() string { if commitDetails.GetCommitTsTime > 0 { parts = append(parts, GetCommitTSTimeStr+": "+strconv.FormatFloat(commitDetails.GetCommitTsTime.Seconds(), 'f', -1, 64)) } + if commitDetails.GetLatestTsTime > 0 { + parts = append(parts, GetLatestTsTimeStr+": "+strconv.FormatFloat(commitDetails.GetLatestTsTime.Seconds(), 'f', -1, 64)) + } commitDetails.Mu.Lock() commitBackoffTime := commitDetails.Mu.CommitBackoffTime if commitBackoffTime > 0 { @@ -151,6 +162,12 @@ func (d ExecDetails) String() string { if len(commitDetails.Mu.BackoffTypes) > 0 { parts = append(parts, BackoffTypesStr+": "+fmt.Sprintf("%v", commitDetails.Mu.BackoffTypes)) } + if commitDetails.Mu.SlowestReqTotalTime > 0 { + parts = append(parts, SlowestCommitRPCDetailStr+": {total:"+strconv.FormatFloat(commitDetails.Mu.SlowestReqTotalTime.Seconds(), 'f', 3, 64)+ + "s, region_id: "+strconv.FormatUint(commitDetails.Mu.SlowestRegion, 10)+ + ", store: "+commitDetails.Mu.SlowestStoreAddr+ + ", "+commitDetails.Mu.SlowestExecDetails.String()+"}") + } commitDetails.Mu.Unlock() resolveLockTime := atomic.LoadInt64(&commitDetails.ResolveLock.ResolveLockTime) if resolveLockTime > 0 { @@ -181,6 +198,9 @@ func (d ExecDetails) String() string { if scanDetail.TotalKeys > 0 { parts = append(parts, TotalKeysStr+": "+strconv.FormatInt(scanDetail.TotalKeys, 10)) } + if scanDetail.GetSnapshotDuration > 0 { + parts = append(parts, GetSnapshotTimeStr+": "+strconv.FormatFloat(scanDetail.GetSnapshotDuration.Seconds(), 'f', 3, 64)) + } if scanDetail.RocksdbDeleteSkippedCount > 0 { parts = append(parts, RocksdbDeleteSkippedCountStr+": "+strconv.FormatUint(scanDetail.RocksdbDeleteSkippedCount, 10)) } @@ -196,6 +216,9 @@ func (d ExecDetails) String() string { if scanDetail.RocksdbBlockReadByte > 0 { parts = append(parts, RocksdbBlockReadByteStr+": "+strconv.FormatUint(scanDetail.RocksdbBlockReadByte, 10)) } + if scanDetail.RocksdbBlockReadDuration > 0 { + parts = append(parts, RocksdbBlockReadTimeStr+": "+strconv.FormatFloat(scanDetail.RocksdbBlockReadDuration.Seconds(), 'f', 3, 64)) + } } return strings.Join(parts, " ") } @@ -304,7 +327,7 @@ func (e *basicCopRuntimeStats) Merge(rs RuntimeStats) { } // Tp implements the RuntimeStats interface. -func (e *basicCopRuntimeStats) Tp() int { +func (*basicCopRuntimeStats) Tp() int { return TpBasicCopRunTimeStats } @@ -478,7 +501,7 @@ func (e *BasicRuntimeStats) Merge(rs RuntimeStats) { } // Tp implements the RuntimeStats interface. -func (e *BasicRuntimeStats) Tp() int { +func (*BasicRuntimeStats) Tp() int { return TpBasicRuntimeStats } @@ -744,7 +767,7 @@ type RuntimeStatsWithConcurrencyInfo struct { } // Tp implements the RuntimeStats interface. -func (e *RuntimeStatsWithConcurrencyInfo) Tp() int { +func (*RuntimeStatsWithConcurrencyInfo) Tp() int { return TpRuntimeStatsWithConcurrencyInfo } @@ -786,8 +809,7 @@ func (e *RuntimeStatsWithConcurrencyInfo) String() string { } // Merge implements the RuntimeStats interface. -func (e *RuntimeStatsWithConcurrencyInfo) Merge(_ RuntimeStats) { -} +func (*RuntimeStatsWithConcurrencyInfo) Merge(RuntimeStats) {} // RuntimeStatsWithCommit is the RuntimeStats with commit detail. type RuntimeStatsWithCommit struct { @@ -797,7 +819,7 @@ type RuntimeStatsWithCommit struct { } // Tp implements the RuntimeStats interface. -func (e *RuntimeStatsWithCommit) Tp() int { +func (*RuntimeStatsWithCommit) Tp() int { return TpRuntimeStatsWithCommit } @@ -889,6 +911,17 @@ func (e *RuntimeStatsWithCommit) String() string { } buf.WriteString("}") } + if e.Commit.Mu.SlowestReqTotalTime > 0 { + buf.WriteString(", slowest_commit_rpc: {total: ") + buf.WriteString(strconv.FormatFloat(e.Commit.Mu.SlowestReqTotalTime.Seconds(), 'f', 3, 64)) + buf.WriteString("s, region_id: ") + buf.WriteString(strconv.FormatUint(e.Commit.Mu.SlowestRegion, 10)) + buf.WriteString(", store: ") + buf.WriteString(e.Commit.Mu.SlowestStoreAddr) + buf.WriteString(", ") + buf.WriteString(e.Commit.Mu.SlowestExecDetails.String()) + buf.WriteString("}") + } e.Commit.Mu.Unlock() if e.Commit.ResolveLock.ResolveLockTime > 0 { buf.WriteString(", resolve_lock: ") @@ -935,17 +968,28 @@ func (e *RuntimeStatsWithCommit) String() string { buf.WriteString(", resolve_lock:") buf.WriteString(FormatDuration(time.Duration(e.LockKeys.ResolveLock.ResolveLockTime))) } + e.LockKeys.Mu.Lock() if e.LockKeys.BackoffTime > 0 { buf.WriteString(", backoff: {time: ") buf.WriteString(FormatDuration(time.Duration(e.LockKeys.BackoffTime))) - e.LockKeys.Mu.Lock() if len(e.LockKeys.Mu.BackoffTypes) > 0 { buf.WriteString(", type: ") buf.WriteString(e.formatBackoff(e.LockKeys.Mu.BackoffTypes)) } - e.LockKeys.Mu.Unlock() buf.WriteString("}") } + if e.LockKeys.Mu.SlowestReqTotalTime > 0 { + buf.WriteString(", slowest_rpc: {total: ") + buf.WriteString(strconv.FormatFloat(e.LockKeys.Mu.SlowestReqTotalTime.Seconds(), 'f', 3, 64)) + buf.WriteString("s, region_id: ") + buf.WriteString(strconv.FormatUint(e.LockKeys.Mu.SlowestRegion, 10)) + buf.WriteString(", store: ") + buf.WriteString(e.LockKeys.Mu.SlowestStoreAddr) + buf.WriteString(", ") + buf.WriteString(e.LockKeys.Mu.SlowestExecDetails.String()) + buf.WriteString("}") + } + e.LockKeys.Mu.Unlock() if e.LockKeys.LockRPCTime > 0 { buf.WriteString(", lock_rpc:") buf.WriteString(time.Duration(e.LockKeys.LockRPCTime).String()) @@ -958,12 +1002,13 @@ func (e *RuntimeStatsWithCommit) String() string { buf.WriteString(", retry_count:") buf.WriteString(strconv.FormatInt(int64(e.LockKeys.RetryCount), 10)) } + buf.WriteString("}") } return buf.String() } -func (e *RuntimeStatsWithCommit) formatBackoff(backoffTypes []string) string { +func (*RuntimeStatsWithCommit) formatBackoff(backoffTypes []string) string { if len(backoffTypes) == 0 { return "" } diff --git a/util/execdetails/execdetails_test.go b/util/execdetails/execdetails_test.go index 82eb0fe493beb..0495a833a13cd 100644 --- a/util/execdetails/execdetails_test.go +++ b/util/execdetails/execdetails_test.go @@ -32,20 +32,58 @@ func TestString(t *testing.T) { RequestCount: 1, CommitDetail: &util.CommitDetails{ GetCommitTsTime: time.Second, + GetLatestTsTime: time.Second, PrewriteTime: time.Second, CommitTime: time.Second, LocalLatchTime: time.Second, Mu: struct { sync.Mutex - CommitBackoffTime int64 - BackoffTypes []string + CommitBackoffTime int64 + BackoffTypes []string + SlowestReqTotalTime time.Duration + SlowestRegion uint64 + SlowestStoreAddr string + SlowestExecDetails util.TiKVExecDetails }{ CommitBackoffTime: int64(time.Second), BackoffTypes: []string{ "backoff1", "backoff2", }, + SlowestReqTotalTime: time.Second, + SlowestRegion: 1000, + SlowestStoreAddr: "tikv-1:20160", + SlowestExecDetails: util.TiKVExecDetails{ + TimeDetail: &util.TimeDetail{ + TotalRPCWallTime: 500 * time.Millisecond, + }, + ScanDetail: &util.ScanDetail{ + ProcessedKeys: 10, + TotalKeys: 100, + RocksdbDeleteSkippedCount: 1, + RocksdbKeySkippedCount: 1, + RocksdbBlockCacheHitCount: 1, + RocksdbBlockReadCount: 1, + RocksdbBlockReadByte: 100, + RocksdbBlockReadDuration: 20 * time.Millisecond, + }, + WriteDetail: &util.WriteDetail{ + StoreBatchWaitDuration: 10 * time.Microsecond, + ProposeSendWaitDuration: 20 * time.Microsecond, + PersistLogDuration: 30 * time.Microsecond, + RaftDbWriteLeaderWaitDuration: 40 * time.Microsecond, + RaftDbSyncLogDuration: 45 * time.Microsecond, + RaftDbWriteMemtableDuration: 50 * time.Microsecond, + CommitLogDuration: 60 * time.Microsecond, + ApplyBatchWaitDuration: 70 * time.Microsecond, + ApplyLogDuration: 80 * time.Microsecond, + ApplyMutexLockDuration: 90 * time.Microsecond, + ApplyWriteLeaderWaitDuration: 100 * time.Microsecond, + ApplyWriteWalDuration: 101 * time.Microsecond, + ApplyWriteMemtableDuration: 102 * time.Microsecond, + }, + }, }, WriteKeys: 1, WriteSize: 1, @@ -63,6 +101,7 @@ func TestString(t *testing.T) { RocksdbBlockCacheHitCount: 1, RocksdbBlockReadCount: 1, RocksdbBlockReadByte: 100, + RocksdbBlockReadDuration: time.Millisecond, }, TimeDetail: util.TimeDetail{ ProcessTime: 2*time.Second + 5*time.Millisecond, @@ -70,8 +109,14 @@ func TestString(t *testing.T) { }, } expected := "Cop_time: 1.003 Process_time: 2.005 Wait_time: 1 Backoff_time: 1 Request_count: 1 Prewrite_time: 1 Commit_time: 1 " + - "Get_commit_ts_time: 1 Commit_backoff_time: 1 Backoff_types: [backoff1 backoff2] Resolve_lock_time: 1 Local_latch_wait_time: 1 Write_keys: 1 Write_size: 1 Prewrite_region: 1 Txn_retry: 1 " + - "Process_keys: 10 Total_keys: 100 Rocksdb_delete_skipped_count: 1 Rocksdb_key_skipped_count: 1 Rocksdb_block_cache_hit_count: 1 Rocksdb_block_read_count: 1 Rocksdb_block_read_byte: 100" + "Get_commit_ts_time: 1 Get_latest_ts_time: 1 Commit_backoff_time: 1 Backoff_types: [backoff1 backoff2] " + + "Slowest_commit_rpc_detail: {total:1.000s, region_id: 1000, store: tikv-1:20160, tikv_wall_time: 500ms, " + + "scan_detail: {total_process_keys: 10, total_keys: 100, rocksdb: {delete_skipped_count: 1, key_skipped_count: 1, " + + "block: {cache_hit_count: 1, read_count: 1, read_byte: 100 Bytes, read_time: 20ms}}}, write_detail: " + + "{store_batch_wait: 10µs, propose_send_wait: 20µs, persist_log: {total: 30µs, write_leader_wait: 40µs, sync_log: 45µs, write_memtable: 50µs}, " + + "commit_log: 60µs, apply_batch_wait: 70µs, apply: {total:80µs, mutex_lock: 90µs, write_leader_wait: 100µs, write_wal: 101µs, write_memtable: 102µs}}} " + + "Resolve_lock_time: 1 Local_latch_wait_time: 1 Write_keys: 1 Write_size: 1 Prewrite_region: 1 Txn_retry: 1 " + + "Process_keys: 10 Total_keys: 100 Rocksdb_delete_skipped_count: 1 Rocksdb_key_skipped_count: 1 Rocksdb_block_cache_hit_count: 1 Rocksdb_block_read_count: 1 Rocksdb_block_read_byte: 100 Rocksdb_block_read_time: 0.001" require.Equal(t, expected, detail.String()) detail = &ExecDetails{} require.Equal(t, "", detail.String()) @@ -132,7 +177,7 @@ func TestCopRuntimeStats(t *testing.T) { cop.scanDetail.RocksdbBlockReadCount = 0 // Print all fields even though the value of some fields is 0. str := "tikv_task:{proc max:1s, min:2ns, avg: 500ms, p80:1s, p95:1s, iters:4, tasks:2}, " + - "scan_detail: {total_process_keys: 0, total_process_keys_size: 0, total_keys: 15, rocksdb: {delete_skipped_count: 5, key_skipped_count: 0, block: {cache_hit_count: 10, read_count: 0, read_byte: 100 Bytes}}}" + "scan_detail: {total_keys: 15, rocksdb: {delete_skipped_count: 5, block: {cache_hit_count: 10, read_byte: 100 Bytes}}}" require.Equal(t, str, cop.String()) zeroScanDetail := util.ScanDetail{} @@ -184,11 +229,48 @@ func TestRuntimeStatsWithCommit(t *testing.T) { CommitTime: time.Second, Mu: struct { sync.Mutex - CommitBackoffTime int64 - BackoffTypes []string + CommitBackoffTime int64 + BackoffTypes []string + SlowestReqTotalTime time.Duration + SlowestRegion uint64 + SlowestStoreAddr string + SlowestExecDetails util.TiKVExecDetails }{ - CommitBackoffTime: int64(time.Second), - BackoffTypes: []string{"backoff1", "backoff2", "backoff1"}, + CommitBackoffTime: int64(time.Second), + BackoffTypes: []string{"backoff1", "backoff2", "backoff1"}, + SlowestReqTotalTime: time.Second, + SlowestRegion: 1000, + SlowestStoreAddr: "tikv-1:20160", + SlowestExecDetails: util.TiKVExecDetails{ + TimeDetail: &util.TimeDetail{ + TotalRPCWallTime: 500 * time.Millisecond, + }, + ScanDetail: &util.ScanDetail{ + ProcessedKeys: 10, + TotalKeys: 100, + RocksdbDeleteSkippedCount: 1, + RocksdbKeySkippedCount: 1, + RocksdbBlockCacheHitCount: 1, + RocksdbBlockReadCount: 1, + RocksdbBlockReadByte: 100, + RocksdbBlockReadDuration: 20 * time.Millisecond, + }, + WriteDetail: &util.WriteDetail{ + StoreBatchWaitDuration: 10 * time.Microsecond, + ProposeSendWaitDuration: 20 * time.Microsecond, + PersistLogDuration: 30 * time.Microsecond, + RaftDbWriteLeaderWaitDuration: 40 * time.Microsecond, + RaftDbSyncLogDuration: 45 * time.Microsecond, + RaftDbWriteMemtableDuration: 50 * time.Microsecond, + CommitLogDuration: 60 * time.Microsecond, + ApplyBatchWaitDuration: 70 * time.Microsecond, + ApplyLogDuration: 80 * time.Microsecond, + ApplyMutexLockDuration: 90 * time.Microsecond, + ApplyWriteLeaderWaitDuration: 100 * time.Microsecond, + ApplyWriteWalDuration: 101 * time.Microsecond, + ApplyWriteMemtableDuration: 102 * time.Microsecond, + }, + }, }, WriteKeys: 3, WriteSize: 66, @@ -201,7 +283,13 @@ func TestRuntimeStatsWithCommit(t *testing.T) { stats := &RuntimeStatsWithCommit{ Commit: commitDetail, } - expect := "commit_txn: {prewrite:1s, get_commit_ts:1s, commit:1s, backoff: {time: 1s, type: [backoff1 backoff2]}, resolve_lock: 1s, region_num:5, write_keys:3, write_byte:66, txn_retry:2}" + expect := "commit_txn: {prewrite:1s, get_commit_ts:1s, commit:1s, backoff: {time: 1s, type: [backoff1 backoff2]}, " + + "slowest_commit_rpc: {total: 1.000s, region_id: 1000, store: tikv-1:20160, tikv_wall_time: 500ms, scan_detail: " + + "{total_process_keys: 10, total_keys: 100, rocksdb: {delete_skipped_count: 1, key_skipped_count: 1, block: " + + "{cache_hit_count: 1, read_count: 1, read_byte: 100 Bytes, read_time: 20ms}}}, write_detail: " + + "{store_batch_wait: 10µs, propose_send_wait: 20µs, persist_log: {total: 30µs, write_leader_wait: 40µs, sync_log: 45µs, write_memtable: 50µs}, " + + "commit_log: 60µs, apply_batch_wait: 70µs, apply: {total:80µs, mutex_lock: 90µs, write_leader_wait: 100µs, write_wal: 101µs, write_memtable: 102µs}}}, " + + "resolve_lock: 1s, region_num:5, write_keys:3, write_byte:66, txn_retry:2}" require.Equal(t, expect, stats.String()) lockDetail := &util.LockKeysDetails{ @@ -211,12 +299,50 @@ func TestRuntimeStatsWithCommit(t *testing.T) { BackoffTime: int64(time.Second * 3), Mu: struct { sync.Mutex - BackoffTypes []string - }{BackoffTypes: []string{ - "backoff4", - "backoff5", - "backoff5", - }}, + BackoffTypes []string + SlowestReqTotalTime time.Duration + SlowestRegion uint64 + SlowestStoreAddr string + SlowestExecDetails util.TiKVExecDetails + }{ + BackoffTypes: []string{ + "backoff4", + "backoff5", + "backoff5", + }, + SlowestReqTotalTime: time.Second, + SlowestRegion: 1000, + SlowestStoreAddr: "tikv-1:20160", + SlowestExecDetails: util.TiKVExecDetails{ + TimeDetail: &util.TimeDetail{ + TotalRPCWallTime: 500 * time.Millisecond, + }, + ScanDetail: &util.ScanDetail{ + ProcessedKeys: 10, + TotalKeys: 100, + RocksdbDeleteSkippedCount: 1, + RocksdbKeySkippedCount: 1, + RocksdbBlockCacheHitCount: 1, + RocksdbBlockReadCount: 1, + RocksdbBlockReadByte: 100, + RocksdbBlockReadDuration: 20 * time.Millisecond, + }, + WriteDetail: &util.WriteDetail{ + StoreBatchWaitDuration: 10 * time.Microsecond, + ProposeSendWaitDuration: 20 * time.Microsecond, + PersistLogDuration: 30 * time.Microsecond, + RaftDbWriteLeaderWaitDuration: 40 * time.Microsecond, + RaftDbSyncLogDuration: 45 * time.Microsecond, + RaftDbWriteMemtableDuration: 50 * time.Microsecond, + CommitLogDuration: 60 * time.Microsecond, + ApplyBatchWaitDuration: 70 * time.Microsecond, + ApplyLogDuration: 80 * time.Microsecond, + ApplyMutexLockDuration: 90 * time.Microsecond, + ApplyWriteLeaderWaitDuration: 100 * time.Microsecond, + ApplyWriteWalDuration: 101 * time.Microsecond, + ApplyWriteMemtableDuration: 102 * time.Microsecond, + }, + }}, LockRPCTime: int64(time.Second * 5), LockRPCCount: 50, RetryCount: 2, @@ -227,7 +353,13 @@ func TestRuntimeStatsWithCommit(t *testing.T) { stats = &RuntimeStatsWithCommit{ LockKeys: lockDetail, } - expect = "lock_keys: {time:1s, region:2, keys:10, resolve_lock:2s, backoff: {time: 3s, type: [backoff4 backoff5]}, lock_rpc:5s, rpc_count:50, retry_count:2}" + expect = "lock_keys: {time:1s, region:2, keys:10, resolve_lock:2s, backoff: {time: 3s, type: [backoff4 backoff5]}, " + + "slowest_rpc: {total: 1.000s, region_id: 1000, store: tikv-1:20160, tikv_wall_time: 500ms, scan_detail: " + + "{total_process_keys: 10, total_keys: 100, rocksdb: {delete_skipped_count: 1, key_skipped_count: 1, block: " + + "{cache_hit_count: 1, read_count: 1, read_byte: 100 Bytes, read_time: 20ms}}}, write_detail: " + + "{store_batch_wait: 10µs, propose_send_wait: 20µs, persist_log: {total: 30µs, write_leader_wait: 40µs, sync_log: 45µs, write_memtable: 50µs}, " + + "commit_log: 60µs, apply_batch_wait: 70µs, apply: {total:80µs, mutex_lock: 90µs, write_leader_wait: 100µs, write_wal: 101µs, write_memtable: 102µs}}}, " + + "lock_rpc:5s, rpc_count:50, retry_count:2}" require.Equal(t, expect, stats.String()) } diff --git a/util/expensivequery/BUILD.bazel b/util/expensivequery/BUILD.bazel index 21576dc13d95b..789639dc53452 100644 --- a/util/expensivequery/BUILD.bazel +++ b/util/expensivequery/BUILD.bazel @@ -25,8 +25,10 @@ go_library( go_test( name = "expensivequery_test", + timeout = "short", srcs = ["expensivequerey_test.go"], embed = [":expensivequery"], + flaky = True, deps = [ "//sessionctx/stmtctx", "//testkit/testsetup", diff --git a/util/expensivequery/memory_usage_alarm.go b/util/expensivequery/memory_usage_alarm.go index fab62ea9bf1f5..8ce19c6264640 100644 --- a/util/expensivequery/memory_usage_alarm.go +++ b/util/expensivequery/memory_usage_alarm.go @@ -236,6 +236,7 @@ func (record *memoryUsageAlarm) recordProfile() { logutil.BgLogger().Error(fmt.Sprintf("create %v profile file fail", item.name), zap.Error(err)) return } + //nolint: revive defer func() { err := f.Close() if err != nil { diff --git a/util/fastrand/BUILD.bazel b/util/fastrand/BUILD.bazel index 42e40bc901991..8604c94d8a32a 100644 --- a/util/fastrand/BUILD.bazel +++ b/util/fastrand/BUILD.bazel @@ -9,11 +9,13 @@ go_library( go_test( name = "fastrand_test", + timeout = "short", srcs = [ "main_test.go", "random_test.go", ], embed = [":fastrand"], + flaky = True, deps = [ "//testkit/testsetup", "@com_github_stretchr_testify//require", diff --git a/util/filter/BUILD.bazel b/util/filter/BUILD.bazel index a9e565b1329a0..0398ae0371ba9 100644 --- a/util/filter/BUILD.bazel +++ b/util/filter/BUILD.bazel @@ -17,10 +17,12 @@ go_library( go_test( name = "filter_test", + timeout = "short", srcs = [ "filter_test.go", "schema_test.go", ], embed = [":filter"], + flaky = True, deps = ["@com_github_stretchr_testify//require"], ) diff --git a/util/format/BUILD.bazel b/util/format/BUILD.bazel index fb99a71d52804..c100d198aa6ba 100644 --- a/util/format/BUILD.bazel +++ b/util/format/BUILD.bazel @@ -9,11 +9,13 @@ go_library( go_test( name = "format_test", + timeout = "short", srcs = [ "format_test.go", "main_test.go", ], embed = [":format"], + flaky = True, deps = [ "//testkit/testsetup", "@com_github_stretchr_testify//assert", diff --git a/util/generatedexpr/BUILD.bazel b/util/generatedexpr/BUILD.bazel index 74e9fc7259df6..e8d1c6c412dc9 100644 --- a/util/generatedexpr/BUILD.bazel +++ b/util/generatedexpr/BUILD.bazel @@ -17,11 +17,13 @@ go_library( go_test( name = "generatedexpr_test", + timeout = "short", srcs = [ "gen_expr_test.go", "main_test.go", ], embed = [":generatedexpr"], + flaky = True, deps = [ "//parser/ast", "//testkit/testsetup", diff --git a/util/generatedexpr/generated_expr.go b/util/generatedexpr/generated_expr.go index e4405286015bf..1af0fb1adac7b 100644 --- a/util/generatedexpr/generated_expr.go +++ b/util/generatedexpr/generated_expr.go @@ -33,12 +33,13 @@ type nameResolver struct { } // Enter implements ast.Visitor interface. -func (nr *nameResolver) Enter(inNode ast.Node) (ast.Node, bool) { +func (*nameResolver) Enter(inNode ast.Node) (ast.Node, bool) { return inNode, false } // Leave implements ast.Visitor interface. func (nr *nameResolver) Leave(inNode ast.Node) (node ast.Node, ok bool) { + //nolint:revive switch v := inNode.(type) { case *ast.ColumnNameExpr: for _, col := range nr.tableInfo.Columns { diff --git a/util/hack/BUILD.bazel b/util/hack/BUILD.bazel index 53a083731d5f7..30f018da11ea3 100644 --- a/util/hack/BUILD.bazel +++ b/util/hack/BUILD.bazel @@ -9,11 +9,13 @@ go_library( go_test( name = "hack_test", + timeout = "short", srcs = [ "hack_test.go", "main_test.go", ], embed = [":hack"], + flaky = True, deps = [ "//testkit/testsetup", "@org_uber_go_goleak//:goleak", diff --git a/util/hack/hack.go b/util/hack/hack.go index 8e586485ee9bd..1c8dc15ef8a16 100644 --- a/util/hack/hack.go +++ b/util/hack/hack.go @@ -33,7 +33,7 @@ func String(b []byte) (s MutableString) { pstring := (*reflect.StringHeader)(unsafe.Pointer(&s)) pstring.Data = pbytes.Data pstring.Len = pbytes.Len - return + return s } // Slice converts string to slice without copy. @@ -44,7 +44,7 @@ func Slice(s string) (b []byte) { pbytes.Data = pstring.Data pbytes.Len = pstring.Len pbytes.Cap = pstring.Len - return + return b } // LoadFactor is the maximum average load of a bucket that triggers growth is 6.5 in Golang Map. diff --git a/util/hint/BUILD.bazel b/util/hint/BUILD.bazel index 817a1237fa9df..05fb356dcfbf2 100644 --- a/util/hint/BUILD.bazel +++ b/util/hint/BUILD.bazel @@ -14,7 +14,6 @@ go_library( "//sessionctx", "//util/dbterror", "//util/logutil", - "@com_github_pingcap_errors//:errors", "@org_uber_go_zap//:zap", ], ) diff --git a/util/hint/hint_processor.go b/util/hint/hint_processor.go index 1bc49d92da301..ce61936aa1cf7 100644 --- a/util/hint/hint_processor.go +++ b/util/hint/hint_processor.go @@ -19,7 +19,6 @@ import ( "strconv" "strings" - "github.com/pingcap/errors" "github.com/pingcap/tidb/errno" "github.com/pingcap/tidb/parser" "github.com/pingcap/tidb/parser/ast" @@ -260,7 +259,7 @@ func ParseHintsSet(p *parser.Parser, sql, charset, collation, db string) (*Hints return nil, nil, nil, err } if len(stmtNodes) != 1 { - return nil, nil, nil, errors.New(fmt.Sprintf("bind_sql must be a single statement: %s", sql)) + return nil, nil, nil, fmt.Errorf("bind_sql must be a single statement: %s", sql) } hs := CollectHint(stmtNodes[0]) processor := &BlockHintProcessor{} @@ -279,7 +278,7 @@ func ParseHintsSet(p *parser.Parser, sql, charset, collation, db string) (*Hints offset := processor.GetHintOffset(tblHint.QBName, curOffset) if offset < 0 || !processor.checkTableQBName(tblHint.Tables) { hintStr := RestoreTableOptimizerHint(tblHint) - return nil, nil, nil, errors.New(fmt.Sprintf("Unknown query block name in hint %s", hintStr)) + return nil, nil, nil, fmt.Errorf("Unknown query block name in hint %s", hintStr) } tblHint.QBName, err = GenerateQBName(topNodeType, offset) if err != nil { @@ -342,7 +341,7 @@ func (p *BlockHintProcessor) Enter(in ast.Node) (ast.Node, bool) { } // Leave implements Visitor interface. -func (p *BlockHintProcessor) Leave(in ast.Node) (ast.Node, bool) { +func (*BlockHintProcessor) Leave(in ast.Node) (ast.Node, bool) { return in, true } @@ -357,7 +356,7 @@ func (p *BlockHintProcessor) checkQueryBlockHints(hints []*ast.TableOptimizerHin } if qbName != "" { if p.Ctx != nil { - p.Ctx.GetSessionVars().StmtCtx.AppendWarning(errors.New(fmt.Sprintf("There are more than two query names in same query block,, using the first one %s", qbName))) + p.Ctx.GetSessionVars().StmtCtx.AppendWarning(fmt.Errorf("There are more than two query names in same query block,, using the first one %s", qbName)) } } else { qbName = hint.QBName.L @@ -371,7 +370,7 @@ func (p *BlockHintProcessor) checkQueryBlockHints(hints []*ast.TableOptimizerHin } if _, ok := p.QbNameMap[qbName]; ok { if p.Ctx != nil { - p.Ctx.GetSessionVars().StmtCtx.AppendWarning(errors.New(fmt.Sprintf("Duplicate query block name %s, only the first one is effective", qbName))) + p.Ctx.GetSessionVars().StmtCtx.AppendWarning(fmt.Errorf("Duplicate query block name %s, only the first one is effective", qbName)) } } else { p.QbNameMap[qbName] = offset @@ -465,7 +464,7 @@ func (p *BlockHintProcessor) GetCurrentStmtHints(hints []*ast.TableOptimizerHint offset := p.GetHintOffset(hint.QBName, currentOffset) if offset < 0 || !p.checkTableQBName(hint.Tables) { hintStr := RestoreTableOptimizerHint(hint) - p.Ctx.GetSessionVars().StmtCtx.AppendWarning(errors.New(fmt.Sprintf("Hint %s is ignored due to unknown query block name", hintStr))) + p.Ctx.GetSessionVars().StmtCtx.AppendWarning(fmt.Errorf("Hint %s is ignored due to unknown query block name", hintStr)) continue } p.QbHints[offset] = append(p.QbHints[offset], hint) @@ -482,7 +481,7 @@ func GenerateQBName(nodeType NodeType, blockOffset int) (model.CIStr, error) { if nodeType == TypeUpdate { return model.NewCIStr(defaultUpdateBlockName), nil } - return model.NewCIStr(""), errors.New(fmt.Sprintf("Unexpected NodeType %d when block offset is 0", nodeType)) + return model.NewCIStr(""), fmt.Errorf("Unexpected NodeType %d when block offset is 0", nodeType) } return model.NewCIStr(fmt.Sprintf("%s%d", defaultSelectBlockPrefix, blockOffset)), nil } diff --git a/util/importer/db.go b/util/importer/db.go index 17956b67f3c07..14a5bf46ecddd 100644 --- a/util/importer/db.go +++ b/util/importer/db.go @@ -28,7 +28,7 @@ import ( "go.uber.org/zap" ) -func intRangeValue(column *column, min int64, max int64) (int64, int64) { +func intRangeValue(column *column, min int64, max int64) (maxInt int64, minInt int64) { var err error if len(column.min) > 0 { min, err = strconv.ParseInt(column.min, 10, 64) diff --git a/util/importer/parser.go b/util/importer/parser.go index 0950c4e2060d7..ec121c006f138 100644 --- a/util/importer/parser.go +++ b/util/importer/parser.go @@ -170,7 +170,7 @@ func newTable() *table { } } -func (t *table) findCol(cols []*column, name string) *column { +func (*table) findCol(cols []*column, name string) *column { for _, col := range cols { if col.name == name { return col diff --git a/util/keydecoder/BUILD.bazel b/util/keydecoder/BUILD.bazel index ef29440153448..9f059b500ecff 100644 --- a/util/keydecoder/BUILD.bazel +++ b/util/keydecoder/BUILD.bazel @@ -18,11 +18,13 @@ go_library( go_test( name = "keydecoder_test", + timeout = "short", srcs = [ "keydecoder_test.go", "main_test.go", ], embed = [":keydecoder"], + flaky = True, deps = [ "//infoschema", "//parser/model", diff --git a/util/kvcache/BUILD.bazel b/util/kvcache/BUILD.bazel index 139b64ada66f1..658b5c57e0b5c 100644 --- a/util/kvcache/BUILD.bazel +++ b/util/kvcache/BUILD.bazel @@ -13,11 +13,13 @@ go_library( go_test( name = "kvcache_test", + timeout = "short", srcs = [ "main_test.go", "simple_lru_test.go", ], embed = [":kvcache"], + flaky = True, deps = [ "//testkit/testsetup", "//util/memory", diff --git a/util/localpool/BUILD.bazel b/util/localpool/BUILD.bazel index ed161eed10518..97d3ec04775b8 100644 --- a/util/localpool/BUILD.bazel +++ b/util/localpool/BUILD.bazel @@ -13,11 +13,13 @@ go_library( go_test( name = "localpool_test", + timeout = "short", srcs = [ "localpool_test.go", "main_test.go", ], embed = [":localpool"], + flaky = True, deps = [ "//testkit/testsetup", "//util", diff --git a/util/logutil/BUILD.bazel b/util/logutil/BUILD.bazel index ee230fe0d184d..3abf806e9290b 100644 --- a/util/logutil/BUILD.bazel +++ b/util/logutil/BUILD.bazel @@ -24,12 +24,14 @@ go_library( go_test( name = "logutil_test", + timeout = "short", srcs = [ "hex_test.go", "log_test.go", "main_test.go", ], embed = [":logutil"], + flaky = True, deps = [ "//kv", "//testkit/testsetup", diff --git a/util/logutil/consistency/reporter.go b/util/logutil/consistency/reporter.go index db14c25a865cf..fd7fd655eb26a 100644 --- a/util/logutil/consistency/reporter.go +++ b/util/logutil/consistency/reporter.go @@ -105,7 +105,8 @@ func DecodeRowMvccData(tableInfo *model.TableInfo) func(kv.Key, *kvrpcpb.MvccGet return func(key kv.Key, respValue *kvrpcpb.MvccGetByKeyResponse, outMap map[string]interface{}) { colMap := make(map[int64]*types.FieldType, 3) for _, col := range tableInfo.Columns { - colMap[col.ID] = &col.FieldType + var fieldType = col.FieldType + colMap[col.ID] = &fieldType } if respValue.Info != nil { diff --git a/util/logutil/log.go b/util/logutil/log.go index 138b989a35962..83eb44eb9d2cc 100644 --- a/util/logutil/log.go +++ b/util/logutil/log.go @@ -233,7 +233,7 @@ type traceLog struct { ctx context.Context } -func (t *traceLog) Enabled(_ zapcore.Level) bool { +func (*traceLog) Enabled(_ zapcore.Level) bool { return true } @@ -242,7 +242,7 @@ func (t *traceLog) Write(p []byte) (n int, err error) { return len(p), nil } -func (t *traceLog) Sync() error { +func (*traceLog) Sync() error { return nil } diff --git a/util/logutil/slow_query_logger.go b/util/logutil/slow_query_logger.go index d5d59f98aface..a0c0a6c3b665c 100644 --- a/util/logutil/slow_query_logger.go +++ b/util/logutil/slow_query_logger.go @@ -60,36 +60,36 @@ func newSlowQueryLogConfig(cfg *LogConfig) *log.Config { type slowLogEncoder struct{} -func (e *slowLogEncoder) EncodeEntry(entry zapcore.Entry, _ []zapcore.Field) (*buffer.Buffer, error) { +func (*slowLogEncoder) EncodeEntry(entry zapcore.Entry, _ []zapcore.Field) (*buffer.Buffer, error) { b := _pool.Get() fmt.Fprintf(b, "# Time: %s\n", entry.Time.Format(SlowLogTimeFormat)) fmt.Fprintf(b, "%s\n", entry.Message) return b, nil } -func (e *slowLogEncoder) Clone() zapcore.Encoder { return e } -func (e *slowLogEncoder) AddArray(string, zapcore.ArrayMarshaler) error { return nil } -func (e *slowLogEncoder) AddObject(string, zapcore.ObjectMarshaler) error { return nil } -func (e *slowLogEncoder) AddBinary(string, []byte) {} -func (e *slowLogEncoder) AddByteString(string, []byte) {} -func (e *slowLogEncoder) AddBool(string, bool) {} -func (e *slowLogEncoder) AddComplex128(string, complex128) {} -func (e *slowLogEncoder) AddComplex64(string, complex64) {} -func (e *slowLogEncoder) AddDuration(string, time.Duration) {} -func (e *slowLogEncoder) AddFloat64(string, float64) {} -func (e *slowLogEncoder) AddFloat32(string, float32) {} -func (e *slowLogEncoder) AddInt(string, int) {} -func (e *slowLogEncoder) AddInt64(string, int64) {} -func (e *slowLogEncoder) AddInt32(string, int32) {} -func (e *slowLogEncoder) AddInt16(string, int16) {} -func (e *slowLogEncoder) AddInt8(string, int8) {} -func (e *slowLogEncoder) AddString(string, string) {} -func (e *slowLogEncoder) AddTime(string, time.Time) {} -func (e *slowLogEncoder) AddUint(string, uint) {} -func (e *slowLogEncoder) AddUint64(string, uint64) {} -func (e *slowLogEncoder) AddUint32(string, uint32) {} -func (e *slowLogEncoder) AddUint16(string, uint16) {} -func (e *slowLogEncoder) AddUint8(string, uint8) {} -func (e *slowLogEncoder) AddUintptr(string, uintptr) {} -func (e *slowLogEncoder) AddReflected(string, interface{}) error { return nil } -func (e *slowLogEncoder) OpenNamespace(string) {} +func (e *slowLogEncoder) Clone() zapcore.Encoder { return e } +func (*slowLogEncoder) AddArray(string, zapcore.ArrayMarshaler) error { return nil } +func (*slowLogEncoder) AddObject(string, zapcore.ObjectMarshaler) error { return nil } +func (*slowLogEncoder) AddBinary(string, []byte) {} +func (*slowLogEncoder) AddByteString(string, []byte) {} +func (*slowLogEncoder) AddBool(string, bool) {} +func (*slowLogEncoder) AddComplex128(string, complex128) {} +func (*slowLogEncoder) AddComplex64(string, complex64) {} +func (*slowLogEncoder) AddDuration(string, time.Duration) {} +func (*slowLogEncoder) AddFloat64(string, float64) {} +func (*slowLogEncoder) AddFloat32(string, float32) {} +func (*slowLogEncoder) AddInt(string, int) {} +func (*slowLogEncoder) AddInt64(string, int64) {} +func (*slowLogEncoder) AddInt32(string, int32) {} +func (*slowLogEncoder) AddInt16(string, int16) {} +func (*slowLogEncoder) AddInt8(string, int8) {} +func (*slowLogEncoder) AddString(string, string) {} +func (*slowLogEncoder) AddTime(string, time.Time) {} +func (*slowLogEncoder) AddUint(string, uint) {} +func (*slowLogEncoder) AddUint64(string, uint64) {} +func (*slowLogEncoder) AddUint32(string, uint32) {} +func (*slowLogEncoder) AddUint16(string, uint16) {} +func (*slowLogEncoder) AddUint8(string, uint8) {} +func (*slowLogEncoder) AddUintptr(string, uintptr) {} +func (*slowLogEncoder) AddReflected(string, interface{}) error { return nil } +func (*slowLogEncoder) OpenNamespace(string) {} diff --git a/util/mathutil/BUILD.bazel b/util/mathutil/BUILD.bazel index 7edebf6fb4de5..971a1ded219e4 100644 --- a/util/mathutil/BUILD.bazel +++ b/util/mathutil/BUILD.bazel @@ -13,12 +13,14 @@ go_library( go_test( name = "mathutil_test", + timeout = "short", srcs = [ "main_test.go", "math_test.go", "rand_test.go", ], embed = [":mathutil"], + flaky = True, deps = [ "//testkit/testsetup", "@com_github_stretchr_testify//require", diff --git a/util/memory/BUILD.bazel b/util/memory/BUILD.bazel index d630240a6b4c6..42ee24527f47b 100644 --- a/util/memory/BUILD.bazel +++ b/util/memory/BUILD.bazel @@ -24,12 +24,14 @@ go_library( go_test( name = "memory_test", + timeout = "short", srcs = [ "bench_test.go", "main_test.go", "tracker_test.go", ], embed = [":memory"], + flaky = True, deps = [ "//errno", "//parser/terror", diff --git a/util/memory/action.go b/util/memory/action.go index 4342d620de5eb..af2c33351068d 100644 --- a/util/memory/action.go +++ b/util/memory/action.go @@ -115,7 +115,7 @@ func (a *LogOnExceed) Action(t *Tracker) { } // GetPriority get the priority of the Action -func (a *LogOnExceed) GetPriority() int64 { +func (*LogOnExceed) GetPriority() int64 { return DefLogPriority } @@ -134,7 +134,7 @@ func (a *PanicOnExceed) SetLogHook(hook func(uint64)) { } // Action panics when memory usage exceeds memory quota. -func (a *PanicOnExceed) Action(t *Tracker) { +func (a *PanicOnExceed) Action(_ *Tracker) { a.mutex.Lock() if a.acted { a.mutex.Unlock() @@ -149,7 +149,7 @@ func (a *PanicOnExceed) Action(t *Tracker) { } // GetPriority get the priority of the Action -func (a *PanicOnExceed) GetPriority() int64 { +func (*PanicOnExceed) GetPriority() int64 { return DefPanicPriority } diff --git a/util/memory/meminfo.go b/util/memory/meminfo.go index e14a6be73adb8..e5125468b8b93 100644 --- a/util/memory/meminfo.go +++ b/util/memory/meminfo.go @@ -72,17 +72,17 @@ type memInfoCache struct { updateTime time.Time } -func (c *memInfoCache) get() (mem uint64, t time.Time) { +func (c *memInfoCache) get() (memo uint64, t time.Time) { c.RLock() defer c.RUnlock() - mem, t = c.mem, c.updateTime + memo, t = c.mem, c.updateTime return } -func (c *memInfoCache) set(mem uint64, t time.Time) { +func (c *memInfoCache) set(memo uint64, t time.Time) { c.Lock() defer c.Unlock() - c.mem, c.updateTime = mem, t + c.mem, c.updateTime = memo, t } // expiration time is 60s @@ -97,30 +97,30 @@ var serverMemUsage *memInfoCache // MemTotalCGroup returns the total amount of RAM on this system in container environment. func MemTotalCGroup() (uint64, error) { - mem, t := memLimit.get() + memo, t := memLimit.get() if time.Since(t) < 60*time.Second { - return mem, nil + return memo, nil } - mem, err := readUint(cGroupMemLimitPath) + memo, err := readUint(cGroupMemLimitPath) if err != nil { - return mem, err + return memo, err } - memLimit.set(mem, time.Now()) - return mem, nil + memLimit.set(memo, time.Now()) + return memo, nil } // MemUsedCGroup returns the total used amount of RAM on this system in container environment. func MemUsedCGroup() (uint64, error) { - mem, t := memUsage.get() + memo, t := memUsage.get() if time.Since(t) < 500*time.Millisecond { - return mem, nil + return memo, nil } - mem, err := readUint(cGroupMemUsagePath) + memo, err := readUint(cGroupMemUsagePath) if err != nil { - return mem, err + return memo, err } - memUsage.set(mem, time.Now()) - return mem, nil + memUsage.set(memo, time.Now()) + return memo, nil } func init() { diff --git a/util/memory/tracker.go b/util/memory/tracker.go index d0b1e17c22bc9..8754dfbc353cb 100644 --- a/util/memory/tracker.go +++ b/util/memory/tracker.go @@ -17,6 +17,7 @@ package memory import ( "bytes" "fmt" + "runtime" "strconv" "sync" "sync/atomic" @@ -72,6 +73,7 @@ type Tracker struct { label int // Label of this "Tracker". bytesConsumed int64 // Consumed bytes. + bytesReleased int64 // Released bytes. bytesLimit atomic.Value maxConsumed atomicutil.Int64 // max number of bytes consumed during execution. isGlobal bool // isGlobal indicates whether this tracker is global tracker @@ -82,6 +84,15 @@ type actionMu struct { actionOnExceed ActionOnExceed } +// EnableGCAwareMemoryTrack is used to turn on/off the GC-aware memory track +var EnableGCAwareMemoryTrack = atomicutil.NewBool(false) + +// https://golang.google.cn/pkg/runtime/#SetFinalizer +// It is not guaranteed that a finalizer will run if the size of *obj is zero bytes. +type finalizerRef struct { + byte //nolint:unused +} + // softScale means the scale of the soft limit to the hard limit. const softScale = 0.8 @@ -340,18 +351,19 @@ func (t *Tracker) ReplaceChild(oldChild, newChild *Tracker) { // Consume is used to consume a memory usage. "bytes" can be a negative value, // which means this is a memory release operation. When memory usage of a tracker // exceeds its bytesSoftLimit/bytesHardLimit, the tracker calls its action, so does each of its ancestors. -func (t *Tracker) Consume(bytes int64) { - if bytes == 0 { +func (t *Tracker) Consume(bs int64) { + if bs == 0 { return } var rootExceed, rootExceedForSoftLimit *Tracker for tracker := t; tracker != nil; tracker = tracker.getParent() { - bytesConsumed := atomic.AddInt64(&tracker.bytesConsumed, bytes) + bytesConsumed := atomic.AddInt64(&tracker.bytesConsumed, bs) + bytesReleased := atomic.LoadInt64(&tracker.bytesReleased) limits := tracker.bytesLimit.Load().(*bytesLimits) - if bytesConsumed >= limits.bytesHardLimit && limits.bytesHardLimit > 0 { + if bytesConsumed+bytesReleased >= limits.bytesHardLimit && limits.bytesHardLimit > 0 { rootExceed = tracker } - if bytesConsumed >= limits.bytesSoftLimit && limits.bytesSoftLimit > 0 { + if bytesConsumed+bytesReleased >= limits.bytesSoftLimit && limits.bytesSoftLimit > 0 { rootExceedForSoftLimit = tracker } @@ -362,7 +374,7 @@ func (t *Tracker) Consume(bytes int64) { continue } if label, ok := MetricsTypes[tracker.label]; ok { - metrics.MemoryUsage.WithLabelValues(label).Set(float64(consumed)) + metrics.MemoryUsage.WithLabelValues(label[0], label[1]).Set(float64(consumed)) } break } @@ -379,29 +391,90 @@ func (t *Tracker) Consume(bytes int64) { } } - if bytes > 0 && rootExceedForSoftLimit != nil { + if bs > 0 && rootExceedForSoftLimit != nil { tryAction(&rootExceedForSoftLimit.actionMuForSoftLimit, rootExceedForSoftLimit) } - if bytes > 0 && rootExceed != nil { + if bs > 0 && rootExceed != nil { tryAction(&rootExceed.actionMuForHardLimit, rootExceed) } } // BufferedConsume is used to buffer memory usage and do late consume +// not thread-safe, should be called in one goroutine func (t *Tracker) BufferedConsume(bufferedMemSize *int64, bytes int64) { *bufferedMemSize += bytes - if *bufferedMemSize > int64(TrackMemWhenExceeds) { + if *bufferedMemSize >= int64(TrackMemWhenExceeds) { t.Consume(*bufferedMemSize) *bufferedMemSize = int64(0) } } +// Release is used to release memory tracked, track the released memory until GC triggered if needed +// If you want your track to be GC-aware, please use Release(bytes) instead of Consume(-bytes), and pass the memory size of the real object. +// Only Analyze is integrated with Release so far. +func (t *Tracker) Release(bytes int64) { + if bytes == 0 { + return + } + defer t.Consume(-bytes) + for tracker := t; tracker != nil; tracker = tracker.getParent() { + if tracker.shouldRecordRelease() { + // use fake ref instead of obj ref, otherwise obj will be reachable again and gc in next cycle + newRef := &finalizerRef{} + runtime.SetFinalizer(newRef, func(ref *finalizerRef) { + tracker.release(bytes) + }) + tracker.recordRelease(bytes) + return + } + } +} + +// BufferedRelease is used to buffer memory release and do late release +// not thread-safe, should be called in one goroutine +func (t *Tracker) BufferedRelease(bufferedMemSize *int64, bytes int64) { + *bufferedMemSize += bytes + if *bufferedMemSize >= int64(TrackMemWhenExceeds) { + t.Release(*bufferedMemSize) + *bufferedMemSize = int64(0) + } +} + +func (t *Tracker) shouldRecordRelease() bool { + return EnableGCAwareMemoryTrack.Load() && t.label == LabelForGlobalAnalyzeMemory +} + +func (t *Tracker) recordRelease(bytes int64) { + for tracker := t; tracker != nil; tracker = tracker.getParent() { + bytesReleased := atomic.AddInt64(&tracker.bytesReleased, bytes) + if label, ok := MetricsTypes[tracker.label]; ok { + metrics.MemoryUsage.WithLabelValues(label[0], label[2]).Set(float64(bytesReleased)) + } + } +} + +func (t *Tracker) release(bytes int64) { + for tracker := t; tracker != nil; tracker = tracker.getParent() { + bytesReleased := atomic.AddInt64(&tracker.bytesReleased, -bytes) + if label, ok := MetricsTypes[tracker.label]; ok { + metrics.MemoryUsage.WithLabelValues(label[0], label[2]).Set(float64(bytesReleased)) + } + } +} + // BytesConsumed returns the consumed memory usage value in bytes. func (t *Tracker) BytesConsumed() int64 { return atomic.LoadInt64(&t.bytesConsumed) } +// BytesReleased returns the released memory value in bytes. +func (t *Tracker) BytesReleased() int64 { + return atomic.LoadInt64(&t.bytesReleased) +} + // MaxConsumed returns max number of bytes consumed during execution. +// Note: Don't make this method return -1 for special meanings in the future. Because binary plan has used -1 to +// distinguish between "0 bytes" and "N/A". ref: binaryOpFromFlatOp() func (t *Tracker) MaxConsumed() int64 { return t.maxConsumed.Load() } @@ -464,25 +537,25 @@ func (t *Tracker) toString(indent string, buffer *bytes.Buffer) { } // FormatBytes uses to format bytes, this function will prune precision before format bytes. -func (t *Tracker) FormatBytes(numBytes int64) string { +func (*Tracker) FormatBytes(numBytes int64) string { return FormatBytes(numBytes) } // BytesToString converts the memory consumption to a readable string. func BytesToString(numBytes int64) string { - GB := float64(numBytes) / float64(byteSizeGB) - if GB > 1 { - return fmt.Sprintf("%v GB", GB) + gb := float64(numBytes) / float64(byteSizeGB) + if gb > 1 { + return fmt.Sprintf("%v GB", gb) } - MB := float64(numBytes) / float64(byteSizeMB) - if MB > 1 { - return fmt.Sprintf("%v MB", MB) + mb := float64(numBytes) / float64(byteSizeMB) + if mb > 1 { + return fmt.Sprintf("%v MB", mb) } - KB := float64(numBytes) / float64(byteSizeKB) - if KB > 1 { - return fmt.Sprintf("%v KB", KB) + kb := float64(numBytes) / float64(byteSizeKB) + if kb > 1 { + return fmt.Sprintf("%v KB", kb) } return fmt.Sprintf("%v Bytes", numBytes) @@ -633,6 +706,7 @@ const ( ) // MetricsTypes is used to get label for metrics -var MetricsTypes = map[int]string{ - LabelForGlobalAnalyzeMemory: "analyze", +// string[0] is LblModule, string[1] is heap-in-use type, string[2] is released type +var MetricsTypes = map[int][]string{ + LabelForGlobalAnalyzeMemory: {"analyze", "inuse", "released"}, } diff --git a/util/memory/tracker_test.go b/util/memory/tracker_test.go index 263de711b5da2..58e4395470994 100644 --- a/util/memory/tracker_test.go +++ b/util/memory/tracker_test.go @@ -17,6 +17,8 @@ package memory import ( "errors" "math/rand" + "runtime" + "runtime/debug" "strconv" "strings" "sync" @@ -82,6 +84,91 @@ func TestConsume(t *testing.T) { require.Equal(t, int64(100), tracker.BytesConsumed()) } +func TestRelease(t *testing.T) { + debug.SetGCPercent(-1) + defer debug.SetGCPercent(100) + parentTracker := NewGlobalTracker(LabelForGlobalAnalyzeMemory, -1) + tracker := NewTracker(1, -1) + tracker.AttachToGlobalTracker(parentTracker) + require.Equal(t, int64(0), tracker.BytesConsumed()) + EnableGCAwareMemoryTrack.Store(false) + tracker.Consume(100) + require.Equal(t, int64(100), tracker.BytesConsumed()) + require.Equal(t, int64(100), parentTracker.BytesConsumed()) + tracker.Release(100) + require.Equal(t, int64(0), tracker.BytesConsumed()) + require.Equal(t, int64(0), parentTracker.BytesConsumed()) + require.Equal(t, int64(0), tracker.BytesReleased()) + require.Equal(t, int64(0), parentTracker.BytesReleased()) + + EnableGCAwareMemoryTrack.Store(true) + tracker.Consume(100) + require.Equal(t, int64(100), tracker.BytesConsumed()) + require.Equal(t, int64(100), parentTracker.BytesConsumed()) + tracker.Release(100) + require.Equal(t, int64(0), tracker.BytesConsumed()) + require.Equal(t, int64(0), parentTracker.BytesConsumed()) + require.Equal(t, int64(0), tracker.BytesReleased()) + require.Equal(t, int64(100), parentTracker.BytesReleased()) + // call GC() twice to workaround as the same way GO does due to GC() returns without finishing sweep + // https://github.com/golang/go/issues/45315 + runtime.GC() + runtime.GC() + require.Equal(t, int64(0), parentTracker.BytesReleased()) + + waitGroup := sync.WaitGroup{} + waitGroup.Add(10) + for i := 0; i < 10; i++ { + go func() { + defer waitGroup.Done() + tracker.Consume(10) + }() + } + waitGroup.Add(10) + for i := 0; i < 10; i++ { + go func() { + defer waitGroup.Done() + tracker.Release(10) + }() + } + waitGroup.Wait() + // call GC() twice to workaround as the same way GO does due to GC() returns without finishing sweep + // https://github.com/golang/go/issues/45315 + runtime.GC() + runtime.GC() + require.Equal(t, int64(0), tracker.BytesConsumed()) + require.Equal(t, int64(0), parentTracker.BytesConsumed()) + require.Equal(t, int64(0), tracker.BytesReleased()) + require.Equal(t, int64(0), parentTracker.BytesReleased()) +} + +func TestBufferedConsumeAndRelease(t *testing.T) { + debug.SetGCPercent(-1) + defer debug.SetGCPercent(100) + parentTracker := NewGlobalTracker(LabelForGlobalAnalyzeMemory, -1) + tracker := NewTracker(1, -1) + tracker.AttachToGlobalTracker(parentTracker) + require.Equal(t, int64(0), tracker.BytesConsumed()) + EnableGCAwareMemoryTrack.Store(true) + bufferedMemSize := int64(0) + tracker.BufferedConsume(&bufferedMemSize, int64(TrackMemWhenExceeds)/2) + require.Equal(t, int64(0), tracker.BytesConsumed()) + tracker.BufferedConsume(&bufferedMemSize, int64(TrackMemWhenExceeds)/2) + require.Equal(t, int64(TrackMemWhenExceeds), tracker.BytesConsumed()) + bufferedReleaseSize := int64(0) + tracker.BufferedRelease(&bufferedReleaseSize, int64(TrackMemWhenExceeds)/2) + require.Equal(t, int64(TrackMemWhenExceeds), parentTracker.BytesConsumed()) + require.Equal(t, int64(0), parentTracker.BytesReleased()) + tracker.BufferedRelease(&bufferedReleaseSize, int64(TrackMemWhenExceeds)/2) + require.Equal(t, int64(0), parentTracker.BytesConsumed()) + require.Equal(t, int64(TrackMemWhenExceeds), parentTracker.BytesReleased()) + // call GC() twice to workaround as the same way GO does due to GC() returns without finishing sweep + // https://github.com/golang/go/issues/45315 + runtime.GC() + runtime.GC() + require.Equal(t, int64(0), parentTracker.BytesReleased()) +} + func TestOOMAction(t *testing.T) { tracker := NewTracker(1, 100) // make sure no panic here. diff --git a/util/misc.go b/util/misc.go index 498e7433d2fd0..cad205c1c746f 100644 --- a/util/misc.go +++ b/util/misc.go @@ -102,7 +102,7 @@ func WithRecovery(exec func(), recoverFn func(r interface{})) { // recoverFn: Handler will be called after recover and before dump stack, passing `nil` means noop. // quit: If this value is true, the current program exits after recovery. func Recover(metricsLabel, funcInfo string, recoverFn func(), quit bool) { - r := recover() + r := recover() //nolint: revive if r == nil { return } @@ -529,7 +529,6 @@ func LoadTLSCertificates(ca, key, cert string, autoTLS bool, rsaKeySize int) (tl cipherNames = append(cipherNames, sc.Name) cipherSuites = append(cipherSuites, sc.ID) } - } logutil.BgLogger().Info("Enabled ciphersuites", zap.Strings("cipherNames", cipherNames)) diff --git a/util/mock/BUILD.bazel b/util/mock/BUILD.bazel index a438de7ec2cb5..62263bdfc506f 100644 --- a/util/mock/BUILD.bazel +++ b/util/mock/BUILD.bazel @@ -37,12 +37,14 @@ go_library( go_test( name = "mock_test", + timeout = "short", srcs = [ "iter_test.go", "main_test.go", "mock_test.go", ], embed = [":mock"], + flaky = True, deps = [ "//kv", "//testkit/testsetup", diff --git a/util/mock/client.go b/util/mock/client.go index a8b64d9b1bf74..ffcf393cc99fd 100644 --- a/util/mock/client.go +++ b/util/mock/client.go @@ -28,6 +28,6 @@ type Client struct { } // Send implement kv.Client interface. -func (c *Client) Send(ctx context.Context, req *kv.Request, kv interface{}, option *kv.ClientSendOption) kv.Response { +func (c *Client) Send(_ context.Context, _ *kv.Request, _ interface{}, _ *kv.ClientSendOption) kv.Response { return c.MockResponse } diff --git a/util/mock/context.go b/util/mock/context.go index 9efe655094ab1..06d1774c58566 100644 --- a/util/mock/context.go +++ b/util/mock/context.go @@ -111,12 +111,12 @@ func (txn *wrapTxn) GetTableInfo(id int64) *model.TableInfo { } // Execute implements sqlexec.SQLExecutor Execute interface. -func (c *Context) Execute(ctx context.Context, sql string) ([]sqlexec.RecordSet, error) { +func (*Context) Execute(_ context.Context, _ string) ([]sqlexec.RecordSet, error) { return nil, errors.Errorf("Not Supported") } // ExecuteStmt implements sqlexec.SQLExecutor ExecuteStmt interface. -func (c *Context) ExecuteStmt(ctx context.Context, stmtNode ast.StmtNode) (sqlexec.RecordSet, error) { +func (*Context) ExecuteStmt(_ context.Context, _ ast.StmtNode) (sqlexec.RecordSet, error) { return nil, errors.Errorf("Not Supported") } @@ -131,17 +131,17 @@ func (c *Context) ClearDiskFullOpt() { } // ExecuteInternal implements sqlexec.SQLExecutor ExecuteInternal interface. -func (c *Context) ExecuteInternal(ctx context.Context, sql string, args ...interface{}) (sqlexec.RecordSet, error) { +func (*Context) ExecuteInternal(_ context.Context, _ string, _ ...interface{}) (sqlexec.RecordSet, error) { return nil, errors.Errorf("Not Supported") } // ShowProcess implements sessionctx.Context ShowProcess interface. -func (c *Context) ShowProcess() *util.ProcessInfo { +func (*Context) ShowProcess() *util.ProcessInfo { return &util.ProcessInfo{} } // IsDDLOwner checks whether this session is DDL owner. -func (c *Context) IsDDLOwner() bool { +func (*Context) IsDDLOwner() bool { return true } @@ -162,7 +162,7 @@ func (c *Context) ClearValue(key fmt.Stringer) { } // HasDirtyContent implements sessionctx.Context ClearValue interface. -func (c *Context) HasDirtyContent(tid int64) bool { +func (*Context) HasDirtyContent(_ int64) bool { return false } @@ -221,17 +221,15 @@ func (c *Context) GetDomainInfoSchema() sessionctx.InfoschemaMetaVersion { } // GetBuiltinFunctionUsage implements sessionctx.Context GetBuiltinFunctionUsage interface. -func (c *Context) GetBuiltinFunctionUsage() map[string]uint32 { +func (*Context) GetBuiltinFunctionUsage() map[string]uint32 { return make(map[string]uint32) } // BuiltinFunctionUsageInc implements sessionctx.Context. -func (c *Context) BuiltinFunctionUsageInc(scalarFuncSigName string) { - -} +func (*Context) BuiltinFunctionUsageInc(_ string) {} // GetGlobalSysVar implements GlobalVarAccessor GetGlobalSysVar interface. -func (c *Context) GetGlobalSysVar(ctx sessionctx.Context, name string) (string, error) { +func (*Context) GetGlobalSysVar(_ sessionctx.Context, name string) (string, error) { v := variable.GetSysVar(name) if v == nil { return "", variable.ErrUnknownSystemVar.GenWithStackByArgs(name) @@ -240,7 +238,7 @@ func (c *Context) GetGlobalSysVar(ctx sessionctx.Context, name string) (string, } // SetGlobalSysVar implements GlobalVarAccessor SetGlobalSysVar interface. -func (c *Context) SetGlobalSysVar(ctx sessionctx.Context, name string, value string) error { +func (*Context) SetGlobalSysVar(_ sessionctx.Context, name string, value string) error { v := variable.GetSysVar(name) if v == nil { return variable.ErrUnknownSystemVar.GenWithStackByArgs(name) @@ -275,7 +273,7 @@ func (c *Context) NewTxn(context.Context) error { } // NewStaleTxnWithStartTS implements the sessionctx.Context interface. -func (c *Context) NewStaleTxnWithStartTS(ctx context.Context, startTS uint64) error { +func (c *Context) NewStaleTxnWithStartTS(ctx context.Context, _ uint64) error { return c.NewTxn(ctx) } @@ -285,12 +283,12 @@ func (c *Context) RefreshTxnCtx(ctx context.Context) error { } // RefreshVars implements the sessionctx.Context interface. -func (c *Context) RefreshVars(ctx context.Context) error { +func (*Context) RefreshVars(_ context.Context) error { return nil } // RollbackTxn indicates an expected call of RollbackTxn. -func (c *Context) RollbackTxn(ctx context.Context) { +func (c *Context) RollbackTxn(_ context.Context) { defer c.sessionVars.SetInTxn(false) if c.txn.Valid() { terror.Log(c.txn.Rollback()) @@ -333,64 +331,64 @@ func (c *Context) GoCtx() context.Context { } // StoreQueryFeedback stores the query feedback. -func (c *Context) StoreQueryFeedback(_ interface{}) {} +func (*Context) StoreQueryFeedback(_ interface{}) {} // UpdateColStatsUsage updates the column stats usage. -func (c *Context) UpdateColStatsUsage(_ []model.TableItemID) {} +func (*Context) UpdateColStatsUsage(_ []model.TableItemID) {} // StoreIndexUsage strores the index usage information. -func (c *Context) StoreIndexUsage(_ int64, _ int64, _ int64) {} +func (*Context) StoreIndexUsage(_ int64, _ int64, _ int64) {} // GetTxnWriteThroughputSLI implements the sessionctx.Context interface. -func (c *Context) GetTxnWriteThroughputSLI() *sli.TxnWriteThroughputSLI { +func (*Context) GetTxnWriteThroughputSLI() *sli.TxnWriteThroughputSLI { return &sli.TxnWriteThroughputSLI{} } // StmtCommit implements the sessionctx.Context interface. -func (c *Context) StmtCommit() {} +func (*Context) StmtCommit() {} // StmtRollback implements the sessionctx.Context interface. -func (c *Context) StmtRollback() { +func (*Context) StmtRollback() { } // StmtGetMutation implements the sessionctx.Context interface. -func (c *Context) StmtGetMutation(tableID int64) *binlog.TableMutation { +func (*Context) StmtGetMutation(_ int64) *binlog.TableMutation { return nil } // AddTableLock implements the sessionctx.Context interface. -func (c *Context) AddTableLock(_ []model.TableLockTpInfo) { +func (*Context) AddTableLock(_ []model.TableLockTpInfo) { } // ReleaseTableLocks implements the sessionctx.Context interface. -func (c *Context) ReleaseTableLocks(locks []model.TableLockTpInfo) { +func (*Context) ReleaseTableLocks(_ []model.TableLockTpInfo) { } // ReleaseTableLockByTableIDs implements the sessionctx.Context interface. -func (c *Context) ReleaseTableLockByTableIDs(tableIDs []int64) { +func (*Context) ReleaseTableLockByTableIDs(_ []int64) { } // CheckTableLocked implements the sessionctx.Context interface. -func (c *Context) CheckTableLocked(_ int64) (bool, model.TableLockType) { +func (*Context) CheckTableLocked(_ int64) (bool, model.TableLockType) { return false, model.TableLockNone } // GetAllTableLocks implements the sessionctx.Context interface. -func (c *Context) GetAllTableLocks() []model.TableLockTpInfo { +func (*Context) GetAllTableLocks() []model.TableLockTpInfo { return nil } // ReleaseAllTableLocks implements the sessionctx.Context interface. -func (c *Context) ReleaseAllTableLocks() { +func (*Context) ReleaseAllTableLocks() { } // HasLockedTables implements the sessionctx.Context interface. -func (c *Context) HasLockedTables() bool { +func (*Context) HasLockedTables() bool { return false } // PrepareTSFuture implements the sessionctx.Context interface. -func (c *Context) PrepareTSFuture(ctx context.Context, future oracle.Future, scope string) error { +func (c *Context) PrepareTSFuture(_ context.Context, future oracle.Future, _ string) error { c.txn.Transaction = nil c.txn.tsFuture = future return nil @@ -406,38 +404,37 @@ func (c *Context) GetPreparedTxnFuture() sessionctx.TxnFuture { } // GetStmtStats implements the sessionctx.Context interface. -func (c *Context) GetStmtStats() *stmtstats.StatementStats { +func (*Context) GetStmtStats() *stmtstats.StatementStats { return nil } // GetAdvisoryLock acquires an advisory lock -func (c *Context) GetAdvisoryLock(lockName string, timeout int64) error { +func (*Context) GetAdvisoryLock(_ string, _ int64) error { return nil } // ReleaseAdvisoryLock releases an advisory lock -func (c *Context) ReleaseAdvisoryLock(lockName string) bool { +func (*Context) ReleaseAdvisoryLock(_ string) bool { return true } // ReleaseAllAdvisoryLocks releases all advisory locks -func (c *Context) ReleaseAllAdvisoryLocks() int { +func (*Context) ReleaseAllAdvisoryLocks() int { return 0 } // EncodeSessionStates implements sessionctx.Context EncodeSessionStates interface. -func (c *Context) EncodeSessionStates(context.Context, sessionctx.Context, *sessionstates.SessionStates) error { +func (*Context) EncodeSessionStates(context.Context, sessionctx.Context, *sessionstates.SessionStates) error { return errors.Errorf("Not Supported") } // DecodeSessionStates implements sessionctx.Context DecodeSessionStates interface. -func (c *Context) DecodeSessionStates(context.Context, sessionctx.Context, *sessionstates.SessionStates) error { +func (*Context) DecodeSessionStates(context.Context, sessionctx.Context, *sessionstates.SessionStates) error { return errors.Errorf("Not Supported") } // Close implements the sessionctx.Context interface. -func (c *Context) Close() { -} +func (*Context) Close() {} // NewContext creates a new mocked sessionctx.Context. func NewContext() *Context { @@ -454,6 +451,8 @@ func NewContext() *Context { sctx.sessionVars.StmtCtx.MemTracker = memory.NewTracker(-1, -1) sctx.sessionVars.StmtCtx.DiskTracker = disk.NewTracker(-1, -1) sctx.sessionVars.GlobalVarsAccessor = variable.NewMockGlobalAccessor() + sctx.sessionVars.EnablePaging = variable.DefTiDBEnablePaging + sctx.sessionVars.MinPagingSize = variable.DefMinPagingSize if err := sctx.GetSessionVars().SetSystemVar(variable.MaxAllowedPacket, "67108864"); err != nil { panic(err) } diff --git a/util/mock/store.go b/util/mock/store.go index 9d0ba2815cda5..3e5784fdb4d5a 100644 --- a/util/mock/store.go +++ b/util/mock/store.go @@ -32,51 +32,51 @@ type Store struct { func (s *Store) GetClient() kv.Client { return s.Client } // GetMPPClient implements kv.Storage interface. -func (s *Store) GetMPPClient() kv.MPPClient { return nil } +func (*Store) GetMPPClient() kv.MPPClient { return nil } // GetOracle implements kv.Storage interface. -func (s *Store) GetOracle() oracle.Oracle { return nil } +func (*Store) GetOracle() oracle.Oracle { return nil } // Begin implements kv.Storage interface. -func (s *Store) Begin(opts ...tikv.TxnOption) (kv.Transaction, error) { return nil, nil } +func (*Store) Begin(_ ...tikv.TxnOption) (kv.Transaction, error) { return nil, nil } // GetSnapshot implements kv.Storage interface. -func (s *Store) GetSnapshot(ver kv.Version) kv.Snapshot { return nil } +func (*Store) GetSnapshot(_ kv.Version) kv.Snapshot { return nil } // Close implements kv.Storage interface. -func (s *Store) Close() error { return nil } +func (*Store) Close() error { return nil } // UUID implements kv.Storage interface. -func (s *Store) UUID() string { return "mock" } +func (*Store) UUID() string { return "mock" } // CurrentVersion implements kv.Storage interface. -func (s *Store) CurrentVersion(txnScope string) (kv.Version, error) { return kv.Version{}, nil } +func (*Store) CurrentVersion(_ string) (kv.Version, error) { return kv.Version{}, nil } // SupportDeleteRange implements kv.Storage interface. -func (s *Store) SupportDeleteRange() bool { return false } +func (*Store) SupportDeleteRange() bool { return false } // Name implements kv.Storage interface. -func (s *Store) Name() string { return "UtilMockStorage" } +func (*Store) Name() string { return "UtilMockStorage" } // Describe implements kv.Storage interface. -func (s *Store) Describe() string { +func (*Store) Describe() string { return "UtilMockStorage is a mock Store implementation, only for unittests in util package" } // GetMemCache implements kv.Storage interface -func (s *Store) GetMemCache() kv.MemManager { +func (*Store) GetMemCache() kv.MemManager { return nil } // ShowStatus implements kv.Storage interface. -func (s *Store) ShowStatus(ctx context.Context, key string) (interface{}, error) { return nil, nil } +func (*Store) ShowStatus(_ context.Context, _ string) (interface{}, error) { return nil, nil } // GetMinSafeTS implements kv.Storage interface. -func (s *Store) GetMinSafeTS(txnScope string) uint64 { +func (*Store) GetMinSafeTS(_ string) uint64 { return 0 } // GetLockWaits implements kv.Storage interface. -func (s *Store) GetLockWaits() ([]*deadlockpb.WaitForEntry, error) { +func (*Store) GetLockWaits() ([]*deadlockpb.WaitForEntry, error) { return nil, nil } diff --git a/util/mvmap/BUILD.bazel b/util/mvmap/BUILD.bazel index b6a1819054206..88855b41b3549 100644 --- a/util/mvmap/BUILD.bazel +++ b/util/mvmap/BUILD.bazel @@ -13,12 +13,14 @@ go_library( go_test( name = "mvmap_test", + timeout = "short", srcs = [ "bench_test.go", "main_test.go", "mvmap_test.go", ], embed = [":mvmap"], + flaky = True, deps = [ "//testkit/testsetup", "@com_github_stretchr_testify//require", diff --git a/util/paging/BUILD.bazel b/util/paging/BUILD.bazel index f07dbeb8ff1f9..f89101aac0c29 100644 --- a/util/paging/BUILD.bazel +++ b/util/paging/BUILD.bazel @@ -9,11 +9,13 @@ go_library( go_test( name = "paging_test", + timeout = "short", srcs = [ "main_test.go", "paging_test.go", ], embed = [":paging"], + flaky = True, deps = [ "//testkit/testsetup", "@com_github_stretchr_testify//require", diff --git a/util/paging/paging.go b/util/paging/paging.go index 5f2618ea341db..510e1847fbc2b 100644 --- a/util/paging/paging.go +++ b/util/paging/paging.go @@ -17,16 +17,15 @@ package paging import "math" // A paging request may be separated into multi requests if there are more data than a page. -// The paging size grows from min to max, it's not well tuned yet. -// e.g. a paging request scans over range (r1, r200), it requires 64 rows in the first batch, +// The paging size grows from min to max. See https://github.com/pingcap/tidb/issues/36328 +// e.g. a paging request scans over range (r1, r200), it requires 128 rows in the first batch, // if it's not drained, then the paging size grows, the new range is calculated like (r100, r200), then send a request again. // Compare with the common unary request, paging request allows early access of data, it offers a streaming-like way processing data. -// TODO: may make the paging parameters configurable. const ( - MinPagingSize uint64 = 64 + MinPagingSize uint64 = 128 maxPagingSizeShift = 7 pagingSizeGrow = 2 - MaxPagingSize = MinPagingSize << maxPagingSizeShift + MaxPagingSize = 8192 pagingGrowingSum = ((2 << maxPagingSizeShift) - 1) * MinPagingSize Threshold uint64 = 960 ) diff --git a/util/paging/paging_test.go b/util/paging/paging_test.go index 1890b4d754d54..6d9bba9121e86 100644 --- a/util/paging/paging_test.go +++ b/util/paging/paging_test.go @@ -22,8 +22,8 @@ import ( func TestGrowPagingSize(t *testing.T) { require.Equal(t, GrowPagingSize(MinPagingSize), MinPagingSize*pagingSizeGrow) - require.Equal(t, GrowPagingSize(MaxPagingSize), MaxPagingSize) - require.Equal(t, GrowPagingSize(MaxPagingSize/pagingSizeGrow+1), MaxPagingSize) + require.Equal(t, GrowPagingSize(MaxPagingSize), uint64(MaxPagingSize)) + require.Equal(t, GrowPagingSize(MaxPagingSize/pagingSizeGrow+1), uint64(MaxPagingSize)) } func TestCalculateSeekCnt(t *testing.T) { diff --git a/util/parser/BUILD.bazel b/util/parser/BUILD.bazel index bc2fed3317381..06779de5d3438 100644 --- a/util/parser/BUILD.bazel +++ b/util/parser/BUILD.bazel @@ -19,11 +19,13 @@ go_library( go_test( name = "parser_test", + timeout = "short", srcs = [ "ast_test.go", "main_test.go", "parser_test.go", ], + flaky = True, deps = [ ":parser", "//parser", diff --git a/util/parser/ast.go b/util/parser/ast.go index 91ac97871021b..f9ab939c03bb3 100644 --- a/util/parser/ast.go +++ b/util/parser/ast.go @@ -44,11 +44,12 @@ func (i *implicitDatabase) Enter(in ast.Node) (out ast.Node, skipChildren bool) i.hasImplicit = true } return in, true + default: + return in, i.hasImplicit } - return in, i.hasImplicit } -func (i *implicitDatabase) Leave(in ast.Node) (out ast.Node, ok bool) { +func (*implicitDatabase) Leave(in ast.Node) (out ast.Node, ok bool) { return in, true } diff --git a/util/parser/parser.go b/util/parser/parser.go index 441ddbcf26183..bcd02facd8818 100644 --- a/util/parser/parser.go +++ b/util/parser/parser.go @@ -27,9 +27,10 @@ var ( ) // Match matches the `pat` at least `times`, and returns the match, the rest and the error -func Match(buf string, pat func(byte) bool, times int) (string, string, error) { - var i int - for i = 0; i < len(buf) && pat(buf[i]); i++ { +func Match(buf string, pat func(byte) bool, times int) (match string, rest string, err error) { + var i int = 0 + for i < len(buf) && pat(buf[i]) { + i++ } if i < times { return "", buf, ErrPatternNotMatch @@ -84,7 +85,7 @@ func Space0(buf string) string { } // Digit matches at least `times` digits -func Digit(buf string, times int) (string, string, error) { +func Digit(buf string, times int) (match string, rest string, err error) { return Match(buf, func(c byte) bool { return unicode.IsDigit(rune(c)) }, times) diff --git a/util/plancodec/BUILD.bazel b/util/plancodec/BUILD.bazel index 199bde529da8a..776c53d63a816 100644 --- a/util/plancodec/BUILD.bazel +++ b/util/plancodec/BUILD.bazel @@ -3,6 +3,7 @@ load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") go_library( name = "plancodec", srcs = [ + "binary_plan_decode.go", "codec.go", "id.go", ], @@ -10,20 +11,25 @@ go_library( visibility = ["//visibility:public"], deps = [ "//kv", + "//util/hack", + "//util/memory", "//util/texttree", "@com_github_golang_snappy//:snappy", "@com_github_pingcap_errors//:errors", + "@com_github_pingcap_tipb//go-tipb", ], ) go_test( name = "plancodec_test", + timeout = "short", srcs = [ "codec_test.go", "id_test.go", "main_test.go", ], embed = [":plancodec"], + flaky = True, deps = [ "//kv", "//testkit/testsetup", diff --git a/util/plancodec/binary_plan_decode.go b/util/plancodec/binary_plan_decode.go new file mode 100644 index 0000000000000..74f5c097bc94d --- /dev/null +++ b/util/plancodec/binary_plan_decode.go @@ -0,0 +1,300 @@ +// Copyright 2022 PingCAP, Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package plancodec + +import ( + "strconv" + "strings" + + "github.com/pingcap/tidb/util/memory" + "github.com/pingcap/tidb/util/texttree" + "github.com/pingcap/tipb/go-tipb" +) + +// DecodeBinaryPlan decode the binary plan and display it similar to EXPLAIN ANALYZE statement. +func DecodeBinaryPlan(binaryPlan string) (string, error) { + protoBytes, err := decompress(binaryPlan) + if err != nil { + return "", err + } + pb := &tipb.ExplainData{} + err = pb.Unmarshal(protoBytes) + if err != nil { + return "", err + } + if pb.DiscardedDueToTooLong { + return planDiscardedDecoded, nil + } + // 1. decode the protobuf into strings + rows := decodeBinaryOperator(pb.Main, "", true, pb.WithRuntimeStats, nil) + for _, cte := range pb.Ctes { + rows = decodeBinaryOperator(cte, "", true, pb.WithRuntimeStats, rows) + } + if len(rows) == 0 { + return "", nil + } + + // 2. calculate the max length of each column and the total length + // Because the text tree part of the "id" column contains characters that consist of multiple bytes, we need the + // lengths calculated in bytes and runes both. Length in bytes is for preallocating memory. Length in runes is + // for padding space to align the content. + runeMaxLens, byteMaxLens := calculateMaxFieldLens(rows, pb.WithRuntimeStats) + singleRowLen := 0 + for _, fieldLen := range byteMaxLens { + singleRowLen += fieldLen + // every field begins with "| " and ends with " " + singleRowLen += 3 + } + // every row ends with " |\n" + singleRowLen += 3 + // length for a row * (row count + 1(for title row)) + totalBytes := singleRowLen * (len(rows) + 1) + // there is a "\n" at the beginning + totalBytes++ + + // 3. format the strings and get the final result + var b strings.Builder + b.Grow(totalBytes) + var titleFields []string + if pb.WithRuntimeStats { + titleFields = fullTitleFields + } else { + titleFields = noRuntimeStatsTitleFields + } + b.WriteString("\n") + for i, str := range titleFields { + b.WriteString("| ") + b.WriteString(str) + if len([]rune(str)) < runeMaxLens[i] { + // append spaces to align the content + b.WriteString(strings.Repeat(" ", runeMaxLens[i]-len([]rune(str)))) + } + b.WriteString(" ") + if i == len(titleFields)-1 { + b.WriteString(" |\n") + } + } + for _, row := range rows { + for i, str := range row { + b.WriteString("| ") + b.WriteString(str) + if len([]rune(str)) < runeMaxLens[i] { + // append spaces to align the content + b.WriteString(strings.Repeat(" ", runeMaxLens[i]-len([]rune(str)))) + } + b.WriteString(" ") + if i == len(titleFields)-1 { + b.WriteString(" |\n") + } + } + } + return b.String(), nil +} + +var ( + noRuntimeStatsTitleFields = []string{"id", "estRows", "estCost", "task", "access object", "operator info"} + fullTitleFields = []string{"id", "estRows", "estCost", "actRows", "task", "access object", "execution info", "operator info", "memory", "disk"} +) + +func calculateMaxFieldLens(rows [][]string, hasRuntimeStats bool) (runeLens, byteLens []int) { + runeLens = make([]int, len(rows[0])) + byteLens = make([]int, len(rows[0])) + for _, row := range rows { + for i, field := range row { + if runeLens[i] < len([]rune(field)) { + runeLens[i] = len([]rune(field)) + } + if byteLens[i] < len(field) { + byteLens[i] = len(field) + } + } + } + var titleFields []string + if hasRuntimeStats { + titleFields = fullTitleFields + } else { + titleFields = noRuntimeStatsTitleFields + } + for i := range byteLens { + if runeLens[i] < len([]rune(titleFields[i])) { + runeLens[i] = len([]rune(titleFields[i])) + } + if byteLens[i] < len(titleFields[i]) { + byteLens[i] = len(titleFields[i]) + } + } + return +} + +func decodeBinaryOperator(op *tipb.ExplainOperator, indent string, isLastChild, hasRuntimeStats bool, out [][]string) [][]string { + row := make([]string, 0, 10) + + // 1. extract the information and turn them into strings for display + explainID := texttree.PrettyIdentifier(op.Name+printDriverSide(op.Labels), indent, isLastChild) + estRows := strconv.FormatFloat(op.EstRows, 'f', 2, 64) + cost := strconv.FormatFloat(op.Cost, 'f', 2, 64) + var actRows, execInfo, memInfo, diskInfo string + if hasRuntimeStats { + actRows = strconv.FormatInt(int64(op.ActRows), 10) + execInfo = op.RootBasicExecInfo + groupExecInfo := strings.Join(op.RootGroupExecInfo, ",") + if len(groupExecInfo) > 0 { + if len(execInfo) > 0 { + execInfo += ", " + } + execInfo += groupExecInfo + } + if len(op.CopExecInfo) > 0 { + if len(execInfo) > 0 { + execInfo += ", " + } + execInfo += op.CopExecInfo + } + if op.MemoryBytes < 0 { + memInfo = "N/A" + } else { + memInfo = memory.FormatBytes(op.MemoryBytes) + } + if op.DiskBytes < 0 { + diskInfo = "N/A" + } else { + diskInfo = memory.FormatBytes(op.DiskBytes) + } + } + task := op.TaskType.String() + if op.TaskType != tipb.TaskType_unknown && op.TaskType != tipb.TaskType_root { + task = task + "[" + op.StoreType.String() + "]" + } + accessObject := printAccessObject(op.AccessObjects) + + // 2. append the strings to the slice + row = append(row, explainID, estRows, cost) + if hasRuntimeStats { + row = append(row, actRows) + } + row = append(row, task, accessObject) + if hasRuntimeStats { + row = append(row, execInfo) + } + row = append(row, op.OperatorInfo) + if hasRuntimeStats { + row = append(row, memInfo, diskInfo) + } + out = append(out, row) + + // 3. recursively process the children + children := make([]*tipb.ExplainOperator, len(op.Children)) + copy(children, op.Children) + if len(children) == 2 && + len(children[0].Labels) >= 1 && + children[0].Labels[0] == tipb.OperatorLabel_probeSide && + len(children[1].Labels) >= 1 && + children[1].Labels[0] == tipb.OperatorLabel_buildSide { + children[0], children[1] = children[1], children[0] + } + childIndent := texttree.Indent4Child(indent, isLastChild) + for i, child := range children { + out = decodeBinaryOperator(child, childIndent, i == len(children)-1, hasRuntimeStats, out) + } + return out +} + +func printDriverSide(labels []tipb.OperatorLabel) string { + strs := make([]string, 0, len(labels)) + for _, label := range labels { + switch label { + case tipb.OperatorLabel_empty: + strs = append(strs, "") + case tipb.OperatorLabel_buildSide: + strs = append(strs, "(Build)") + case tipb.OperatorLabel_probeSide: + strs = append(strs, "(Probe)") + case tipb.OperatorLabel_seedPart: + strs = append(strs, "(Seed Part)") + case tipb.OperatorLabel_recursivePart: + strs = append(strs, "(Recursive Part)") + } + } + return strings.Join(strs, "") +} + +func printDynamicPartitionObject(ao *tipb.DynamicPartitionAccessObject) string { + if ao == nil { + return "" + } + if ao.AllPartitions { + return "partition:all" + } else if len(ao.Partitions) == 0 { + return "partition:dual" + } + return "partition:" + strings.Join(ao.Partitions, ",") +} + +func printAccessObject(pbAccessObjs []*tipb.AccessObject) string { + strs := make([]string, 0, len(pbAccessObjs)) + for _, pbAccessObj := range pbAccessObjs { + switch ao := pbAccessObj.AccessObject.(type) { + case *tipb.AccessObject_DynamicPartitionObjects: + if ao == nil || ao.DynamicPartitionObjects == nil { + return "" + } + aos := ao.DynamicPartitionObjects.Objects + if len(aos) == 0 { + return "" + } + // If it only involves one table, just print the partitions. + if len(aos) == 1 { + return printDynamicPartitionObject(aos[0]) + } + var b strings.Builder + // If it involves multiple tables, we also need to print the table name. + for i, access := range aos { + if access == nil { + continue + } + if i != 0 { + b.WriteString(", ") + } + b.WriteString(printDynamicPartitionObject(access)) + b.WriteString(" of " + access.Table) + } + strs = append(strs, b.String()) + case *tipb.AccessObject_ScanObject: + if ao == nil || ao.ScanObject == nil { + return "" + } + scanAO := ao.ScanObject + var b strings.Builder + if len(scanAO.Table) > 0 { + b.WriteString("table:" + scanAO.Table) + } + if len(scanAO.Partitions) > 0 { + b.WriteString(", partition:" + strings.Join(scanAO.Partitions, ",")) + } + for _, index := range scanAO.Indexes { + if index.IsClusteredIndex { + b.WriteString(", clustered index:") + } else { + b.WriteString(", index:") + } + b.WriteString(index.Name + "(" + strings.Join(index.Cols, ", ") + ")") + } + strs = append(strs, b.String()) + case *tipb.AccessObject_OtherObject: + strs = append(strs, ao.OtherObject) + } + } + return strings.Join(strs, "") +} diff --git a/util/plancodec/codec.go b/util/plancodec/codec.go index 28284020aca16..179ef945d23ff 100644 --- a/util/plancodec/codec.go +++ b/util/plancodec/codec.go @@ -25,7 +25,9 @@ import ( "github.com/golang/snappy" "github.com/pingcap/errors" "github.com/pingcap/tidb/kv" + "github.com/pingcap/tidb/util/hack" "github.com/pingcap/tidb/util/texttree" + "github.com/pingcap/tipb/go-tipb" ) const ( @@ -45,6 +47,15 @@ var ( // PlanDiscardedEncoded indicates the discard plan because it is too long PlanDiscardedEncoded = "[discard]" planDiscardedDecoded = "(plan discarded because too long)" + // BinaryPlanDiscardedEncoded is a special binary plan that represents it's discarded because of too long. + BinaryPlanDiscardedEncoded = func() string { + binary := &tipb.ExplainData{DiscardedDueToTooLong: true} + proto, err := binary.Marshal() + if err != nil { + return "" + } + return Compress(proto) + }() ) var decoderPool = sync.Pool{ @@ -92,14 +103,14 @@ type planInfo struct { } func (pd *planDecoder) decode(planString string) (string, error) { - str, err := decompress(planString) + b, err := decompress(planString) if err != nil { if planString == PlanDiscardedEncoded { return planDiscardedDecoded, nil } return "", err } - return pd.buildPlanTree(str) + return pd.buildPlanTree(string(hack.String(b))) } func (pd *planDecoder) buildPlanTree(planString string) (string, error) { @@ -323,7 +334,7 @@ func decodePlanInfo(str string) (*planInfo, error) { } // EncodePlanNode is used to encode the plan to a string. -func EncodePlanNode(depth, pid int, planType string, rowCount float64, +func EncodePlanNode(depth int, pid, planType string, rowCount float64, taskTypeInfo, explainInfo, actRows, analyzeInfo, memoryInfo, diskInfo string, buf *bytes.Buffer) { explainInfo = escapeString(explainInfo) buf.WriteString(strconv.Itoa(depth)) @@ -371,9 +382,9 @@ func NormalizePlanNode(depth int, planType string, taskTypeInfo string, explainI buf.WriteByte(lineBreaker) } -func encodeID(planType string, id int) string { +func encodeID(planType, id string) string { planID := TypeStringToPhysicalID(planType) - return strconv.Itoa(planID) + idSeparator + strconv.Itoa(id) + return strconv.Itoa(planID) + idSeparator + id } // EncodeTaskType is used to encode task type to a string. @@ -409,21 +420,21 @@ func decodeTaskType(str string) (string, error) { return "cop[" + ((kv.StoreType)(storeType)).Name() + "]", nil } -// Compress is used to compress the input with zlib. +// Compress compresses the input with snappy then encodes it with base64. func Compress(input []byte) string { compressBytes := snappy.Encode(nil, input) return base64.StdEncoding.EncodeToString(compressBytes) } -func decompress(str string) (string, error) { +func decompress(str string) ([]byte, error) { decodeBytes, err := base64.StdEncoding.DecodeString(str) if err != nil { - return "", err + return nil, err } bs, err := snappy.Decode(nil, decodeBytes) if err != nil { - return "", err + return nil, err } - return string(bs), nil + return bs, nil } diff --git a/util/printer/BUILD.bazel b/util/printer/BUILD.bazel index a39b3d7170e7a..0eeabc5bb7d6b 100644 --- a/util/printer/BUILD.bazel +++ b/util/printer/BUILD.bazel @@ -17,11 +17,13 @@ go_library( go_test( name = "printer_test", + timeout = "short", srcs = [ "main_test.go", "printer_test.go", ], embed = [":printer"], + flaky = True, deps = [ "//testkit/testsetup", "@com_github_stretchr_testify//require", diff --git a/util/profile/BUILD.bazel b/util/profile/BUILD.bazel index e868e3200d0c6..1105932f44f17 100644 --- a/util/profile/BUILD.bazel +++ b/util/profile/BUILD.bazel @@ -20,6 +20,7 @@ go_library( go_test( name = "profile_test", + timeout = "short", srcs = [ "flamegraph_test.go", "main_test.go", @@ -27,6 +28,7 @@ go_test( ], data = glob(["testdata/**"]), embed = [":profile"], + flaky = True, deps = [ "//domain", "//kv", diff --git a/util/profile/profile.go b/util/profile/profile.go index 720a2ff1bd524..686b08c31499d 100644 --- a/util/profile/profile.go +++ b/util/profile/profile.go @@ -44,7 +44,7 @@ func (c *Collector) ProfileReaderToDatums(f io.Reader) ([][]types.Datum, error) return c.profileToDatums(p) } -func (c *Collector) profileToFlamegraphNode(p *profile.Profile) (*flamegraphNode, error) { +func (*Collector) profileToFlamegraphNode(p *profile.Profile) (*flamegraphNode, error) { err := p.CheckValid() if err != nil { return nil, err @@ -108,7 +108,7 @@ func (c *Collector) ProfileGraph(name string) ([][]types.Datum, error) { } // ParseGoroutines returns the groutine list for given string representation -func (c *Collector) ParseGoroutines(reader io.Reader) ([][]types.Datum, error) { +func (*Collector) ParseGoroutines(reader io.Reader) ([][]types.Datum, error) { content, err := io.ReadAll(reader) if err != nil { return nil, err diff --git a/util/promutil/BUILD.bazel b/util/promutil/BUILD.bazel index aaf715fd6cdf7..d34e4a0d6cc4c 100644 --- a/util/promutil/BUILD.bazel +++ b/util/promutil/BUILD.bazel @@ -13,8 +13,10 @@ go_library( go_test( name = "promutil_test", + timeout = "short", srcs = ["registry_test.go"], embed = [":promutil"], + flaky = True, deps = [ "@com_github_prometheus_client_golang//prometheus", "@com_github_stretchr_testify//require", diff --git a/util/promutil/registry.go b/util/promutil/registry.go index dc13cb965e6de..f52f0bd359246 100644 --- a/util/promutil/registry.go +++ b/util/promutil/registry.go @@ -23,13 +23,13 @@ var _ Registry = noopRegistry{} type noopRegistry struct{} -func (noopRegistry) Register(collector prometheus.Collector) error { +func (noopRegistry) Register(_ prometheus.Collector) error { return nil } -func (noopRegistry) MustRegister(collector ...prometheus.Collector) {} +func (noopRegistry) MustRegister(_ ...prometheus.Collector) {} -func (noopRegistry) Unregister(collector prometheus.Collector) bool { +func (noopRegistry) Unregister(_ prometheus.Collector) bool { return true } diff --git a/util/ranger/BUILD.bazel b/util/ranger/BUILD.bazel index 6f331de00afb7..622db8075ce87 100644 --- a/util/ranger/BUILD.bazel +++ b/util/ranger/BUILD.bazel @@ -36,12 +36,14 @@ go_library( go_test( name = "ranger_test", + timeout = "short", srcs = [ "main_test.go", "ranger_test.go", "types_test.go", ], data = glob(["testdata/**"]), + flaky = True, deps = [ ":ranger", "//config", diff --git a/util/ranger/checker.go b/util/ranger/checker.go index cb3056c00bb70..c0ac86a453c59 100644 --- a/util/ranger/checker.go +++ b/util/ranger/checker.go @@ -80,14 +80,14 @@ func (c *conditionChecker) checkScalarFunction(scalar *expression.ScalarFunction return c.checkColumn(scalar.GetArgs()[0]) case ast.UnaryNot: // TODO: support "not like" convert to access conditions. - if s, ok := scalar.GetArgs()[0].(*expression.ScalarFunction); ok { - if s.FuncName.L == ast.Like { - return false - } - } else { + s, ok := scalar.GetArgs()[0].(*expression.ScalarFunction) + if !ok { // "not column" or "not constant" can't lead to a range. return false } + if s.FuncName.L == ast.Like { + return false + } return c.check(scalar.GetArgs()[0]) case ast.In: if !c.checkColumn(scalar.GetArgs()[0]) { @@ -131,7 +131,6 @@ func (c *conditionChecker) checkLikeFunc(scalar *expression.ScalarFunction) bool pattern, ok := scalar.GetArgs()[1].(*expression.Constant) if !ok { return false - } if pattern.Value.IsNull() { return false diff --git a/util/ranger/detacher.go b/util/ranger/detacher.go index cbde3ddef60c6..3d18126494f70 100644 --- a/util/ranger/detacher.go +++ b/util/ranger/detacher.go @@ -82,14 +82,14 @@ func detachColumnDNFConditions(sctx sessionctx.Context, conditions []expression. } rebuildCNF := expression.ComposeCNFCondition(sctx, columnCNFItems...) accessConditions = append(accessConditions, rebuildCNF) - } else if checker.check(cond) { + } else if !checker.check(cond) { + return nil, true + } else { accessConditions = append(accessConditions, cond) if checker.shouldReserve { hasResidualConditions = true checker.shouldReserve = checker.length != types.UnspecifiedLength } - } else { - return nil, true } } return accessConditions, hasResidualConditions @@ -662,7 +662,9 @@ func (d *rangeDetacher) detachDNFCondAndBuildRangeForIndex(condition *expression } } } - } else if firstColumnChecker.check(item) { + } else if !firstColumnChecker.check(item) { + return FullRange(), nil, nil, true, nil + } else { if firstColumnChecker.shouldReserve { hasResidual = true firstColumnChecker.shouldReserve = d.lengths[0] != types.UnspecifiedLength @@ -686,8 +688,6 @@ func (d *rangeDetacher) detachDNFCondAndBuildRangeForIndex(condition *expression columnValues[0] = nil } } - } else { - return FullRange(), nil, nil, true, nil } } @@ -894,7 +894,6 @@ func AddGcColumnCond(sctx sessionctx.Context, cols []*expression.Column, accessesCond []expression.Expression, columnValues []*valueInfo) ([]expression.Expression, error) { - if cond := accessesCond[1]; cond != nil { if f, ok := cond.(*expression.ScalarFunction); ok { switch f.FuncName.L { @@ -916,7 +915,6 @@ func AddGcColumnCond(sctx sessionctx.Context, func AddGcColumn4InCond(sctx sessionctx.Context, cols []*expression.Column, accessesCond []expression.Expression) ([]expression.Expression, error) { - var errRes error var newAccessCond []expression.Expression record := make([]types.Datum, 1) @@ -985,7 +983,6 @@ func AddGcColumn4EqCond(sctx sessionctx.Context, cols []*expression.Column, accessesCond []expression.Expression, columnValues []*valueInfo) ([]expression.Expression, error) { - expr := cols[0].VirtualExpr.Clone() record := make([]types.Datum, len(columnValues)-1) @@ -1026,7 +1023,6 @@ func AddGcColumn4EqCond(sctx sessionctx.Context, // @retval - the new condition after adding tidb_shard() prefix func AddExpr4EqAndInCondition(sctx sessionctx.Context, conditions []expression.Expression, cols []*expression.Column) ([]expression.Expression, error) { - accesses := make([]expression.Expression, len(cols)) columnValues := make([]*valueInfo, len(cols)) offsets := make([]int, len(conditions)) @@ -1096,7 +1092,6 @@ func NeedAddGcColumn4ShardIndex( cols []*expression.Column, accessCond []expression.Expression, columnValues []*valueInfo) bool { - // the columns of shard index shoude be more than 2, like (tidb_shard(a),a,...) // check cols and columnValues in the sub call function if len(accessCond) < 2 || len(cols) < 2 { diff --git a/util/ranger/points.go b/util/ranger/points.go index e731a8ccaa89b..0268c7d964bb9 100644 --- a/util/ranger/points.go +++ b/util/ranger/points.go @@ -114,7 +114,7 @@ func rangePointLess(sc *stmtctx.StatementContext, a, b *point, collator collate. return rangePointEqualValueLess(a, b), errors.Trace(err) } -func rangePointEnumLess(sc *stmtctx.StatementContext, a, b *point) (bool, error) { +func rangePointEnumLess(_ *stmtctx.StatementContext, a, b *point) (bool, error) { cmp := types.CompareInt64(a.value.GetInt64(), b.value.GetInt64()) if cmp != 0 { return cmp < 0, nil @@ -188,7 +188,7 @@ type builder struct { func (r *builder) build(expr expression.Expression, collator collate.Collator) []*point { switch x := expr.(type) { case *expression.Column: - return r.buildFromColumn(x) + return r.buildFromColumn() case *expression.ScalarFunction: return r.buildFromScalarFunc(x, collator) case *expression.Constant: @@ -220,7 +220,7 @@ func (r *builder) buildFromConstant(expr *expression.Constant) []*point { return getFullRange() } -func (r *builder) buildFromColumn(expr *expression.Column) []*point { +func (*builder) buildFromColumn() []*point { // column name expression is equivalent to column name is true. startPoint1 := &point{value: types.MinNotNullDatum(), start: true} endPoint1 := &point{excl: true} @@ -504,7 +504,7 @@ func handleEnumFromBinOp(sc *stmtctx.StatementContext, ft *types.FieldType, val return res } -func (r *builder) buildFromIsTrue(expr *expression.ScalarFunction, isNot int, keepNull bool) []*point { +func (*builder) buildFromIsTrue(_ *expression.ScalarFunction, isNot int, keepNull bool) []*point { if isNot == 1 { if keepNull { // Range is {[0, 0]} @@ -533,7 +533,7 @@ func (r *builder) buildFromIsTrue(expr *expression.ScalarFunction, isNot int, ke return []*point{startPoint1, endPoint1, startPoint2, endPoint2} } -func (r *builder) buildFromIsFalse(expr *expression.ScalarFunction, isNot int) []*point { +func (*builder) buildFromIsFalse(_ *expression.ScalarFunction, isNot int) []*point { if isNot == 1 { // NOT FALSE range is {[-inf, 0), (0, +inf], [null, null]} startPoint1 := &point{start: true} diff --git a/util/ranger/ranger.go b/util/ranger/ranger.go index 0aeae0ceca5ac..4481f739b6760 100644 --- a/util/ranger/ranger.go +++ b/util/ranger/ranger.go @@ -105,6 +105,7 @@ func convertPoint(sctx sessionctx.Context, point *point, tp *types.FieldType) (* // do not ignore these errors if in prepared plan building for safety return nil, errors.Trace(err) } + //revive:disable:empty-block if tp.GetType() == mysql.TypeYear && terror.ErrorEqual(err, types.ErrWarnDataOutOfRange) { // see issue #20101: overflow when converting integer to year } else if tp.GetType() == mysql.TypeBit && terror.ErrorEqual(err, types.ErrDataTooLong) { @@ -134,6 +135,7 @@ func convertPoint(sctx sessionctx.Context, point *point, tp *types.FieldType) (* } else { return point, errors.Trace(err) } + //revive:enable:empty-block } valCmpCasted, err := point.value.Compare(sc, &casted, collate.GetCollator(tp.GetCollate())) if err != nil { diff --git a/util/ranger/types.go b/util/ranger/types.go index b932650588f86..5f387ed0f469b 100644 --- a/util/ranger/types.go +++ b/util/ranger/types.go @@ -46,7 +46,7 @@ func (rs Ranges) Range() []*Range { } // Rebuild rebuilds this range. -func (rs Ranges) Rebuild() error { +func (Ranges) Rebuild() error { return nil } diff --git a/util/regexpr-router/BUILD.bazel b/util/regexpr-router/BUILD.bazel index 361067d88c1bf..04e8c022ea10e 100644 --- a/util/regexpr-router/BUILD.bazel +++ b/util/regexpr-router/BUILD.bazel @@ -14,8 +14,10 @@ go_library( go_test( name = "regexpr-router_test", + timeout = "short", srcs = ["regexpr_router_test.go"], embed = [":regexpr-router"], + flaky = True, deps = [ "//util/filter", "//util/table-router", diff --git a/util/regexpr-router/regexpr_router.go b/util/regexpr-router/regexpr_router.go index 4bc4563a470a0..48ebabb730a7d 100644 --- a/util/regexpr-router/regexpr_router.go +++ b/util/regexpr-router/regexpr_router.go @@ -108,7 +108,7 @@ func (r *RouteTable) AddRule(rule *router.TableRule) error { } // Route is to route table -func (r *RouteTable) Route(schema, table string) (string, string, error) { +func (r *RouteTable) Route(schema, table string) (targetSchema string, targetTable string, err error) { curTable := &filter.Table{ Schema: schema, Name: table, @@ -124,10 +124,6 @@ func (r *RouteTable) Route(schema, table string) (string, string, error) { } } } - var ( - targetSchema string - targetTable string - ) if table == "" || len(tblRules) == 0 { // 1. no need to match table or // 2. match no table @@ -158,11 +154,11 @@ func (r *RouteTable) AllRules() ([]router.TableRule, []router.TableRule) { schmRouteRules []router.TableRule tableRouteRules []router.TableRule ) - for _, filter := range r.filters { - if filter.typ == SchmFilter { - schmRouteRules = append(schmRouteRules, *filter.rawRule) + for _, f := range r.filters { + if f.typ == SchmFilter { + schmRouteRules = append(schmRouteRules, *f.rawRule) } else { - tableRouteRules = append(tableRouteRules, *filter.rawRule) + tableRouteRules = append(tableRouteRules, *f.rawRule) } } return schmRouteRules, tableRouteRules @@ -177,9 +173,9 @@ func (r *RouteTable) FetchExtendColumn(schema, table, source string) ([]string, Schema: schema, Name: table, } - for _, filter := range r.filters { - if filter.filter.Match(curTable) { - rules = append(rules, filter) + for _, f := range r.filters { + if f.filter.Match(curTable) { + rules = append(rules, f) } } var ( diff --git a/util/resourcegrouptag/BUILD.bazel b/util/resourcegrouptag/BUILD.bazel index 6047f0b7f9f8c..3ae8ec1487d3e 100644 --- a/util/resourcegrouptag/BUILD.bazel +++ b/util/resourcegrouptag/BUILD.bazel @@ -18,11 +18,13 @@ go_library( go_test( name = "resourcegrouptag_test", + timeout = "short", srcs = [ "main_test.go", "resource_group_tag_test.go", ], embed = [":resourcegrouptag"], + flaky = True, deps = [ "//parser", "//testkit/testsetup", diff --git a/util/rowDecoder/BUILD.bazel b/util/rowDecoder/BUILD.bazel index 7abf4578a8074..8e9d8f8fa2de3 100644 --- a/util/rowDecoder/BUILD.bazel +++ b/util/rowDecoder/BUILD.bazel @@ -22,10 +22,12 @@ go_library( go_test( name = "rowDecoder_test", + timeout = "short", srcs = [ "decoder_test.go", "main_test.go", ], + flaky = True, deps = [ ":rowDecoder", "//expression", diff --git a/util/rowcodec/BUILD.bazel b/util/rowcodec/BUILD.bazel index 8a3457d5feb2e..6ca9a957c9c32 100644 --- a/util/rowcodec/BUILD.bazel +++ b/util/rowcodec/BUILD.bazel @@ -27,12 +27,14 @@ go_library( go_test( name = "rowcodec_test", + timeout = "short", srcs = [ "bench_test.go", "main_test.go", "rowcodec_test.go", ], embed = [":rowcodec"], + flaky = True, deps = [ "//kv", "//parser/mysql", diff --git a/util/rowcodec/decoder.go b/util/rowcodec/decoder.go index 81c4c314fb599..b8b0da8ff8ad7 100644 --- a/util/rowcodec/decoder.go +++ b/util/rowcodec/decoder.go @@ -463,7 +463,7 @@ func (decoder *BytesDecoder) DecodeToBytes(outputOffset map[int64]int, handle kv return decoder.decodeToBytesInternal(outputOffset, handle, value, cacheBytes) } -func (decoder *BytesDecoder) encodeOldDatum(tp byte, val []byte) []byte { +func (*BytesDecoder) encodeOldDatum(tp byte, val []byte) []byte { buf := make([]byte, 0, 1+binary.MaxVarintLen64+len(val)) switch tp { case BytesFlag: diff --git a/util/rowcodec/row.go b/util/rowcodec/row.go index 0e6b1a9ede213..0f463c509cbcf 100644 --- a/util/rowcodec/row.go +++ b/util/rowcodec/row.go @@ -112,11 +112,11 @@ func (r *row) findColID(colID int64) (idx int, isNil, notFound bool) { } if v < colID { i = h + 1 - } else if v > colID { - j = h - } else { + } else if v == colID { idx = h return + } else { + j = h } } @@ -133,11 +133,11 @@ func (r *row) findColID(colID int64) (idx int, isNil, notFound bool) { } if v < colID { i = h + 1 - } else if v > colID { - j = h - } else { + } else if v == colID { isNil = true return + } else { + j = h } } notFound = true diff --git a/util/schemacmp/BUILD.bazel b/util/schemacmp/BUILD.bazel index 3d70a070d360c..23993b5d25084 100644 --- a/util/schemacmp/BUILD.bazel +++ b/util/schemacmp/BUILD.bazel @@ -17,16 +17,19 @@ go_library( "//parser/mysql", "//parser/types", "//types", + "@org_golang_x_exp//slices", ], ) go_test( name = "schemacmp_test", + timeout = "short", srcs = [ "lattice_test.go", "table_test.go", "type_test.go", ], + flaky = True, deps = [ ":schemacmp", "//ddl", diff --git a/util/schemacmp/table.go b/util/schemacmp/table.go index b42b1b0a7bcfd..0bb3ab15b5068 100644 --- a/util/schemacmp/table.go +++ b/util/schemacmp/table.go @@ -15,13 +15,13 @@ package schemacmp import ( - "sort" "strings" "github.com/pingcap/tidb/parser/format" "github.com/pingcap/tidb/parser/model" "github.com/pingcap/tidb/parser/mysql" "github.com/pingcap/tidb/parser/types" + "golang.org/x/exp/slices" ) const ( @@ -224,7 +224,7 @@ func (a indexMap) ForEach(f func(key string, value Lattice) error) error { return nil } -func (indexMap) CompareWithNil(value Lattice) (int, error) { +func (indexMap) CompareWithNil(_ Lattice) (int, error) { return -1, nil } @@ -232,7 +232,7 @@ func (indexMap) ShouldDeleteIncompatibleJoin() bool { return true } -func (indexMap) JoinWithNil(value Lattice) (Lattice, error) { +func (indexMap) JoinWithNil(_ Lattice) (Lattice, error) { return nil, nil } @@ -283,32 +283,20 @@ func encodeTableInfoToLattice(ti *model.TableInfo) Tuple { } } -type sortedMapSlice []struct { +type kvPair struct { key string value interface{} } -func (sl sortedMapSlice) Len() int { - return len(sl) -} - -func (sl sortedMapSlice) Less(i, j int) bool { - return sl[i].key < sl[j].key -} - -func (sl sortedMapSlice) Swap(i, j int) { - sl[i], sl[j] = sl[j], sl[i] -} - -func sortedMap(input map[string]interface{}) sortedMapSlice { - res := make(sortedMapSlice, 0, len(input)) +func sortedMap(input map[string]interface{}) []kvPair { + res := make([]kvPair, 0, len(input)) for key, value := range input { - res = append(res, struct { - key string - value interface{} - }{key: key, value: value}) + res = append(res, kvPair{key: key, value: value}) } - sort.Sort(res) + + slices.SortFunc(res, func(a, b kvPair) bool { + return a.key < b.key + }) return res } diff --git a/util/selection/BUILD.bazel b/util/selection/BUILD.bazel index 3e6d014d6e7d7..eec28d34ec54c 100644 --- a/util/selection/BUILD.bazel +++ b/util/selection/BUILD.bazel @@ -9,11 +9,13 @@ go_library( go_test( name = "selection_test", + timeout = "short", srcs = [ "main_test.go", "selection_test.go", ], embed = [":selection"], + flaky = True, deps = [ "//testkit/testsetup", "@com_github_stretchr_testify//require", diff --git a/util/selection/selection.go b/util/selection/selection.go index 7e72c43eee815..3974188ed3503 100644 --- a/util/selection/selection.go +++ b/util/selection/selection.go @@ -84,7 +84,7 @@ func medianOfMedians(data Interface, left, right, k int) int { } } -func randomPivot(data Interface, left, right int) int { +func randomPivot(_ Interface, left, right int) int { return left + (rand.Int() % (right - left + 1)) // #nosec G404 } diff --git a/util/sem/BUILD.bazel b/util/sem/BUILD.bazel index 5c01a761449fa..f1a6d5ae2716e 100644 --- a/util/sem/BUILD.bazel +++ b/util/sem/BUILD.bazel @@ -14,11 +14,13 @@ go_library( go_test( name = "sem_test", + timeout = "short", srcs = [ "main_test.go", "sem_test.go", ], embed = [":sem"], + flaky = True, deps = [ "//parser/mysql", "//sessionctx/variable", diff --git a/util/set/BUILD.bazel b/util/set/BUILD.bazel index 0f733ad14ee41..18c713f94144f 100644 --- a/util/set/BUILD.bazel +++ b/util/set/BUILD.bazel @@ -16,6 +16,7 @@ go_library( go_test( name = "set_test", + timeout = "short", srcs = [ "float64_set_test.go", "int_set_test.go", @@ -25,6 +26,7 @@ go_test( "string_set_test.go", ], embed = [":set"], + flaky = True, deps = [ "//testkit/testsetup", "@com_github_stretchr_testify//assert", diff --git a/util/slice/BUILD.bazel b/util/slice/BUILD.bazel index 6a7d1275867f8..209661ebd4edf 100644 --- a/util/slice/BUILD.bazel +++ b/util/slice/BUILD.bazel @@ -9,11 +9,13 @@ go_library( go_test( name = "slice_test", + timeout = "short", srcs = [ "main_test.go", "slice_test.go", ], embed = [":slice"], + flaky = True, deps = [ "//testkit/testsetup", "@com_github_stretchr_testify//require", diff --git a/util/sqlexec/BUILD.bazel b/util/sqlexec/BUILD.bazel index 9be58b47675a0..8a15382edc71e 100644 --- a/util/sqlexec/BUILD.bazel +++ b/util/sqlexec/BUILD.bazel @@ -24,11 +24,13 @@ go_library( go_test( name = "sqlexec_test", + timeout = "short", srcs = [ "main_test.go", "utils_test.go", ], embed = [":sqlexec"], + flaky = True, deps = [ "//testkit/testsetup", "@com_github_stretchr_testify//require", diff --git a/util/sqlexec/restricted_sql_executor.go b/util/sqlexec/restricted_sql_executor.go index 2db32927705f9..fbd7c63e714e0 100644 --- a/util/sqlexec/restricted_sql_executor.go +++ b/util/sqlexec/restricted_sql_executor.go @@ -58,6 +58,7 @@ type ExecOption struct { IgnoreWarning bool SnapshotTS uint64 AnalyzeVer int + AnalyzeSnapshot *bool PartitionPruneMode string UseCurSession bool TrackSysProcID uint64 @@ -90,6 +91,14 @@ func GetPartitionPruneModeOption(pruneMode string) OptionFuncAlias { } } +// GetAnalyzeSnapshotOption returns a function which tells ExecRestrictedStmt/SQL to run with analyzeSnapshot. +func GetAnalyzeSnapshotOption(analyzeSnapshot bool) OptionFuncAlias { + return func(option *ExecOption) { + option.AnalyzeSnapshot = new(bool) + *option.AnalyzeSnapshot = analyzeSnapshot + } +} + // ExecOptionUseCurSession tells ExecRestrictedStmt/SQL to use current session. var ExecOptionUseCurSession OptionFuncAlias = func(option *ExecOption) { option.UseCurSession = true diff --git a/util/sqlexec/simple_record_set.go b/util/sqlexec/simple_record_set.go index aef7d035aca01..4cb0d1e8d8df8 100644 --- a/util/sqlexec/simple_record_set.go +++ b/util/sqlexec/simple_record_set.go @@ -36,7 +36,7 @@ func (r *SimpleRecordSet) Fields() []*ast.ResultField { } // Next implements the sqlexec.RecordSet interface. -func (r *SimpleRecordSet) Next(ctx context.Context, req *chunk.Chunk) error { +func (r *SimpleRecordSet) Next(_ context.Context, req *chunk.Chunk) error { req.Reset() for r.idx < len(r.Rows) { if req.IsFull() { diff --git a/util/stmtsummary/BUILD.bazel b/util/stmtsummary/BUILD.bazel index e5c2d2950bf05..121d09caa6825 100644 --- a/util/stmtsummary/BUILD.bazel +++ b/util/stmtsummary/BUILD.bazel @@ -31,12 +31,14 @@ go_library( go_test( name = "stmtsummary_test", + timeout = "short", srcs = [ "evicted_test.go", "main_test.go", "statement_summary_test.go", ], embed = [":stmtsummary"], + flaky = True, deps = [ "//parser/auth", "//parser/model", diff --git a/util/stmtsummary/evicted.go b/util/stmtsummary/evicted.go index bb2e9f09a3111..be216c7414bdd 100644 --- a/util/stmtsummary/evicted.go +++ b/util/stmtsummary/evicted.go @@ -92,7 +92,6 @@ func (ssbde *stmtSummaryByDigestEvicted) AddEvicted(evictedKey *stmtSummaryByDig defer evictedElement.Unlock() // no record in ssbde.history, direct insert if ssbde.history.Len() == 0 && historySize != 0 { - eBeginTime := evictedElement.beginTime eEndTime := evictedElement.endTime record := newStmtSummaryByDigestEvictedElement(eBeginTime, eEndTime) @@ -102,7 +101,6 @@ func (ssbde *stmtSummaryByDigestEvicted) AddEvicted(evictedKey *stmtSummaryByDig h = ssbde.history.Back() return } - // look for matching history interval MATCHING: for ; h != nil; h = h.Prev() { diff --git a/util/stmtsummary/reader.go b/util/stmtsummary/reader.go index d9c3e338fdd6f..eca48ae4e82eb 100644 --- a/util/stmtsummary/reader.go +++ b/util/stmtsummary/reader.go @@ -309,6 +309,7 @@ const ( PrevSampleTextStr = "PREV_SAMPLE_TEXT" PlanDigestStr = "PLAN_DIGEST" PlanStr = "PLAN" + BinaryPlan = "BINARY_PLAN" ) type columnValueFactory func(reader *stmtSummaryReader, ssElement *stmtSummaryByDigestElement, ssbd *stmtSummaryByDigest) interface{} @@ -616,4 +617,7 @@ var columnValueFactoryMap = map[string]columnValueFactory{ } return plan }, + BinaryPlan: func(_ *stmtSummaryReader, ssElement *stmtSummaryByDigestElement, _ *stmtSummaryByDigest) interface{} { + return ssElement.sampleBinaryPlan + }, } diff --git a/util/stmtsummary/statement_summary.go b/util/stmtsummary/statement_summary.go index d0722544f1f22..3d90c107b7cbf 100644 --- a/util/stmtsummary/statement_summary.go +++ b/util/stmtsummary/statement_summary.go @@ -112,16 +112,17 @@ type stmtSummaryByDigestElement struct { beginTime int64 endTime int64 // basic - sampleSQL string - charset string - collation string - prevSQL string - samplePlan string - planHint string - indexNames []string - execCount int64 - sumErrors int - sumWarnings int + sampleSQL string + charset string + collation string + prevSQL string + samplePlan string + sampleBinaryPlan string + planHint string + indexNames []string + execCount int64 + sumErrors int + sumWarnings int // latency sumLatency time.Duration maxLatency time.Duration @@ -211,33 +212,34 @@ type stmtSummaryByDigestElement struct { // StmtExecInfo records execution information of each statement. type StmtExecInfo struct { - SchemaName string - OriginalSQL string - Charset string - Collation string - NormalizedSQL string - Digest string - PrevSQL string - PrevSQLDigest string - PlanGenerator func() (string, string) - PlanDigest string - PlanDigestGen func() string - User string - TotalLatency time.Duration - ParseLatency time.Duration - CompileLatency time.Duration - StmtCtx *stmtctx.StatementContext - CopTasks *stmtctx.CopTasksDetails - ExecDetail *execdetails.ExecDetails - MemMax int64 - DiskMax int64 - StartTime time.Time - IsInternal bool - Succeed bool - PlanInCache bool - PlanInBinding bool - ExecRetryCount uint - ExecRetryTime time.Duration + SchemaName string + OriginalSQL string + Charset string + Collation string + NormalizedSQL string + Digest string + PrevSQL string + PrevSQLDigest string + PlanGenerator func() (string, string) + BinaryPlanGenerator func() string + PlanDigest string + PlanDigestGen func() string + User string + TotalLatency time.Duration + ParseLatency time.Duration + CompileLatency time.Duration + StmtCtx *stmtctx.StatementContext + CopTasks *stmtctx.CopTasksDetails + ExecDetail *execdetails.ExecDetails + MemMax int64 + DiskMax int64 + StartTime time.Time + IsInternal bool + Succeed bool + PlanInCache bool + PlanInBinding bool + ExecRetryCount uint + ExecRetryTime time.Duration execdetails.StmtExecDetails ResultRows int64 TiKVExecDetails util.ExecDetails @@ -246,7 +248,6 @@ type StmtExecInfo struct { // newStmtSummaryByDigestMap creates an empty stmtSummaryByDigestMap. func newStmtSummaryByDigestMap() *stmtSummaryByDigestMap { - ssbde := newStmtSummaryByDigestEvicted() // This initializes the stmtSummaryByDigestMap with "compiled defaults" @@ -498,7 +499,7 @@ func (ssMap *stmtSummaryByDigestMap) maxSQLLength() int { } // newStmtSummaryByDigest creates a stmtSummaryByDigest from StmtExecInfo. -func (ssbd *stmtSummaryByDigest) init(sei *StmtExecInfo, beginTime int64, intervalSeconds int64, historySize int) { +func (ssbd *stmtSummaryByDigest) init(sei *StmtExecInfo, _ int64, _ int64, _ int) { // Use "," to separate table names to support FIND_IN_SET. var buffer bytes.Buffer for i, value := range sei.StmtCtx.Tables { @@ -593,15 +594,23 @@ func (ssbd *stmtSummaryByDigest) collectHistorySummaries(checker *stmtSummaryChe return ssElements } -var maxEncodedPlanSizeInBytes = 1024 * 1024 +// MaxEncodedPlanSizeInBytes is the upper limit of the size of the plan and the binary plan in the stmt summary. +var MaxEncodedPlanSizeInBytes = 1024 * 1024 func newStmtSummaryByDigestElement(sei *StmtExecInfo, beginTime int64, intervalSeconds int64) *stmtSummaryByDigestElement { // sampleSQL / authUsers(sampleUser) / samplePlan / prevSQL / indexNames store the values shown at the first time, // because it compacts performance to update every time. samplePlan, planHint := sei.PlanGenerator() - if len(samplePlan) > maxEncodedPlanSizeInBytes { + if len(samplePlan) > MaxEncodedPlanSizeInBytes { samplePlan = plancodec.PlanDiscardedEncoded } + binPlan := "" + if sei.BinaryPlanGenerator != nil { + binPlan = sei.BinaryPlanGenerator() + if len(binPlan) > MaxEncodedPlanSizeInBytes { + binPlan = plancodec.BinaryPlanDiscardedEncoded + } + } ssElement := &stmtSummaryByDigestElement{ beginTime: beginTime, sampleSQL: formatSQL(sei.OriginalSQL), @@ -610,19 +619,20 @@ func newStmtSummaryByDigestElement(sei *StmtExecInfo, beginTime int64, intervalS // PrevSQL is already truncated to cfg.Log.QueryLogMaxLen. prevSQL: sei.PrevSQL, // samplePlan needs to be decoded so it can't be truncated. - samplePlan: samplePlan, - planHint: planHint, - indexNames: sei.StmtCtx.IndexNames, - minLatency: sei.TotalLatency, - firstSeen: sei.StartTime, - lastSeen: sei.StartTime, - backoffTypes: make(map[string]int), - authUsers: make(map[string]struct{}), - planInCache: false, - planCacheHits: 0, - planInBinding: false, - prepared: sei.Prepared, - minResultRows: math.MaxInt64, + samplePlan: samplePlan, + sampleBinaryPlan: binPlan, + planHint: planHint, + indexNames: sei.StmtCtx.IndexNames, + minLatency: sei.TotalLatency, + firstSeen: sei.StartTime, + lastSeen: sei.StartTime, + backoffTypes: make(map[string]int), + authUsers: make(map[string]struct{}), + planInCache: false, + planCacheHits: 0, + planInBinding: false, + prepared: sei.Prepared, + minResultRows: math.MaxInt64, } ssElement.add(sei, intervalSeconds) return ssElement @@ -659,7 +669,7 @@ func (ssElement *stmtSummaryByDigestElement) add(sei *StmtExecInfo, intervalSeco ssElement.endTime = ssElement.beginTime + intervalSeconds ssElement.execCount++ if !sei.Succeed { - ssElement.sumErrors += 1 + ssElement.sumErrors++ } ssElement.sumWarnings += int(sei.StmtCtx.WarningCount()) @@ -787,7 +797,7 @@ func (ssElement *stmtSummaryByDigestElement) add(sei *StmtExecInfo, intervalSeco } ssElement.sumBackoffTimes += int64(len(commitDetails.Mu.BackoffTypes)) for _, backoffType := range commitDetails.Mu.BackoffTypes { - ssElement.backoffTypes[backoffType] += 1 + ssElement.backoffTypes[backoffType]++ } commitDetails.Mu.Unlock() } @@ -795,7 +805,7 @@ func (ssElement *stmtSummaryByDigestElement) add(sei *StmtExecInfo, intervalSeco // plan cache if sei.PlanInCache { ssElement.planInCache = true - ssElement.planCacheHits += 1 + ssElement.planCacheHits++ } else { ssElement.planInCache = false } diff --git a/util/stmtsummary/statement_summary_test.go b/util/stmtsummary/statement_summary_test.go index 041de2989241f..a883c4aa51c28 100644 --- a/util/stmtsummary/statement_summary_test.go +++ b/util/stmtsummary/statement_summary_test.go @@ -185,8 +185,12 @@ func TestAddStatement(t *testing.T) { LocalLatchTime: 50, Mu: struct { sync.Mutex - CommitBackoffTime int64 - BackoffTypes []string + CommitBackoffTime int64 + BackoffTypes []string + SlowestReqTotalTime time.Duration + SlowestRegion uint64 + SlowestStoreAddr string + SlowestExecDetails util.TiKVExecDetails }{ CommitBackoffTime: 1000, BackoffTypes: []string{boTxnLockName}, @@ -317,8 +321,12 @@ func TestAddStatement(t *testing.T) { LocalLatchTime: 5, Mu: struct { sync.Mutex - CommitBackoffTime int64 - BackoffTypes []string + CommitBackoffTime int64 + BackoffTypes []string + SlowestReqTotalTime time.Duration + SlowestRegion uint64 + SlowestStoreAddr string + SlowestExecDetails util.TiKVExecDetails }{ CommitBackoffTime: 100, BackoffTypes: []string{boTxnLockName}, @@ -435,7 +443,7 @@ func TestAddStatement(t *testing.T) { stmtExecInfo7 := stmtExecInfo1 stmtExecInfo7.PlanDigest = "plan_digest7" stmtExecInfo7.PlanGenerator = func() (string, string) { - buf := make([]byte, maxEncodedPlanSizeInBytes+1) + buf := make([]byte, MaxEncodedPlanSizeInBytes+1) for i := range buf { buf[i] = 'a' } @@ -603,8 +611,12 @@ func generateAnyExecInfo() *StmtExecInfo { LocalLatchTime: 10, Mu: struct { sync.Mutex - CommitBackoffTime int64 - BackoffTypes []string + CommitBackoffTime int64 + BackoffTypes []string + SlowestReqTotalTime time.Duration + SlowestRegion uint64 + SlowestStoreAddr string + SlowestExecDetails util.TiKVExecDetails }{ CommitBackoffTime: 200, BackoffTypes: []string{boTxnLockName}, diff --git a/util/stringutil/BUILD.bazel b/util/stringutil/BUILD.bazel index 3d8e0f3433e12..d5cd7c185e8f6 100644 --- a/util/stringutil/BUILD.bazel +++ b/util/stringutil/BUILD.bazel @@ -15,11 +15,13 @@ go_library( go_test( name = "stringutil_test", + timeout = "short", srcs = [ "main_test.go", "string_util_test.go", ], embed = [":stringutil"], + flaky = True, deps = [ "//testkit/testsetup", "@com_github_stretchr_testify//require", diff --git a/util/sys/linux/BUILD.bazel b/util/sys/linux/BUILD.bazel index 292018077fa6c..1212afe2fc3d9 100644 --- a/util/sys/linux/BUILD.bazel +++ b/util/sys/linux/BUILD.bazel @@ -14,10 +14,12 @@ go_library( go_test( name = "linux_test", + timeout = "short", srcs = [ "main_test.go", "sys_test.go", ], + flaky = True, deps = [ ":linux", "//testkit/testsetup", diff --git a/util/sys/linux/sys_other.go b/util/sys/linux/sys_other.go index 2c5729dbefacc..49305e40dc30a 100644 --- a/util/sys/linux/sys_other.go +++ b/util/sys/linux/sys_other.go @@ -30,7 +30,7 @@ func OSVersion() (osVersion string, err error) { } // SetAffinity sets cpu affinity. -func SetAffinity(cpus []int) error { +func SetAffinity(_ []int) error { return nil } diff --git a/util/sys/storage/BUILD.bazel b/util/sys/storage/BUILD.bazel index d7a9e26a7fdd1..5c5613d532eb8 100644 --- a/util/sys/storage/BUILD.bazel +++ b/util/sys/storage/BUILD.bazel @@ -19,11 +19,13 @@ go_library( go_test( name = "storage_test", + timeout = "short", srcs = [ "main_test.go", "sys_test.go", ], embed = [":storage"], + flaky = True, deps = [ "//testkit/testsetup", "@com_github_stretchr_testify//require", diff --git a/util/systimemon/BUILD.bazel b/util/systimemon/BUILD.bazel index d2529399ed24e..92a2b04db7050 100644 --- a/util/systimemon/BUILD.bazel +++ b/util/systimemon/BUILD.bazel @@ -13,11 +13,13 @@ go_library( go_test( name = "systimemon_test", + timeout = "short", srcs = [ "main_test.go", "systime_mon_test.go", ], embed = [":systimemon"], + flaky = True, deps = [ "//testkit/testsetup", "@com_github_stretchr_testify//require", diff --git a/util/table-filter/BUILD.bazel b/util/table-filter/BUILD.bazel index f86cc79fe35bd..7c395d376cd36 100644 --- a/util/table-filter/BUILD.bazel +++ b/util/table-filter/BUILD.bazel @@ -17,11 +17,13 @@ go_library( go_test( name = "table-filter_test", + timeout = "short", srcs = [ "column_filter_test.go", "compat_test.go", "table_filter_test.go", ], + flaky = True, deps = [ ":table-filter", "@com_github_stretchr_testify//require", diff --git a/util/table-filter/compat.go b/util/table-filter/compat.go index b695b8dd01a69..79fd760e810d1 100644 --- a/util/table-filter/compat.go +++ b/util/table-filter/compat.go @@ -90,7 +90,7 @@ type schemasFilter struct { schemas map[string]struct{} } -func (f schemasFilter) MatchTable(schema string, table string) bool { +func (f schemasFilter) MatchTable(schema string, _ string) bool { return f.MatchSchema(schema) } diff --git a/util/table-router/BUILD.bazel b/util/table-router/BUILD.bazel index 3235c635b1e37..77adca60bc89f 100644 --- a/util/table-router/BUILD.bazel +++ b/util/table-router/BUILD.bazel @@ -13,8 +13,10 @@ go_library( go_test( name = "table-router_test", + timeout = "short", srcs = ["router_test.go"], embed = [":table-router"], + flaky = True, deps = [ "//util/table-rule-selector", "@com_github_stretchr_testify//require", diff --git a/util/table-router/router.go b/util/table-router/router.go index f465b014e2b78..af9d08f63dd7d 100644 --- a/util/table-router/router.go +++ b/util/table-router/router.go @@ -183,7 +183,7 @@ func (r *Table) RemoveRule(rule *TableRule) error { // Route routes schema/table to target schema/table // don't support to route schema/table to multiple schema/table -func (r *Table) Route(schema, table string) (string, string, error) { +func (r *Table) Route(schema, table string) (targetSchema string, targetTable string, err error) { schemaL, tableL := schema, table if !r.caseSensitive { schemaL, tableL = strings.ToLower(schema), strings.ToLower(table) @@ -209,10 +209,6 @@ func (r *Table) Route(schema, table string) (string, string, error) { } } - var ( - targetSchema string - targetTable string - ) if len(table) == 0 || len(tableRules) == 0 { if len(schemaRules) > 1 { return "", "", errors.NotSupportedf("`%s`.`%s` matches %d schema route rules which is more than one.\nThe first two rules are %+v, %+v.\nIt's", schema, table, len(schemaRules), schemaRules[0], schemaRules[1]) @@ -241,7 +237,7 @@ func (r *Table) Route(schema, table string) (string, string, error) { } // ExtractVal match value via regexp -func (t *TableRule) extractVal(s string, ext interface{}) string { +func (*TableRule) extractVal(s string, ext interface{}) string { var params []string switch e := ext.(type) { case *TableExtractor: diff --git a/util/table-rule-selector/BUILD.bazel b/util/table-rule-selector/BUILD.bazel index 8624836169e36..d1f59e9bac75c 100644 --- a/util/table-rule-selector/BUILD.bazel +++ b/util/table-rule-selector/BUILD.bazel @@ -10,7 +10,9 @@ go_library( go_test( name = "table-rule-selector_test", + timeout = "short", srcs = ["selector_test.go"], embed = [":table-rule-selector"], + flaky = True, deps = ["@com_github_stretchr_testify//require"], ) diff --git a/util/table-rule-selector/selector_test.go b/util/table-rule-selector/selector_test.go index c43956b911fda..950b5845893a7 100644 --- a/util/table-rule-selector/selector_test.go +++ b/util/table-rule-selector/selector_test.go @@ -196,7 +196,6 @@ func testReplace(t *testing.T, s Selector) { require.NoError(t, err) err = s.Insert(schema, "", replacedRule, Insert) require.Error(t, err) - } schemas, tables := s.AllRules() diff --git a/util/table-rule-selector/trie_selector.go b/util/table-rule-selector/trie_selector.go index 07cec79938ec9..2c49704241255 100644 --- a/util/table-rule-selector/trie_selector.go +++ b/util/table-rule-selector/trie_selector.go @@ -265,7 +265,7 @@ func (t *trieSelector) insertTable(schema, table string, rule interface{}, inser return nil } -func (t *trieSelector) getRangeItem(pattern string) (*rangeItem, int) { +func (*trieSelector) getRangeItem(pattern string) (*rangeItem, int) { nextI := -1 for i := range pattern { if pattern[i] == rangeClose { diff --git a/util/texttree/BUILD.bazel b/util/texttree/BUILD.bazel index b92b391e90608..47293bb45baf8 100644 --- a/util/texttree/BUILD.bazel +++ b/util/texttree/BUILD.bazel @@ -9,11 +9,13 @@ go_library( go_test( name = "texttree_test", + timeout = "short", srcs = [ "main_test.go", "texttree_test.go", ], embed = [":texttree"], + flaky = True, deps = [ "//testkit/testsetup", "@com_github_stretchr_testify//require", diff --git a/util/timeutil/BUILD.bazel b/util/timeutil/BUILD.bazel index cd6ede1cdeb3f..301fd3d409977 100644 --- a/util/timeutil/BUILD.bazel +++ b/util/timeutil/BUILD.bazel @@ -14,11 +14,13 @@ go_library( go_test( name = "timeutil_test", + timeout = "short", srcs = [ "main_test.go", "time_test.go", ], embed = [":timeutil"], + flaky = True, deps = [ "//testkit/testsetup", "@com_github_stretchr_testify//require", diff --git a/util/topsql/BUILD.bazel b/util/topsql/BUILD.bazel index b8a1496328788..f90cf35b09e8f 100644 --- a/util/topsql/BUILD.bazel +++ b/util/topsql/BUILD.bazel @@ -21,11 +21,13 @@ go_library( go_test( name = "topsql_test", + timeout = "short", srcs = [ "main_test.go", "topsql_test.go", ], embed = [":topsql"], + flaky = True, deps = [ "//config", "//parser", diff --git a/util/topsql/collector/BUILD.bazel b/util/topsql/collector/BUILD.bazel index 4ca8239fa300e..0bb7e073a9d4b 100644 --- a/util/topsql/collector/BUILD.bazel +++ b/util/topsql/collector/BUILD.bazel @@ -18,8 +18,10 @@ go_library( go_test( name = "collector_test", + timeout = "short", srcs = ["main_test.go"], embed = [":collector"], + flaky = True, deps = [ "//testkit/testsetup", "//util/cpuprofile", diff --git a/util/topsql/collector/cpu.go b/util/topsql/collector/cpu.go index eb7ba6183c3a6..de3cbb3206672 100644 --- a/util/topsql/collector/cpu.go +++ b/util/topsql/collector/cpu.go @@ -192,7 +192,7 @@ func (sp *SQLCPUCollector) parseCPUProfileBySQLLabels(p *profile.Profile) []SQLC return sp.createSQLStats(sqlMap) } -func (sp *SQLCPUCollector) createSQLStats(sqlMap map[string]*sqlStats) []SQLCPUTimeRecord { +func (*SQLCPUCollector) createSQLStats(sqlMap map[string]*sqlStats) []SQLCPUTimeRecord { stats := make([]SQLCPUTimeRecord, 0, len(sqlMap)) for sqlDigest, stmt := range sqlMap { stmt.tune() diff --git a/util/topsql/collector/mock/mock.go b/util/topsql/collector/mock/mock.go index 0320ca2c60aa8..ff94cfd185854 100644 --- a/util/topsql/collector/mock/mock.go +++ b/util/topsql/collector/mock/mock.go @@ -50,7 +50,7 @@ func NewTopSQLCollector() *TopSQLCollector { } // Start implements TopSQLReporter interface. -func (c *TopSQLCollector) Start() {} +func (*TopSQLCollector) Start() {} // Collect uses for testing. func (c *TopSQLCollector) Collect(stats []collector.SQLCPUTimeRecord) { @@ -78,7 +78,7 @@ func (c *TopSQLCollector) Collect(stats []collector.SQLCPUTimeRecord) { } // CollectStmtStatsMap implements stmtstats.Collector. -func (c *TopSQLCollector) CollectStmtStatsMap(_ stmtstats.StatementStatsMap) {} +func (*TopSQLCollector) CollectStmtStatsMap(_ stmtstats.StatementStatsMap) {} // GetSQLStatsBySQLWithRetry uses for testing. func (c *TopSQLCollector) GetSQLStatsBySQLWithRetry(sql string, planIsNotNull bool) []*collector.SQLCPUTimeRecord { @@ -149,7 +149,7 @@ func (c *TopSQLCollector) GetPlan(planDigest []byte) string { } // RegisterSQL uses for testing. -func (c *TopSQLCollector) RegisterSQL(sqlDigest []byte, normalizedSQL string, isInternal bool) { +func (c *TopSQLCollector) RegisterSQL(sqlDigest []byte, normalizedSQL string, _ bool) { digestStr := string(hack.String(sqlDigest)) c.Lock() _, ok := c.sqlMap[digestStr] @@ -157,7 +157,6 @@ func (c *TopSQLCollector) RegisterSQL(sqlDigest []byte, normalizedSQL string, is c.sqlMap[digestStr] = normalizedSQL } c.Unlock() - } // RegisterPlan uses for testing. @@ -209,9 +208,9 @@ func (c *TopSQLCollector) CollectCnt() int64 { } // Close implements the interface. -func (c *TopSQLCollector) Close() {} +func (*TopSQLCollector) Close() {} -func (c *TopSQLCollector) hash(stat collector.SQLCPUTimeRecord) string { +func (*TopSQLCollector) hash(stat collector.SQLCPUTimeRecord) string { return string(stat.SQLDigest) + string(stat.PlanDigest) } diff --git a/util/topsql/reporter/BUILD.bazel b/util/topsql/reporter/BUILD.bazel index 04f402018c9a2..6c1def091ee39 100644 --- a/util/topsql/reporter/BUILD.bazel +++ b/util/topsql/reporter/BUILD.bazel @@ -34,6 +34,7 @@ go_library( go_test( name = "reporter_test", + timeout = "short", srcs = [ "datamodel_test.go", "datasink_test.go", @@ -43,6 +44,7 @@ go_test( "single_target_test.go", ], embed = [":reporter"], + flaky = True, deps = [ "//config", "//testkit/testsetup", diff --git a/util/topsql/reporter/pubsub.go b/util/topsql/reporter/pubsub.go index 62e6d2af8c412..c18c50f648ab1 100644 --- a/util/topsql/reporter/pubsub.go +++ b/util/topsql/reporter/pubsub.go @@ -179,7 +179,7 @@ func (ds *pubSubDataSink) sendTopSQLRecords(ctx context.Context, records []tipb. if err = ds.stream.Send(r); err != nil { return } - sentCount += 1 + sentCount++ select { case <-ctx.Done(): @@ -216,7 +216,7 @@ func (ds *pubSubDataSink) sendSQLMeta(ctx context.Context, sqlMetas []tipb.SQLMe if err = ds.stream.Send(r); err != nil { return } - sentCount += 1 + sentCount++ select { case <-ctx.Done(): @@ -253,7 +253,7 @@ func (ds *pubSubDataSink) sendPlanMeta(ctx context.Context, planMetas []tipb.Pla if err = ds.stream.Send(r); err != nil { return } - sentCount += 1 + sentCount++ select { case <-ctx.Done(): diff --git a/util/topsql/reporter/single_target.go b/util/topsql/reporter/single_target.go index 3c75197be1737..197844da4f25f 100644 --- a/util/topsql/reporter/single_target.go +++ b/util/topsql/reporter/single_target.go @@ -94,8 +94,8 @@ func (ds *SingleTargetDataSink) recoverRun() { } ds.conn = nil }() - for ds.run() { + continue } } @@ -254,7 +254,7 @@ func (ds *SingleTargetDataSink) sendBatchTopSQLRecord(ctx context.Context, recor if err = stream.Send(&records[i]); err != nil { return } - sentCount += 1 + sentCount++ } // See https://pkg.go.dev/google.golang.org/grpc#ClientConn.NewStream for how to avoid leaking the stream @@ -289,7 +289,7 @@ func (ds *SingleTargetDataSink) sendBatchSQLMeta(ctx context.Context, sqlMetas [ if err = stream.Send(&sqlMetas[i]); err != nil { return } - sentCount += 1 + sentCount++ } // See https://pkg.go.dev/google.golang.org/grpc#ClientConn.NewStream for how to avoid leaking the stream @@ -324,7 +324,7 @@ func (ds *SingleTargetDataSink) sendBatchPlanMeta(ctx context.Context, planMetas if err = stream.Send(&planMetas[i]); err != nil { return err } - sentCount += 1 + sentCount++ } // See https://pkg.go.dev/google.golang.org/grpc#ClientConn.NewStream for how to avoid leaking the stream @@ -352,7 +352,7 @@ func (ds *SingleTargetDataSink) tryEstablishConnection(ctx context.Context, targ return nil } -func (ds *SingleTargetDataSink) dial(ctx context.Context, targetRPCAddr string) (*grpc.ClientConn, error) { +func (*SingleTargetDataSink) dial(ctx context.Context, targetRPCAddr string) (*grpc.ClientConn, error) { dialCtx, cancel := context.WithTimeout(ctx, dialTimeout) defer cancel() return grpc.DialContext( diff --git a/util/topsql/stmtstats/BUILD.bazel b/util/topsql/stmtstats/BUILD.bazel index 8216997d71a62..a0e7bf0cfbb50 100644 --- a/util/topsql/stmtstats/BUILD.bazel +++ b/util/topsql/stmtstats/BUILD.bazel @@ -19,6 +19,7 @@ go_library( go_test( name = "stmtstats_test", + timeout = "short", srcs = [ "aggregator_test.go", "kv_exec_count_test.go", @@ -26,6 +27,7 @@ go_test( "stmtstats_test.go", ], embed = [":stmtstats"], + flaky = True, deps = [ "//testkit/testsetup", "//util/topsql/state", diff --git a/util/topsql/topsql.go b/util/topsql/topsql.go index 61ffca2b0d460..97e10dd58e498 100644 --- a/util/topsql/topsql.go +++ b/util/topsql/topsql.go @@ -168,6 +168,7 @@ func MockHighCPULoad(sql string, sqlPrefixs []string, load int64) bool { break } for i := 0; i < 10e5; i++ { + continue } } return true diff --git a/util/tracing/BUILD.bazel b/util/tracing/BUILD.bazel index d5b5552c156c8..9f6ccac4a590e 100644 --- a/util/tracing/BUILD.bazel +++ b/util/tracing/BUILD.bazel @@ -16,6 +16,7 @@ go_library( go_test( name = "tracing_test", + timeout = "short", srcs = [ "main_test.go", "noop_bench_test.go", @@ -23,6 +24,7 @@ go_test( "util_test.go", ], embed = [":tracing"], + flaky = True, deps = [ "//testkit/testsetup", "@com_github_opentracing_basictracer_go//:basictracer-go", diff --git a/util/tracing/opt_trace.go b/util/tracing/opt_trace.go index 6d7cae715cf0c..09de10828d8a8 100644 --- a/util/tracing/opt_trace.go +++ b/util/tracing/opt_trace.go @@ -62,7 +62,6 @@ func (tracer *LogicalOptimizeTracer) RecordFinalLogicalPlan(final *PlanTrace) { tracer.removeUselessStep() } -// TODO: use a switch to control it func (tracer *LogicalOptimizeTracer) removeUselessStep() { newSteps := make([]*LogicalRuleOptimizeTracer, 0) for _, step := range tracer.Steps { @@ -159,11 +158,18 @@ func DedupCETrace(records []*CETraceRecord) []*CETraceRecord { // PhysicalOptimizeTracer indicates the trace for the whole physicalOptimize processing type PhysicalOptimizeTracer struct { // final indicates the final physical plan trace - Final []*PlanTrace `json:"final"` - SelectedCandidates []*CandidatePlanTrace `json:"selected_candidates"` - DiscardedCandidates []*CandidatePlanTrace `json:"discarded_candidates"` - // (logical plan) -> physical plan codename -> physical plan - State map[string]map[string]*PlanTrace `json:"-"` + Final []*PlanTrace `json:"final"` + Candidates map[int]*CandidatePlanTrace `json:"candidates"` +} + +// AppendCandidate appends physical CandidatePlanTrace in tracer. +// If the candidate already exists, the previous candidate would be covered depends on whether it has mapping logical plan +func (tracer *PhysicalOptimizeTracer) AppendCandidate(c *CandidatePlanTrace) { + old, exists := tracer.Candidates[c.ID] + if exists && len(old.MappingLogicalPlan) > 0 && len(c.MappingLogicalPlan) < 1 { + return + } + tracer.Candidates[c.ID] = c } // RecordFinalPlanTrace records final physical plan trace @@ -178,48 +184,21 @@ type CandidatePlanTrace struct { MappingLogicalPlan string `json:"mapping"` } -func newCandidatePlanTrace(trace *PlanTrace, logicalPlanKey string, bestKey map[string]struct{}) *CandidatePlanTrace { - selected := false - if _, ok := bestKey[CodecPlanName(trace.TP, trace.ID)]; ok { - selected = true - } - c := &CandidatePlanTrace{ - MappingLogicalPlan: logicalPlanKey, - } - c.PlanTrace = trace - c.Selected = selected - for i, child := range c.Children { - if _, ok := bestKey[CodecPlanName(child.TP, child.ID)]; ok { - child.Selected = true - } - c.Children[i] = child - } - return c -} - // buildCandidatesInfo builds candidates info func (tracer *PhysicalOptimizeTracer) buildCandidatesInfo() { - if tracer == nil || len(tracer.State) < 1 { + if tracer == nil || len(tracer.Candidates) < 1 { return } - sCandidates := make([]*CandidatePlanTrace, 0) - dCandidates := make([]*CandidatePlanTrace, 0) - bestKeys := map[string]struct{}{} - for _, node := range tracer.Final { - bestKeys[CodecPlanName(node.TP, node.ID)] = struct{}{} + fID := make(map[int]struct{}, len(tracer.Final)) + for _, plan := range tracer.Final { + fID[plan.ID] = struct{}{} } - for logicalKey, pps := range tracer.State { - for _, pp := range pps { - c := newCandidatePlanTrace(pp, logicalKey, bestKeys) - if c.Selected { - sCandidates = append(sCandidates, c) - } else { - dCandidates = append(dCandidates, c) - } + + for _, candidate := range tracer.Candidates { + if _, ok := fID[candidate.ID]; ok { + candidate.Selected = true } } - tracer.SelectedCandidates = sCandidates - tracer.DiscardedCandidates = dCandidates } // CodecPlanName returns tp_id of plan. diff --git a/util/tracing/util_test.go b/util/tracing/util_test.go index 0e7760713803a..119f2777017b9 100644 --- a/util/tracing/util_test.go +++ b/util/tracing/util_test.go @@ -65,7 +65,6 @@ func TestChildSpanFromContext(t *testing.T) { // verify second span's operation is not nil, this way we can ensure // callback logic works. require.NotNil(t, collectedSpan[1].Operation) - } func TestFollowFrom(t *testing.T) { diff --git a/util/versioninfo/versioninfo.go b/util/versioninfo/versioninfo.go index 563a97e6356d9..8c2b9b57d42e3 100644 --- a/util/versioninfo/versioninfo.go +++ b/util/versioninfo/versioninfo.go @@ -26,5 +26,5 @@ var ( TiDBGitBranch = "None" TiDBEdition = CommunityEdition // TiKVMinVersion is the minimum version of TiKV that can be compatible with the current TiDB. - TiKVMinVersion = "v3.0.0-60965b006877ca7234adaced7890d7b029ed1306" + TiKVMinVersion = "6.2.0-alpha" ) diff --git a/util/vitess/BUILD.bazel b/util/vitess/BUILD.bazel index 5d3070de902fd..e2d41e82a1385 100644 --- a/util/vitess/BUILD.bazel +++ b/util/vitess/BUILD.bazel @@ -10,11 +10,13 @@ go_library( go_test( name = "vitess_test", + timeout = "short", srcs = [ "main_test.go", "vitess_hash_test.go", ], embed = [":vitess"], + flaky = True, deps = [ "//testkit/testsetup", "@com_github_stretchr_testify//require", diff --git a/util/watcher/BUILD.bazel b/util/watcher/BUILD.bazel index 124a0c08436b5..b9ef440e70a58 100644 --- a/util/watcher/BUILD.bazel +++ b/util/watcher/BUILD.bazel @@ -16,6 +16,7 @@ go_library( go_test( name = "watcher_test", + timeout = "short", srcs = ["watcher_test.go"], embed = [":watcher"], flaky = True,